본문 바로가기

기타

로컬 개발용 SSL 인증서 만들기: PowerShell로 localhost 인증서 생성하기

 

🛡️ 로컬 개발용 SSL 인증서 만들기: PowerShell로 localhost 인증서 생성하기

개발 환경에서 HTTPS를 적용할 때, 인증서 오류 없이 https://localhost로 접속하고 싶다면 자체 서명된 인증서(Self-Signed Certificate)를 만들어야 합니다.
오늘은 PowerShell을 사용해서 로컬용 SSL 인증서를 생성하고, PFX 파일로 내보내는 방법을 알아보겠습니다.


✨ 1. PowerShell로 자체 서명된 인증서 생성

먼저 PowerShell을 관리자 권한으로 실행한 후, 아래 명령어를 입력합니다:

$cert = New-SelfSignedCertificate `
  -Subject "CN=localhost, O=YourCompanyName, OU=Team" `
  -DnsName "localhost" `
  -CertStoreLocation "cert:\LocalMachine\My" `
  -NotAfter (Get-Date).AddYears(5)

➡️ 여기서 각 옵션은 다음을 의미합니다:

  • -Subject: 인증서의 **주체(Subject)**를 지정합니다.
    • CN=localhost → 인증서의 Common Name (도메인 이름)
    • O=YourCompanyName → 조직명 (Organization)
    • OU=Team → 부서명 (Organizational Unit)
  • -DnsName: 인증서에 적용할 DNS 이름을 지정합니다. (localhost)
  • -CertStoreLocation: 인증서를 저장할 인증서 저장소 경로입니다.
  • -NotAfter: 인증서 만료일을 현재로부터 5년 뒤로 설정합니다.

✅ 이 명령어를 실행하면 로컬 컴퓨터의 인증서 저장소에 새 인증서가 생성됩니다.


✨ 2. 생성한 인증서를 PFX 파일로 내보내기

생성된 인증서를 .pfx 파일로 저장해 보겠습니다.
(※ PFX는 비공개 키를 포함하는 포맷입니다.)

$pwd = ConvertTo-SecureString "password" -AsPlainText -Force

Export-PfxCertificate `
  -Cert $cert `
  -FilePath ".\localhost.pfx" `
  -Password $pwd

➡️ 이 명령어의 의미는 다음과 같습니다:

  • ConvertTo-SecureString: "password"라는 문자열을 보안 문자열로 변환합니다.
  • Export-PfxCertificate: 인증서를 .pfx 파일로 내보내며, 암호를 설정합니다.

✅ 위 명령어를 실행하면, 현재 디렉터리에 localhost.pfx 파일이 생성됩니다.


🎯 정리

이 과정을 통해 우리는:

  • localhost를 위한 자체 서명 인증서를 만들고
  • 5년 유효기간으로 설정한 뒤
  • 암호로 보호된 PFX 파일로 안전하게 저장할 수 있습니다.

이제 이 인증서를 IIS, Kestrel, 또는 다른 웹 서버에 등록하여, 로컬 개발 환경에서도 HTTPS를 테스트할 수 있습니다.
브라우저에서 더 이상 "연결이 비공개로 설정되어 있지 않습니다" 같은 경고를 보지 않아도 됩니다!


✏️ 추가 Tip

  • 실제 서비스용 환경에서는 **공인 인증서(CA 발급 인증서)**를 사용해야 합니다.
  • 비밀번호 "password"는 보안을 위해 복잡한 값으로 변경하는 것을 추천합니다.
  • PowerShell 명령어 실행 시 관리자 권한이 필요합니다.