본문 바로가기

IT 리뷰/윈도우 Tip

Windows Server IIS에서 CSR 생성부터 인증서 확인, HTTPS 바인딩 적용까지

반응형

Windows IIS에서 CSR 생성, 인증서 설치 확인, 바인딩 적용까지

웹사이트에 HTTPS(SSL/TLS)를 붙이려다 보면 가장 먼저 막히는 게 CSR입니다. 인증기관에 “이 도메인으로 서버 인증서를 발급해 달라”고 제출하는 요청서이며, 이 과정에서 서버 내부에 개인키(Private Key)가 함께 만들어집니다.

Windows Server + IIS 환경에서는 CSR을 만든 위치(서버/저장소)가 이후 작업을 좌우하게 되는데요 우선 결론부터 말씀드리면, CSR 생성 시 만들어진 개인키가 살아 있어야 인증서를 설치하고 IIS 바인딩까지 정상적으로 작동하게 됩니다.

CSR (Certificate Signing Request)

CSR은 인증기관(CA)에 전달하는 “서버 인증서 발급 요청 데이터”입니다.

그리고 요청서에는 도메인/조직 정보와 공개키가 포함되고, 서버 쪽에는 그와 짝이 되는 개인키가 생성됩니다.

Windows Server IIS 기능에서 CSR을 만들면, 인증서 저장소에 키가 남습니다. 이 상태가 유지되어야 인증서를 설치할 때 “개인키와 연결됨” 상태가 됩니다.

가장 중요한 건 WildCard 여부가 아니라 “개인키가 어디에 있냐”입니다. CSR을 만든 서버가 바뀌거나, 개인키가 사라지면 인증서 파일이 있어도 붙지 않습니다. 이때는 재발급/재요청으로 돌아가야 합니다.

CSR 만들기 전에 먼저 확정할 것

CSR 입력값은 인증서에 그대로 찍힙니다. 오타가 나면 다시 발급받는 쪽이 빨라지는 경우가 많습니다.

아래 3가지만 먼저 고정해두시면 됩니다.

  • 적용 도메인(FQDN) : 예) www.abc.com, api.abc.com
  • 인증서 유형 : 단일 도메인 / WildCard(*.abc.com) / 다중 도메인(SAN)
  • CSR 생성 위치 : 실제 IIS가 동작하는 서버(또는 개인키를 보관할 서버)

사내 환경에서 로드밸런서(LB) 뒤에 IIS 여러 대가 붙어 있다면, “어느 서버에서 CSR을 만들 건지”를 먼저 정해두셔야 합니다. 인증서를 여러 대에 배포할 계획이라면, 보통 .pfx로 내보내서 각 서버에 가져가는 흐름이 됩니다.

CSR 생성 방법

IIS 관리자에서 CSR 만들기

Windows Server에서 CSR은 IIS 관리자 화면에서 만드는 방법이 가장 흔합니다.

인터넷 정보 서비스(IIS) 관리자 실행
인터넷 정보 서비스(IIS) 관리자 실행

  1. 서버 관리자(Server Manager)를 열고, 도구 메뉴에서 인터넷 정보 서비스(IIS) 관리자를 실행합니다.
  2. 왼쪽 트리에서 서버 이름(사이트가 아니라 최상단 서버 노드)을 클릭합니다.
  3. 가운데 기능 목록에서 서버 인증서를 엽니다.
  4. 오른쪽 작업(Action) 패널에서 인증서 요청 만들기를 선택합니다.
  5. 조직 정보 입력 화면에서 값들을 채우고 다음으로 진행합니다.
  6. 암호화 옵션에서 비트 길이 2048을 선택하는 경우가 일반적입니다. 사내 정책이 있으면 그 값을 따르시면 됩니다.
  7. CSR 파일 저장 경로와 파일명을 지정하고 완료합니다.

CSR 입력 항목 의미

