본문 바로가기

기타

dotnet dev-certs로 로컬 HTTPS 인증서 만들고 설치하기 (+삭제 방법)

 

🛡️ dotnet dev-certs로 로컬 HTTPS 인증서 만들고 설치하기 (+삭제 방법)

로컬 개발 환경에서 HTTPS를 적용할 때,
**자체 서명된 인증서(Self-Signed Certificate)**를 만들어 사용하는 것이 필수입니다.

# 1) dev-certs PFX 파일로 내보내기
dotnet dev-certs https -ep localhost.pfx -p password

# 2) 개인(My) 저장소에 설치
Import-PfxCertificate -FilePath localhost.pfx `
  -CertStoreLocation Cert:\LocalMachine\My `
  -Password (ConvertTo-SecureString "password" -AsPlainText -Force)

# 3) 신뢰된 루트(Root) 저장소에 설치
Import-PfxCertificate -FilePath localhost.pfx `
  -CertStoreLocation Cert:\LocalMachine\Root `
  -Password (ConvertTo-SecureString "password" -AsPlainText -Force)

이번 글에서는:

  • dotnet dev-certs를 이용해 PFX 파일을 만들고
  • Windows 인증서 저장소에 설치하고
  • 필요 시 완전히 삭제하는 방법까지 정리해보겠습니다.

✨ 1. dotnet dev-certs로 PFX 파일 생성하기

.NET SDK에는 기본적으로 dotnet dev-certs 명령어가 포함되어 있어, 간단하게 인증서를 생성할 수 있습니다.

dotnet dev-certs https -ep localhost.pfx -p password

➡️ 설명

  • -ep: 생성할 PFX 파일 경로 (예: localhost.pfx)
  • -p: PFX 파일을 보호할 비밀번호

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


✨ 2. 인증서를 Windows 인증서 저장소에 설치하기

2-1. "개인(My)" 저장소에 설치

Import-PfxCertificate -FilePath localhost.pfx `
  -CertStoreLocation Cert:\LocalMachine\My `
  -Password (ConvertTo-SecureString "password" -AsPlainText -Force)
  • 서버(IIS, Kestrel 등)에서 사용할 수 있도록 인증서를 등록합니다.

2-2. "신뢰된 루트(Root)" 저장소에 설치

Import-PfxCertificate -FilePath localhost.pfx `
  -CertStoreLocation Cert:\LocalMachine\Root `
  -Password (ConvertTo-SecureString "password" -AsPlainText -Force)
  • 브라우저가 "보안 경고 없이" 인증서를 신뢰하도록 등록합니다.

✅ 이 두 저장소에 모두 등록하면, 로컬 개발 환경에서 HTTPS를 완벽하게 사용할 수 있습니다.


🗑️ 3. 로컬 인증서 삭제하는 방법

개발이 끝나거나 인증서를 새로 만들어야 할 경우, 기존 인증서를 정리해줘야 합니다.

3-1. Subject에 localhost가 포함된 인증서 모두 삭제

개인(My) 저장소에서:

Get-ChildItem Cert:\LocalMachine\My |
  Where-Object { $_.Subject -like "*localhost*" } |
  Remove-Item

신뢰된 루트(Root) 저장소에서:

Get-ChildItem Cert:\LocalMachine\Root |
  Where-Object { $_.Subject -like "*localhost*" } |
  Remove-Item

✅ 이 방법은 **Subject에 'localhost'**가 들어간 모든 인증서를 일괄 삭제합니다.


3-2. Thumbprint로 특정 인증서 삭제

# 개인 저장소 조회
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject, Thumbprint
# 신뢰된 루트 저장소 조회
Get-ChildItem Cert:\LocalMachine\Root | Select-Object Subject, Thumbprint

인증서의 Thumbprint(지문)가 있는 경우, 정확히 하나만 제거할 수도 있습니다.

$tp = "YOUR_CERT_THUMBPRINT".Replace(" ", "")

# 개인 저장소(My)에서 제거
Remove-Item Cert:\LocalMachine\My\$tp

# 신뢰된 루트(Root)에서 제거
Remove-Item Cert:\LocalMachine\Root\$tp

✅ Thumbprint로 삭제하면 다른 인증서에 영향을 주지 않고 정확히 원하는 인증서만 제거할 수 있습니다.


🎯 정리

구분 명령어 요약

PFX 파일 생성 dotnet dev-certs https -ep 파일경로 -p 비밀번호
저장소 설치 Import-PfxCertificate 사용
인증서 삭제 Get-ChildItem + Remove-Item 또는 Thumbprint 직접 삭제

로컬 HTTPS 개발 환경을 깔끔하게 세팅하고 관리하는데 이 과정들이 꼭 필요합니다!
이 방법을 알고 있으면, 프로젝트 변경이나 새 인증서 적용 시 훨씬 빠르게 작업할 수 있어요. 🚀


✏️ 추가 Tip

  • PowerShell은 반드시 관리자 권한으로 실행해야 합니다.
  • 비밀번호는 "password" 대신 복잡하고 안전한 비밀번호로 변경하는 것을 추천합니다.
  • Thumbprint는 PowerShell로 쉽게 조회할 수 있습니다: