모든 Windows 버전에는 Microsoft 웹사이트에서 루트 인증서를 자동으로 업데이트하는 기본 기능이 내장되어 있습니다. Microsoft는 Microsoft 신뢰할 수 있는 루트 인증서 프로그램의 일환으로 클라이언트와 Windows 장치용 신뢰할 수 있는 인증서 목록을 온라인 저장소에서 관리 및 게시합니다. 인증 체인의 검증된 인증서가 이 프로그램에 참여하는 루트 CA를 참조하는 경우, 시스템은 Windows Update 서버에서 해당 루트 인증서를 자동으로 다운로드하여 신뢰할 수 있는 인증서 저장소에 추가합니다.
Windows는 신뢰할 수 있는 루트 인증서 목록(CTL)을 주 1회 업데이트합니다. Windows가 Windows Update에 직접 액세스할 수 없는 경우 루트 인증서를 업데이트할 수 없습니다. 이로 인해 사용자는 웹사이트 탐색 시 문제(SSL 인증서가 신뢰할 수 없는 CA로 서명된 경우 - "Chrome SSL 오류: 이 사이트는 안전한 연결을 제공할 수 없음" 문서 참조)나 서명된 스크립트 및 앱 설치/실행 시 문제를 겪을 수 있습니다.
이 문서에서는 인터넷에 직접 연결되지 않은 격리된 네트워크나 컴퓨터/서버에서 TrustedRootCA의 루트 인증서 목록을 수동으로 업데이트하는 방법을 알아봅니다.
목차
- Windows 10 및 11에서 신뢰할 수 있는 루트 인증서 관리
- Windows에서 자동 루트 인증서 업데이트 사용/사용 안 함 설정
- Certutil: Windows Update에서 신뢰할 수 있는 루트 인증서 다운로드
- Windows의 인증서 신뢰 목록(CTL/STL)
- 격리된 환경에서 GPO를 통한 신뢰할 수 있는 루트 인증서 업데이트
- Windows 7에서 신뢰할 수 있는 루트 인증서 업데이트 방법
- Windows XP에서 Rootsupd.exe 도구를 사용한 루트 인증서 업데이트
참고. 컴퓨터가 프록시 서버를 통해 인터넷에 액세스하는 경우, Microsoft는 루트 인증서 자동 갱신을 위해 Microsoft 웹사이트에 대한 직접 액세스(바이패스)를 열 것을 권장합니다. 하지만 기업 제한 사항으로 인해 항상 가능하거나 적용 가능한 것은 아닙니다.
Windows 10 및 11에서 신뢰할 수 있는 루트 인증서 관리
Windows 컴퓨터에서 신뢰할 수 있는 루트 인증서 목록을 확인하는 방법은 다음과 같습니다.
- Windows 11/10/8.1/7 또는 Windows Server 2022/2019/2016을 실행하는 컴퓨터에서 mmc.exe 콘솔을 실행합니다.
- 파일 → 스냅인 추가/제거를 선택하고, 스냅인 목록에서 인증서(certmgr)를 선택한 후 추가를 클릭합니다.
- 컴퓨터 계정을 관리하도록 선택합니다.
- 다음 → 확인 → 확인을 차례로 클릭합니다.
- 인증서 노드를 확장하고 신뢰할 수 있는 루트 인증 기관 저장소로 이동합니다. 이 섹션에는 컴퓨터의 신뢰할 수 있는 루트 인증서 목록이 포함되어 있습니다.
MMC 콘솔에서 인증서 정보를 확인하거나 신뢰할 수 있는 인증서에서 제거할 수 있습니다.
PowerShell을 사용하여 신뢰할 수 있는 루트 인증서 목록을 만료일과 함께 확인할 수도 있습니다.
Get-Childitem cert:\LocalMachine\root | Format-List
만료되었거나 향후 60일 내에 만료되는 인증서를 나열하려면:
Get-ChildItem cert:\LocalMachine\root | Where {$_.NotAfter -lt (Get-Date).AddDays(60)} | Select NotAfter, Subject
보안상의 이유로 Sigcheck 도구를 사용하여 컴퓨터의 인증서 신뢰 저장소에 의심스럽거나 해지된 인증서가 있는지 정기적으로 확인하는 것이 좋습니다. 이 도구를 사용하면 컴퓨터에 설치된 인증서 목록을 Microsoft 웹사이트의 루트 인증서 목록과 비교할 수 있습니다(최신 인증서가 포함된 authrootstl.cab 오프라인 파일 다운로드 가능).
Export/Import 옵션을 사용하여 루트 인증서 파일을 Windows 컴퓨터 간에 수동으로 전송할 수도 있습니다.
- 인증서를 마우스 오른쪽 버튼으로 클릭하고 모든 작업 → 내보내기를 선택하여 .CER 파일로 내보낼 수 있습니다.
- 다른 컴퓨터에서 모든 작업 → 가져오기 옵션을 사용하여 이 인증서를 가져올 수 있습니다.
Windows에서 자동 루트 인증서 업데이트 사용/사용 안 함 설정
앞서 언급했듯이 Windows는 루트 인증서를 자동으로 업데이트합니다. 그룹 정책 또는 레지스트리를 통해 Windows에서 인증서 갱신을 사용하거나 사용하지 않도록 설정할 수 있습니다.
로컬 그룹 정책 편집기(gpedit.msc)를 열고 다음 경로로 이동합니다.
컴퓨터 구성 → 관리 템플릿 → 시스템 → 인터넷 통신 관리 → 인터넷 통신
이 섹션의 자동 루트 인증서 업데이트 끄기 옵션을 사용하면 Windows Update 사이트를 통한 루트 인증서 자동 업데이트를 비활성화할 수 있습니다. 기본적으로 이 정책은 구성되지 않으며 Windows는 항상 루트 인증서를 자동으로 갱신하려고 시도합니다.
이 GPO 옵션이 구성되지 않았는데도 루트 인증서가 자동으로 갱신되지 않는 경우, 레지스트리에서 이 설정이 수동으로 활성화되었는지 확인하세요. PowerShell을 사용하여 레지스트리 매개변수 값을 확인합니다.
Get-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\SystemCertificates\AuthRoot' -Name DisableRootAutoUpdate
명령 결과 DisableRootAutoUpdate 레지스트리 매개변수 값이 1이면 컴퓨터에서 루트 인증서 업데이트가 비활성화된 것입니다. 이를 활성화하려면 매개변수 값을 0으로 변경하세요.
Certutil: Windows Update에서 신뢰할 수 있는 루트 인증서 다운로드
Certutil.exe 명령줄 도구를 사용하여 인증서를 관리할 수 있습니다(Windows 10부터 기본 제공, Windows 7은 별도 업데이트로 사용 가능). 이 도구를 사용하면 Windows Update에서 최신 루트 인증서 목록을 다운로드하여 SST 파일로 저장할 수 있습니다.
인터넷에 직접 연결된 Windows 10 또는 11 컴퓨터에서 관리자 권한 명령 프롬프트를 열고 다음 명령을 실행합니다.
certutil.exe -generateSSTFromWU C:\PS\roots.sst
Updated SST file. CertUtil: -generateSSTFromWU command completed successfully.
대상 디렉터리에 최신 루트 인증서 목록이 포함된 SST 파일이 생성됩니다. 파일을 두 번 클릭하여 열면 익숙한 인증서 관리 스냅인이 열리며, 여기서 필요한 인증서를 내보낼 수 있습니다. 테스트 환경에서는 358개의 인증서가 목록에 포함되었습니다. 당연히 이 많은 인증서를 하나씩 내보내 설치하는 것은 비효율적입니다.
팁. certutil -syncWithWU 명령을 사용하면 개별 인증서 파일을 생성할 수 있습니다. 이렇게 얻은 인증서는 GPO를 통해 Windows 장치에 배포할 수 있습니다.
PowerShell 스크립트를 사용하여 SST 파일의 모든 인증서를 설치하고 컴퓨터의 신뢰할 수 있는 루트 인증서 목록에 추가할 수 있습니다.
$sstStore = (Get-ChildItem -Path C:\ps\rootsupd\roots.sst)
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
certmgr.msc 스냅인을 실행하여 모든 인증서가 신뢰할 수 있는 루트 인증 기관에 추가되었는지 확인하세요. Windows 11 테스트 환경에서 루트 인증서 수가 34개에서 438개로 증가했습니다.
새로 설치된 Windows에는 루트 저장소에 소수의 인증서만 포함되어 있습니다. 컴퓨터가 인터넷에 연결되어 있으면 HTTPS 사이트나 Microsoft CTL의 지문이 신뢰 체인에 있는 SSL 인증서에 액세스할 때 나머지 루트 인증서가 자동으로(주문형) 설치됩니다. 따라서 일반적으로 Microsoft가 신뢰하는 모든 인증서를 로컬 인증서 저장소에 즉시 추가할 필요는 없습니다.
Windows의 인증서 신뢰 목록(CTL/STL)
인증서 신뢰 목록(CTL)은 신뢰할 수 있는 당사자(이 경우 Microsoft)가 서명한 데이터(인증서 해시 등) 목록입니다. Windows 클라이언트는 Windows Update에서 이 CTL을 주기적으로 다운로드하며, 여기에는 모든 신뢰할 수 있는 루트 CA의 해시가 저장됩니다. 이 CTL에는 인증서 자체가 아닌 해시와 속성(예: 친숙한 이름)만 포함되어 있습니다. Windows 장치는 필요할 때 CTL에서 신뢰할 수 있는 인증서를 다운로드할 수 있습니다.
CTL 파일을 수동으로 다운로드하여 설치할 수 있습니다. 다음 URL에서 파일을 다운로드하세요(월 2회 업데이트).
https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab
압축 프로그램(또는 Windows 탐색기)을 사용하여 authrootstl.cab 압축을 풉니다. 여기에는 단일 authroot.stl 파일이 포함되어 있습니다.
Authroot.stl 파일은 인증서 신뢰 목록 형식의 신뢰할 수 있는 인증서 지문 목록이 포함된 컨테이너입니다.
certutil 명령을 사용하여 이 CTL 파일을 신뢰할 수 있는 루트 인증 기관에 설치할 수 있습니다.
certutil -enterprise -f -v -AddStore "Root" "C:\PS\authroot.stl"
root "Trusted Root Certification Authorities" CTL 0 added to store. CertUtil: -addstore command completed successfully.
인증서 관리 콘솔(신뢰할 수 있는 루트 인증 기관 → 인증서 → 모든 작업 → 가져오기)을 사용하여 인증서를 가져올 수도 있습니다. 인증서 지문이 포함된 STL 파일 경로를 지정하세요.
명령을 실행한 후 인증서 관리자 콘솔(certmgr.msc)의 신뢰할 수 있는 루트 인증 기관 컨테이너에 인증서 신뢰 목록 섹션이 새로 나타납니다.
마찬가지로 루트 인증서 프로그램에서 제거된 해지된(허용되지 않는) 인증서 목록을 다운로드하여 설치할 수 있습니다. disallowedcertstl.cab 파일(https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab)을 다운로드하고 압축을 푼 다음, 다음 명령으로 신뢰할 수 없는 인증서 저장소에 추가하세요.
certutil -enterprise -f -v -AddStore disallowed "C:\PS\disallowedcert.stl"
격리된 환경에서 GPO를 통한 신뢰할 수 있는 루트 인증서 업데이트
인터넷과 격리된 Active Directory 도메인에서 도메인 가입 컴퓨터의 로컬 인증서 저장소를 정기적으로 업데이트해야 하는 경우, 그룹 정책을 사용하여 약간 더 복잡한 방식으로 루트 인증서 업데이트를 구성할 수 있습니다. 격리된 Windows 네트워크에서 사용자 컴퓨터의 루트 인증서 업데이트를 구성하는 몇 가지 방법이 있습니다.
첫 번째 방법: SST 파일을 통한 배포
정기적으로 루트 인증서 파일을 수동으로 다운로드하여 격리된 네트워크에 복사한다고 가정합니다. 다음 명령으로 현재 Microsoft 루트 인증서 파일을 다운로드할 수 있습니다.
certutil.exe -generateSSTFromWU roots.sst
이 파일의 루트 인증서는 SCCM 또는 GPO의 PowerShell 시작 스크립트를 통해 배포할 수 있습니다.
$sstStore = (Get-ChildItem -Path \\fr-dc01\SYSVOL\woshub.com\rootcert\roots.sst)
$sstStore | Import-Certificate -CertStoreLocation Cert:\LocalMachine\Root
두 번째 방법: 로컬 업데이트 소스 구성
다음 명령으로 실제 Microsoft 루트 인증서를 다운로드합니다.
Certutil -syncWithWU -f \\fr-dc01\SYSVOL\woshub.com\rootcert\
지정된 공유 네트워크 폴더에 여러 루트 인증서 파일(CRT 형식, authrootstl.cab, disallowedcertstl.cab, disallowedcert.sst, thumbprint.crt 포함)이 생성됩니다.
그룹 정책 기본 설정을 사용하여 HKLM\Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate 아래의 레지스트리 매개변수 RootDirURL 값을 변경합니다. 이 매개변수는 Windows 컴퓨터가 새 루트 인증서를 받을 공유 네트워크 폴더를 가리켜야 합니다. 도메인 GPMC.msc 콘솔을 실행하고 새 GPO를 생성한 후 정책 편집 모드로 전환하여 컴퓨터 구성 → 기본 설정 → Windows 설정 → 레지스트리로 이동합니다. 다음 설정으로 새 레지스트리 속성을 생성합니다.
- 작업: 업데이트
- 하이브: HKLM
- 키 경로: Software\Microsoft\SystemCertificates\AuthRoot\AutoUpdate
- 값 이름: RootDirURL
- 유형: REG_SZ
- 값 데이터: file://\\fr-dc01\SYSVOL\woshub.com\rootcert\
이 정책을 컴퓨터 OU에 연결하고 클라이언트에서 GPO 설정이 업데이트된 후 인증서 저장소에서 새 루트 인증서를 확인하세요.
컴퓨터 구성 → 관리 템플릿 → 시스템 → 인터넷 통신 관리 → 인터넷 통신 설정 아래의 GPO 매개변수 자동 루트 인증서 업데이트 끄기는 비활성화되거나 구성되지 않아야 합니다.
Windows 7에서 신뢰할 수 있는 루트 인증서 업데이트 방법
Windows 7은 현재 지원 종료 단계에 있지만 많은 사용자와 기업에서 여전히 사용하고 있습니다.
새로 설치한 Windows 7 이미지에서 많은 최신 프로그램과 도구가 작동하지 않는 것을 발견할 수 있습니다. 이들은 새로운 인증서로 서명되어 있기 때문입니다. 특히 .NET Framework 4.8이나 Microsoft Visual Studio(vs_Community.exe)를 Windows 7 SP1 x64에서 루트 인증서 업데이트 없이 설치할 수 없다는 보고가 있었습니다.
설치 프로그램 매니페스트 서명 유효성 검사 실패.
인증서 체인을 신뢰할 수 있는 루트 기관으로 빌드할 수 없어 .NET Framework가 설치되지 않았습니다.
Windows 7에서 루트 인증서를 업데이트하려면 먼저 MSU 업데이트 KB2813430(https://support.microsoft.com/ko-kr/topic/...)을 다운로드하여 설치해야 합니다.
이후 현재 컴퓨터 또는 다른 컴퓨터에서 certutil을 사용하여 루트 인증서가 포함된 SST 파일을 생성합니다.
certutil.exe -generateSSTFromWU c:\ps\roots.sst
이제 인증서를 신뢰할 수 있는 인증서로 가져옵니다.
- MMC 실행 → 스냅인 추가 → 인증서 → 컴퓨터 계정 → 로컬 컴퓨터
- 신뢰할 수 있는 루트 인증 기관을 마우스 오른쪽 버튼으로 클릭 → 모든 작업 → 가져오기
- SST 파일 찾기(파일 유형에서 Microsoft 직렬화된 인증서 저장소 — *.sst 선택) → 열기
- 다음 저장소에 모든 인증서 저장 → 신뢰할 수 있는 루트 인증 기관 선택
Windows XP에서 Rootsupd.exe 도구를 사용한 루트 인증서 업데이트
Windows XP에서는 rootsupd.exe 유틸리티를 사용하여 컴퓨터의 루트 인증서를 업데이트했습니다. 이 도구에는 루트 및 해지된 인증서 목록이 정기적으로 업데이트되어 포함되었습니다. 이 도구는 별도 업데이트 KB931125(루트 인증서 업데이트)로 배포되었습니다. 현재도 사용할 수 있는지 확인해 보겠습니다.
- 다음 링크에서 rootsupd.exe 유틸리티를 다운로드하세요:
https://download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/rootsupd.exe. 현재(2021년 1월 기준) 이 링크는 작동하지 않으며 Microsoft에서 공개에서 제거했습니다. 현재는 카스퍼스키 웹사이트에서 다운로드 가능합니다: https://media.kaspersky.com/utilities/CorporateUtilities/rootsupd.zip - Windows 루트 인증서를 설치하려면 rootsupd.exe 파일을 실행하기만 하면 됩니다. 하지만 내용을 더 자세히 살펴보겠습니다. 다음 명령으로 실행 파일에서 인증서를 추출합니다:
rootsupd.exe /c /t: C:\PS\rootsupd - 인증서는 authroots.sst, delroot.sst 등 SST 파일에 저장됩니다. 인증서를 제거하거나 설치하려면 다음 명령을 사용합니다:
updroots.exe authroots.sst
updroots.exe -d delroots.sst
하지만 보시다시피 이 인증서 파일들은 2013년 4월 4일에 생성되었습니다(Windows XP 공식 지원 종료 약 1년 전). 그 이후로 이 도구는 업데이트되지 않았으며 최신 인증서를 설치하는 데 사용할 수 없습니다.
대신 Windows 10/11에서 cerutil 도구를 사용하여 root.sst를 다운로드하고, 해당 파일을 Windows XP로 복사한 후 updroots.exe를 사용하여 인증서를 설치할 수 있습니다.
updroots.exe c:\temp\roots.sst
updroots.exe 도구는 최신 Windows 10 1803+ 및 Windows 11 빌드에서는 사용하지 않는 것이 좋습니다. 장치의 Microsoft 루트 CA를 손상시킬 수 있다는 정보가 있습니다.
이 문서에서는 인터넷과 격리된 Windows 네트워크 컴퓨터(연결이 끊긴 환경)에서 신뢰할 수 있는 루트 인증서를 업데이트하는 여러 방법을 살펴보았습니다.