Microsoft IIS(Internet Information Services)는 SSL 인증서에 PFX 형식을 사용합니다. 이는 GetHTTPS와 대부분의 Linux 기반 도구가 생성하는 PEM 파일과 다릅니다. 이 가이드에서는 인증서를 변환하고 IIS 10에 설치하는 방법을 다룹니다.
사전 준비 사항
- IIS 10이 설치된 Windows Server
- GetHTTPS에서 받은 인증서 파일:
cert.pem,privkey.pem,chain.pem - OpenSSL 설치됨 (Git for Windows에 포함되어 있거나, 별도로 설치)
1단계: PEM을 PFX로 변환
IIS는 PEM 파일을 직접 읽을 수 없습니다. OpenSSL을 사용하여 PFX 형식으로 변환합니다:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem
내보내기 비밀번호를 설정하라는 메시지가 나타납니다 — 가져오기 단계에서 필요하므로 기억해 두세요.
OpenSSL이 없으신가요? Git for Windows가 설치되어 있다면
C:\Program Files\Git\usr\bin\openssl.exe에 OpenSSL이 포함되어 있습니다. 또는 slproweb.com/products/Win32OpenSSL.html에서 다운로드할 수 있습니다.
인증서 형식에 대한 자세한 내용은: PEM, PFX, DER 설명
2단계: PFX를 IIS로 가져오기
- IIS 관리자를 엽니다 (
inetmgr실행) - 왼쪽 패널에서 서버 이름을 클릭합니다
- 가운데 패널에서 서버 인증서를 더블클릭합니다
- 오른쪽 작업 패널에서 **가져오기…**를 클릭합니다
certificate.pfx파일을 찾아 선택합니다- 1단계에서 설정한 내보내기 비밀번호를 입력합니다
- 인증서 저장소: 웹 호스팅(또는 개인)을 선택합니다
- 확인을 클릭합니다
이제 서버 인증서 목록에 인증서가 나타납니다.
3단계: 사이트에 HTTPS 바인딩
- IIS 관리자에서 왼쪽 패널의 사이트를 확장합니다
- 웹사이트를 마우스 오른쪽 버튼으로 클릭 → 바인딩 편집…
- **추가…**를 클릭합니다
- 다음과 같이 설정합니다:
- 유형: https
- 포트: 443
- 호스트 이름:
yourdomain.com(모든 호스트 이름에 적용하려면 비워 두세요) - SSL 인증서: 방금 가져온 인증서를 선택합니다
- 확인을 클릭합니다
- 필요한 경우
www.yourdomain.com에 대해서도 반복합니다
4단계: HTTP를 HTTPS로 리다이렉트
URL Rewrite 모듈을 설치한 후(아직 설치되지 않은 경우), 사이트의 web.config에 다음을 추가합니다:
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
5단계: 확인
브라우저에서 https://yourdomain.com을 엽니다. 자물쇠 아이콘을 클릭하여 인증서 세부 정보를 확인합니다.
PowerShell로 확인:
# 포트 443에 바인딩된 인증서 확인
netsh http show sslcert
문제 해결
”지정된 로그온 세션이 존재하지 않습니다”
개인키가 제대로 가져와지지 않은 것입니다. 다음 명령으로 PFX 파일을 다시 내보내세요:
openssl pkcs12 -export -out certificate.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem -passout pass:YourPassword
PFX가 일치하는 키 + 인증서 파일로 생성되었는지 확인하세요.
바인딩 드롭다운에 인증서가 나타나지 않음
가져오기가 자동으로 실패했을 수 있습니다. 이벤트 뷰어 → Windows 로그 → 응용 프로그램에서 오류를 확인하세요. PFX 비밀번호가 올바르고 파일이 손상되지 않았는지 확인합니다.
바인딩 후 “이 사이트는 안전하지 않습니다”
인증서 체인이 완전한지 확인하세요. PFX 변환 시 chain.pem 파일이 포함되어야 합니다(-certfile chain.pem). 이것이 없으면 브라우저가 인증서 체인을 검증할 수 없습니다.
자주 묻는 질문
IIS에서 Let’s Encrypt 인증서를 사용할 수 있나요?
네. Let’s Encrypt 인증서는 IIS를 포함한 모든 서버에서 사용할 수 있습니다. 유일한 추가 단계는 PEM을 PFX 형식으로 변환하는 것입니다. GetHTTPS에서 PEM 파일을 받고 위의 OpenSSL 명령으로 변환하면 됩니다.
IIS용 Certbot 같은 도구가 있나요?
win-acme(이전 명칭: letsencrypt-win-simple)가 Windows/IIS에서 가장 인기 있는 ACME 클라이언트입니다. 인증서 발급, PFX 변환, IIS 바인딩, 자동 갱신을 하나의 도구로 처리합니다. IIS에서 Let’s Encrypt를 완전 자동화하려면 이 도구를 사용하세요.
IIS에서 갱신하려면 어떻게 해야 하나요?
- GetHTTPS에서 새 인증서를 발급받습니다
- PFX로 변환:
openssl pkcs12 -export -out new.pfx -inkey privkey.pem -in cert.pem -certfile chain.pem - IIS 관리자 → 서버 인증서에서 새 PFX를 가져옵니다
- 사이트 바인딩을 새 인증서로 업데이트합니다
- 서버 인증서에서 이전 인증서를 제거합니다
자동 갱신을 원하면 win-acme 사용을 고려하세요 — 전체 과정을 자동으로 처리합니다.
IIS는 ECDSA/ECC 인증서를 지원하나요?
Windows Server 2016 이상의 IIS 10은 ECDSA 인증서를 지원합니다. GetHTTPS는 기본적으로 ECDSA P-256을 생성하며, 최신 IIS에서 사용할 수 있습니다. 이전 IIS 버전(8.5 이하)에서는 RSA 인증서가 필요할 수 있습니다.
같은 IP에서 여러 사이트를 IIS로 운영할 수 있나요?
네. IIS 8 이상은 **SNI(Server Name Indication)**를 지원하여 동일한 IP 주소에서 여러 SSL 인증서를 사용할 수 있습니다. HTTPS 바인딩을 추가할 때 “서버 이름 표시 필요”를 체크하고 호스트 이름을 입력하세요. 각 사이트마다 고유한 인증서를 사용할 수 있습니다.
Windows에서 OpenSSL을 찾으려면?
OpenSSL은 Windows에 기본적으로 포함되어 있지 않습니다. 일반적인 설치 방법:
- Git for Windows에 포함:
C:\Program Files\Git\usr\bin\openssl.exe - Chocolatey:
choco install openssl - Win32/Win64 빌드: slproweb.com에서 다운로드
설치 후 PATH에 추가하거나 명령에서 전체 경로를 사용하세요.