입력 화면에서 자주 실수하는 건 “일반 이름(CN)”입니다.

이 값이 접속 URL과 다르면 브라우저에서 바로 경고가 뜹니다.

간혹 헷갈림이 줄어들도록 표로 정리해두었습니다.

항목 입력 기준
일반 이름(CN) HTTPS로 접속할 정확한 도메인을 입력합니다. WildCard가 필요하면 *.abc.com처럼 입력합니다. 다중 도메인이면 SAN 구성이 필요한 경우가 많습니다.
조직(O) 법인/조직명. 발급 유형에 따라 검증에서 불일치가 나면 처리 시간이 늘어날 수 있습니다.
조직 구성 단위(OU) 부서명. 운영에서 영향은 크지 않지만 내부 표기 규칙이 있으면 통일하는 편이 깔끔합니다.

CSR 파일에서 복사해야 하는 구간

CSR 파일을 메모장으로 열면 긴 텍스트가 보입니다.

인증기관에 입력할 때는 보통 아래 구간을 통째로 복사합니다.

  • BEGIN CERTIFICATE REQUEST로 시작
  • END CERTIFICATE REQUEST로 종료

중간 줄바꿈이 깨지면 인증기관 화면에서 거절될 수 있습니다. 복사할 때는 시작/끝 라인 포함 여부만 확인하시면 됩니다.

서버 인증서 형태 변환 (.crt  → .pfx, Windows 서버용) 

.pfx는 인증서와 개인키를 같이 담을 수 있어 Windows 서버 간 이관에 가장 많이 쓰입니다.

특히 로드밸런서 뒤에 IIS 서버가 여러 대면, 한 대에서 CSR을 만들고 인증서를 받은 뒤 .pfx로 내보내 배포하는 흐름이 흔합니다.

MMC에서 인증서(.pfx) 내보내기

MMC는 인증서 저장소를 직접 다루는 도구입니다. 메뉴 경로만 기억하시면 됩니다.

  1. 실행 창에서 mmc를 실행합니다.
  2. 상단 메뉴 [파일] > [스냅인 추가/제거]로 들어갑니다.
  3. 목록에서 인증서를 선택해 추가합니다.
  4. 대상은 보통 [컴퓨터 계정]을 선택합니다. (서비스용 인증서는 대개 로컬 컴퓨터 저장소에 설치됩니다.)
  5. 다음 화면에서 [로컬 컴퓨터]를 선택하고 완료합니다.
  6. 왼쪽 트리에서 [인증서(로컬 컴퓨터)] > [개인용] > [인증서]로 들어갑니다.
  7. 내보낼 인증서를 우클릭하고 [모든 작업] > [내보내기]를 선택합니다.
  8. 개인키를 내보냄 옵션을 선택하고 진행합니다. 이 옵션이 빠지면 .pfx로 내보내는 의미가 거의 없습니다.
  9. 내보내기 암호를 설정합니다. 이 암호가 없으면 나중에 가져오기(복원) 자체가 막힙니다.
  10. 파일 형식은 일반적으로 PFX/PKCS #12이며, 저장 경로를 지정하고 완료합니다.

내보낸 .pfx는 사실상 “복제 가능한 개인키 묶음”입니다. 사내 환경에서는 접근 권한이 넓어지는 순간부터 사고 가능성이 올라갑니다. 공유 폴더나 메신저로 이동시키는 방식은 피하시는 편이 맞습니다.

서버 인증서 형태 변환 (.pfx  → .pem, Linux 서버용) 

- 리눅스 환경에서는 인증서를 인증서 + 개인키 형태로 분리하여 적용

Nginx/Apache 같은 리눅스 웹서버는 인증서 파일과 개인키 파일을 분리해 지정하는 경우가 많습니다.

그래서 Windows에서 만든 pfx를 pem으로 풀어야 하는 일이 자주 생깁니다.

OpenSSL 준비

