Windows Server 인증서 만료 확인: PowerShell Cert 드라이브로 30일 이내 인증서 조회하기
Windows 인증서 저장소에서 만료가 임박한 인증서를 찾으면 갱신 누락을 줄일 수 있다. PowerShell로 인증서 목록을 조회하고, 실제 서비스가 사용하는 인증서와 대조하는 방법을 정리한다.
문제와 배경
새 인증서를 발급받아 서버에 설치했더라도 서비스 바인딩이 이전 인증서를 가리킬 수 있다. 따라서 저장소에 새 인증서가 존재하는 것과 서비스가 새 인증서를 제공하는 것은 별도로 확인해야 한다.
핵심 내용
Windows PowerShell의 Certificate Provider는 Cert: 드라이브로 인증서 저장소를 제공한다. LocalMachine과 CurrentUser는 서로 다른 저장소 위치이며, NotAfter는 인증서 만료 시각이다.
| 점검 항목 | 의미 |
| Subject | 인증서 주체 |
| Thumbprint | 인증서 식별에 사용할 지문 |
| NotAfter | 만료 시각 |
| HasPrivateKey | 개인키 연결 여부 |
실무 점검 절차
Windows의 PowerShell에서 시스템 시간과 버전을 확인한다.
$PSVersionTable.PSVersion
Get-Date
서버 개인 인증서 저장소에서 30일 이내 만료되거나 이미 만료된 인증서를 조회한다.
$now = Get-Date
$deadline = $now.AddDays(30)
Get-ChildItem -Path Cert:\LocalMachine\My |
Where-Object { $_.NotAfter -le $deadline } |
Sort-Object NotAfter |
Select-Object Subject, Thumbprint, NotAfter,
HasPrivateKey,
@{Name='DaysRemaining'; Expression={
[math]::Floor(($_.NotAfter - $now).TotalDays)
}}
DaysRemaining이 음수이면 이미 만료된 인증서다. 이 예시는 버전별 동적 매개변수 차이를 줄이기 위해 날짜 속성을 직접 비교한다.
추가 저장소는 존재 여부부터 확인한다.
Test-Path Cert:\LocalMachine\WebHosting
결과를 서비스 설정과 대조한다.
저장소 인증서 조회
→ 서비스가 참조하는 지문 확인
→ 실제 접속 주소에서 제공되는 인증서 확인
→ 만료·호스트명·체인 검사
주의사항
- 만료된 인증서가 조회됐다는 이유만으로 삭제하지 않는다.
- Java keystore나 별도 PEM 파일은 Windows 저장소 조회만으로 확인되지 않는다.
- 개인키 존재 여부만으로 서비스 계정의 접근 권한을 판단하지 않는다.
- 갱신·바인딩 변경·삭제 전에는 인증서와 설정을 안전하게 백업하고 테스트 환경에서 검증한다.
운영자 체크리스트
- □ LocalMachine과 CurrentUser를 구분했는가?
- □ 실제 서비스의 인증서 저장 위치를 확인했는가?
- □ 서비스 설정과 지문을 대조했는가?
- □ 외부 접속에서 새 인증서가 제공되는가?
- □ 갱신 실패와 만료 경보를 관리하는가?
정리
인증서 점검은 저장소 조회에서 끝나지 않는다. 서비스 설정과 실제 TLS 응답까지 대조해야 갱신 완료 여부를 확인할 수 있다.
참고자료
'운영체제 > 윈도우' 카테고리의 다른 글
| Windows 예약 작업 실패 점검: LastTaskResult·실행 계정·작업 경로 확인하기 (0) | 2026.10.13 |
|---|---|
| Windows Server NTP 점검: w32tm으로 시간 출처·동기화 상태·오차 확인하기 (0) | 2026.10.12 |
| Windows Server 포트 점검: Get-NetTCPConnection으로 PID와 프로세스 확인하기 (0) | 2026.10.10 |
| Windows Server Storage Replica 복제 상태 점검과 무중단 테스트 페일오버 방법 (0) | 2026.10.09 |
| PowerShell Get-WinEvent FilterHashtable로 대용량 이벤트 로그 빠르게 분석하기 (0) | 2026.10.08 |