1. OpenSSL 설치 (인증서 관리 커맨드 사용 시, 필요 툴)

 

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions

Minimum system requirements: Windows XP or later 32MB RAM 200MHz CPU 30MB hard drive space Recommended system requirements: Windows XP or later 128MB RAM 500MHz CPU 300MB hard drive space October 8, 2025 - OpenSSL 3.6 is available. Users should currently i

slproweb.com

- 설치 옵션 : Default 및 기부 옵션 해제

설치가 끝나면 OpenSSL 명령을 실행할 수 있는 프롬프트가 생기거나, PATH가 잡힌 환경에서는 일반 명령 프롬프트에서도 실행됩니다. “openssl이 인식되지 않는다”가 가장 흔한 막힘 구간입니다.

2. OpenSSL 명령어 프롬프트 실행

시작 메뉴에서 OpenSSL 관련 프롬프트를 실행합니다. 일반 CMD/PowerShell에서 진행하신다면, openssl 명령이 인식되는지 먼저 확인하시면 됩니다.

3. .pfx 인증서 경로 확인 및 OpenSSL 명령어 프롬프트 경로 이동

pfx 파일이 있는 폴더로 이동한 뒤 실행하면, 경로 오타로 낭비되는 시간이 확 줄어듭니다. 예) 드라이브 이동 후 cd로 폴더 진입.

pfx에서 인증서/개인키 분리

4. 인증서 분리

아래 명령은 원본 그대로 사용하시면 됩니다. 실

행 중 비밀번호를 물으면 pfx 생성 시 설정한 암호를 입력하시면 됩니다.

- 인증서

openssl pkcs12 -in test.pfx -nokeys -nodes -out certi.pem

- 개인키

openssl pkcs12 -in test.pfx -nocerts -out key.pem

5. 완료 및 확인 

생성된 pem 파일을 텍스트로 열었을 때 아래 헤더가 보이면 정상으로 보셔도 됩니다.

  • 인증서 파일: BEGIN CERTIFICATE
  • 개인키 파일: BEGIN PRIVATE KEY 또는 BEGIN RSA PRIVATE KEY

개인키 파일은 권한 제한이 필수입니다. 리눅스에서는 보통 소유자/그룹만 읽게 잠그고, 웹서버 프로세스 계정만 접근하도록 맞춥니다.

서버 인증서 확인

MMC에서 “개인키 포함” 상태 확인

설치가 정상인지 확인할 때는 브라우저보다 서버 저장소를 먼저 보는 편이 빠릅니다.

Windows에서는 MMC로 확인하면 됩니다.

  1. 실행에서 mmc를 실행합니다.
  2. [파일] > [스냅인 추가/제거]에서 인증서를 추가합니다.
  3. [컴퓨터 계정] > [로컬 컴퓨터]를 선택합니다.
  4. [인증서(로컬 컴퓨터)] > [개인용] > [인증서]로 들어갑니다.
  5. 대상 인증서를 더블 클릭해 상세를 열고, “개인키가 있습니다”처럼 개인키 연결 상태가 잡혀 있는지 확인합니다.

IIS ‘서버 인증서’ 목록에서 보이는지 확인

MMC에는 보이는데 IIS 목록에 안 보이면, 설치 위치가 사용자 저장소로 들어갔거나(잘못된 저장소) 개인키가 제대로 연결되지 않은 경우가 많습니다. IIS 기준으로는 서버 노드의 서버 인증서 메뉴에서 목록에 보여야 바인딩 선택이 수월합니다.

웹페이지 SSL 적용 방법 (서버 인증서 적용 방법)

IIS 사이트 바인딩에 HTTPS 붙이기

인증서를 설치해도 사이트에 연결하지 않으면 HTTPS는 열리지 않습니다. IIS에서는 바인딩(Binding)에서 HTTPS(443 등)와 인증서를 매칭합니다.

  1. IIS 관리자에서 대상 사이트를 선택합니다.
  2. 오른쪽 작업 패널에서 바인딩을 엽니다.
  3. HTTPS 항목이 없으면 추가하고, 있으면 편집합니다.
  4. 포트는 일반적으로 443을 사용합니다.
  5. SSL 인증서 선택 드롭다운에서 새로 설치한 인증서를 지정합니다.
  6. 저장 후 사이트를 다시 시작합니다. 반영이 느려 보일 때 가장 확실합니다.

적용 확인에서 자주 헷갈리는 지점

“붙였는데도 경고가 뜬다”는 상황은 거의 정해져 있습니다. 아래 순서로 보면 원인 분리가 빨라집니다.

증상 먼저 확인
브라우저에서 인증서 경고 접속 도메인과 CN/SAN 일치, 만료일, 중간 인증서(체인) 누락
바인딩에서 인증서 선택이 안 됨 IIS 서버 인증서 목록에 존재 여부, 개인키 연결 여부
여러 사이트 운영 중 다른 인증서가 뜸 호스트 이름 설정, SNI 관련 설정, 바인딩 중복 여부

운영 환경에서 주의할 점

인증서 작업은 “파일 복사”로 끝나는 작업이 아닙니다. 개인키가 포함되는 순간부터 보안 사고 가능성이 생깁니다. 이 부분만 확인하시면 됩니다.

  • .pfx 파일은 개인키를 포함할 수 있습니다. 파일 접근 권한을 최소화하고, 외부 공유는 피하시는 편이 맞습니다.
  • 개인키 암호는 분실하면 복원이 막힙니다. 사내 보관 규칙에 맞춰 관리하세요.
  • 배포 후 확인 시, 브라우저 캐시/중간 프록시/로드밸런서 캐시 때문에 “바뀐 것처럼 안 보이는” 경우가 있습니다. 이럴 때는 서버 저장소(MMC)에서 만료일이 바뀌었는지부터 보면 시간 낭비가 줄어듭니다.

Q. 윈도우 서버 IIS에서 CSR을 만들었는데, 다른 서버에 인증서를 설치하면 왜 바인딩이 안 되나요?

A.CSR을 만들 때 생성된 개인키가 원래 서버에 있기 때문입니다. 인증서는 개인키와 짝이 맞아야 동작합니다. 다른 서버에 적용하려면 보통 .pfx로 개인키 포함 내보내기 후 가져오는 방식이 필요합니다.

Q. CSR 파일은 어디까지 복사해서 인증기관에 넣어야 하나요?

A.BEGIN CERTIFICATE REQUEST부터 END CERTIFICATE REQUEST까지 전체를 그대로 넣으시면 됩니다. 시작/끝 라인이 빠지면 거절되는 경우가 많습니다.

Q. 윈도우 11에서도 CSR을 만들 수 있나요?

A.IIS가 설치된 환경이라면 가능하지만, 일반 PC에서는 IIS 구성 자체가 서버와 다를 수 있습니다. 서비스가 실제로 올라가는 Windows Server에서 생성하는 편이 안전합니다.

Q. pfx를 pem으로 바꿨는데 리눅스에서 개인키 오류가 납니다.

A.인증서-개인키 짝이 다른 경우와 권한 문제 둘이 가장 흔합니다. key.pem에 BEGIN PRIVATE KEY(또는 RSA PRIVATE KEY)가 있는지 확인하고, 리눅스에서는 개인키 파일 권한을 최소로 잠그셔야 합니다.

Q. IIS에서 443 바인딩을 했는데도 HTTPS가 계속 실패합니다.

A.도메인 불일치(CN/SAN), 중간 인증서 누락, 바인딩 중복(호스트 이름/SNI) 중 하나인 경우가 많습니다. MMC에서 개인키 연결 상태와 만료일을 먼저 확인하면 방향이 빨리 잡힙니다.

반응형
그리드형