Windows Server 2012 Two-Tier PKI 설치및구성 [ 여기에문서요약을입력하십시오. 일반적으로요약은문서의내용을간략하게정리한것입니다. 여기에문서요약을입력하십시오. 일반적으로요약은문서의내용을간략하게정리한것입니다.] 이동철 2013-05-25
목차 데모환경... 3 Exercise 1: CDP 및 AIA 공개를위한 HTTP Web 서버준비 (on Web1)... 4 CertEnroll 폴더생성및 Cert Publishers 그룹에공유및 NTFS 권한설정... 4 IIS 관리도구에서 CertEnroll 가상디렉터리생성... 9 IIS 서버에 Double Escaping 활성화... 11 DNS 관리도구에서 CNAME(PKI.CONTOSO.com) 생성... 13 Exercise 2: Standalone Offline Root CA 설치 (on CA01)... 15 Standalone Offline Root CA 를위한 CAPolicy.inf 생성... 15 Standalone Offline Root CA 설치... 18 Exercise 3: Standalone Offline Root CA 사후설치구성작업 (on CA01)... 28 Exercise 4: Subordinate Issuing CA 설치 (on CA02)... 33 Subordinate Enterprise Issuing CA 를위한 CAPolicy.inf 생성... 33 Active Directory 및 HTTP 경로에 Root CA 인증서및 CRL 공개한후, CA02.CONTOSO.com 의 로컬저장소에추가... 36 Subordinate Issuing CA 설치... 39 Contoso Root CA (CA01) 에서, Contoso Issuing CA(CA02.CONTOSO.com) 의인증서요청생성 및 Submit (on CA01)... 45 CA02.Contoso.com 에서, Contoso Issuing CA 인증서설치... 51 Exercise 5: Subordinate Issuing CA 에서설치후속구성 (on CA02)... 55 Exercise 6: PKI Hierarchy Health 검증 (on CA02)... 61 PKIView.msc (Enterprise PKI) 를사용하여 PKI Health 검증... 61 페이지 1 / 73
Exercise 7: Windows 8 클라이언트인증서자동발급 (Auto Enrollment) 을위한구성및수행 (on CA02)... 64 자동발급활성화를위한 GPO 구성... 64 자동발급을위한인증서템플릿준비... 67 인증기관에인증서템플릿공개... 69 Windows 8 클라이언트에서자동발급수행 (on Win8)... 71 참조자료... 73 페이지 2 / 73
데모환경 Two-Tier PKI 를구성하기위한데모환경은아래와같습니다. Two-Tier PKI Hierarchy 데모 DC01.CONTOSO.com 192.168.0.10 Domain Controller Windows Server 2012 DNS, LDAP CDP/AIA CA01 192.168.0.11 Workgroup Server Windows Server 2012 Standalone Offline Root CA CA02.CONTOSO.com 195.168.0.12 Member Server Windows Server 2012 Enterprise Issuing CA Workstation Authentication 인증서 WEB1.CONTOSO.com CNAME : PKI.CONTOSO.com 195.168.0.13 Member Server Windows Server 2012 Web Server, HTTP CDP/AIA CONTOSO.com WIN8.CONTOSO.com 195.168.0.14 Domain Clients Windows 8 페이지 3 / 73
Exercise 1: CDP 및 AIA 공개를위한 HTTP Web 서버준비 (on Web1) Exercise 1을수행하기위해서는아래와같이총 4개의세부작업이포함됩니다. CertEnroll 폴더생성및 Cert Publishers 그룹에공유및 NTFS 권한설정 IIS 관리도구에서 CertEnroll 가상디렉터리생성 IIS 서버에 Double Escaping 활성화 DNS 관리도구에서 CNAME(PKI.CONTOSO.com) 생성 Note 본데모환경에서시간을절약하기위해, WEB1.CONTOSO.com 서버에사전에 Web Server(IIS) 역할을설치합니다. CertEnroll 폴더생성및 Cert Publishers 그룹에공유및 NTFS 권한설정 1. WEB1.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로 로그인합니다. 2. Windows Explorer 를수행한후, C 드라이브하위에 C:\CertEnroll 폴더를생성합니다. 페이지 4 / 73
3. CertEnroll 폴더를오른쪽마우스클릭한후, Properties를선택합니다. 4. CertEnroll Properties 페이지에서, 공유권한을구성하기위해 Sharing 탭을 선택합니다. 5. Advanced Sharing 옵션을클릭한후, Share this folder를선택합니다. 6. Permissions 을클릭한후, Add 를클릭합니다. 7. Select Users or Groups 페이지에서, Enter the object names to select 부분하위에 Cert Publishers 를입력한후, OK 를클릭합니다. 8. Permissions for CertEnroll 페이지에서, Cert Publishers 그룹을선택한후, Change 권한을선택한후, CertEnroll Properties 페이지로돌아가기위해 OK 를두번 클릭합니다. 페이지 5 / 73
9. Security 탭을선택하고, NTFS 권한을구성하기위하여 Edit 를클릭합니다. 페이지 6 / 73
10. Permissions for CertEnroll 페이지에서, Add 를클릭합니다. 11. Select Users or Groups 페이지에서, Enter the object names to select 부분하위에 페이지 7 / 73
Cert Publishers 를입력한후, OK 를클릭합니다. 12. Permissions for CertEnroll 페이지에서, Cert Publishers 그룹을선택한후, Modify 권한을선택한후, OK 를클릭합니다. 13. CertEnroll Properties 페이지에서, Close 를클릭합니다. 페이지 8 / 73
IIS 관리도구에서 CertEnroll 가상디렉터리생성 1. WEB1.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로 로그인합니다. 2. Server Manager 를수행한후, Tools -> Internet Information Services (IIS) Manager. 순서로클릭합니다. 3. 왼쪽측면에서, WEB1 노드를확장한후, Sites를확장합니다. 4. Default Web Site를오른쪽마우스클릭한후, Add Virtual Directory를선택합니다. 5. Add Virtual Directory 페이지에서, Alias: 로써 CertEnroll 를입력하고, Physical Path: 로써 C:\CertEnroll 를입력한후, OK 를클릭합니다. 페이지 9 / 73
6. 왼쪽창에서, Default Web Site 하위의 CertEnroll 가상디렉터리를선택합니다. 7. 중간창내의 Directory Browsing 를클릭한후, 오른쪽의 Actions 창하위의 Enable 를 선택합니다. 페이지 10 / 73
IIS 서버에 Double Escaping 활성화 1. WEB1.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Start를선택한후, Run을선택합니다. Run이수행되면, cmd를입력한후, OK를클릭합니다. 3. CD\ 입력한후, Enter 를입력하면, C:\ 로이동합니다. 4. cd %windir%\system32\inetsrv\ 를입력한후, Enter 를누릅니다. 5. 아래명령어를입력한후, Enter 를누릅니다. 아래명령어는 Default Web Site에서 Double Escaping을허용하는명령어입니다. Appcmd set config "Default Web Site" /section:system.webserver/security/requestfiltering - allowdoubleescaping:true 페이지 11 / 73
6. IIS 서비스를재시작하기위하여, iisreset 를입력한후, Enter 를누릅니다. 페이지 12 / 73
DNS 관리도구에서 CNAME(PKI.CONTOSO.com) 생성 1. DC01.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Server Manager 를수행한후, Tools -> DNS. 순서로클릭합니다. 3. Forward Lookup Zones를확장한후, Contoso.com 영역을오른쪽마우스클릭한후, New Alias (CNAME) 를선택합니다. 4. Alias Name 부분에 PKI 를입력하고, Fully qualified domain name (FQDN) for target host 부분에 WEB1.CONTOSO.com. 를입력한후, OK 를클릭합니다. Note 앞선단계에서, FQDN 끝부분에. 를포함했습니다. 실제운영환경에서, 이러한 Alias 는 CA 인증서및 CRL 을포함하는임의의 Web Server 들에게요청되는로드분산을처리할수있는 페이지 13 / 73
기능을제공합니다. 페이지 14 / 73
Exercise 2: Standalone Offline Root CA 설치 (on CA01) Exercise 2 를수행하기위해서는아래와같이총 2 개의세부작업이포함됩니다. Standalone Offline Root CA 를위한 CAPolicy.inf 생성 Standalone Offline Root CA 설치 Standalone Offline Root CA 를위한 CAPolicy.inf 생성 1. CA01 서버에관리자계정 (CA01\Administrator) 으로로그인합니다. 2. Windows Explorer에서 C:\Windows\CAPolicy.inf 파일을 Notepad에서 Open한후, 파일의내용을검토합니다. 이파일의내용은아래와같습니다. (Note To save time this file has been already created for you). [Version] Signature="$Windows NT$" [PolicyStatementExtension] Policies=InternalPolicy [InternalPolicy] OID= 1.2.3.4.1455.67.89.5 페이지 15 / 73
Notice="Legal Policy Statement" URL=http://pki.contoso.com/CertEnroll/cps.txt [Certsrv_Server] RenewalKeyLength=2048 RenewalValidityPeriod=Years RenewalValidityPeriodUnits=20 AlternateSignatureAlgorithm=1 Note 위예제 CAPolicy.inf 에서보여진 OID는 Microsoft OID입니다. 각회사는자체 OID를획득할수있습니다. ISO Name Registration Authority로부터 Root OID를획득하기위하여, OID에관한자세한정보는다음링크를참조합니다 (http://msdn.microsoft.com/library/windows/desktop/ms677621.aspx). CAPolicy.inf 파일에서, http://pki.contoso.com/certenroll/cps.txt URL을지정한라인을확인할수있습니다. CAPolicy.inf의 Internal Policy 부분은 CPS(Certificate Practice Statement) 의위치를지정하는방법에대한예제를보여줍니다. CPS를포함하는 Policy Statement에관한정보를확인하기위하여, Creating Certificate Policies and Certificate Practice Statements (http://technet.microsoft.com/library/cc780454.aspx) 및 RFC 2527 (http://www.ietf.org/rfc/rfc2527.txt) 링크를확인합니다. Note CAPolicy.inf 파일의임의의항목이잘못된철자가포함된다면, 완전하게무시될것입니다. 페이지 16 / 73
Note Windows XP 및 Windows Server 2003 인증서클라이언트는 Alternate Signature Algorithm을지원하지않습니다. 이러한클라이언트가인증서를발급받기를원한다면, CAPolicy.inf에서 AlternateSignatureAlgorithm=1 를추가하지않습니다. 좀더자세한정보를획득하기위하여, Guidelines for Using Alternate Signature Formats 링크를확인합니다. 3. 검토후에, CAPolicy.inf 파일을닫습니다. 페이지 17 / 73
Standalone Offline Root CA 설치 먼저, CA01 서버의속성을아래와같이확인합니다. CA01 서버는 Workgroup 상태임을확인할수 있습니다. 1. CA01 서버에관리자계정 (CA01\Administrator) 으로로그인합니다. 2. Server Manager 에서, Manage 를클릭한후, Add Roles and Features 를클릭합니다. 3. Before you begin 페이지에서, Next 를클릭합니다. 4. Select Installation Type 페이지에서, Role-based or feature-based installation 이 선택되어있음을확인한후, Next 를클릭합니다. 페이지 18 / 73
5. Select Destination Server 페이지에서, Server Pool 하위에서 CA01 가선택되어있음을 확인한후, Next 를클릭합니다. 6. Select Server Roles 페이지에서, Active Directory Certificate Services 역할을선택합니다. 7. Remote Server Administration Tools 설치여부를확인할때, Add Features를클릭합니다. 8. Select Features 페이지에서, Next 를클릭합니다. 페이지 19 / 73
9. Active Directory Certificate Services 페이지에서, Next 를클릭합니다. 10. Select Role Services 페이지에서, 기본적으로 Certification Authority 역할이선택되어 있음을확인한후, Next 를클릭합니다. 페이지 20 / 73
11. Confirm Installation Selections 페이지에서, 정보를검증한후, Install 를클릭합니다. 12. 설치가완료될때까지대기합니다. CA 를위한바이너리파일이설치될때, 설치진행 과정이보여집니다. 바이너리파일설치가완료된후, Configure Active Directory Certificate Services on the destination server 링크를클릭합니다. 구성을완료하지않고 Close 를클릭한다면, Server Manager 의 notifications icon 부분에서, 구성을완료하기위하여링크를통하여역할서비스의구성을완료할수있습니다. 13. Credentials 페이지에서, 자격증명상자에 CA01\Administrator 계정이보여짐을확인한 후, Next 를클릭합니다. 페이지 21 / 73
14. Role Services 페이지에서, Certification Authority 를선택한후, Next 를클릭합니다. Certificate Authority 역할의바이너리파일이설치되어있는서버에서만가능한 옵션입니다. 15. Setup Type 페이지에서가용한유일한옵션이 Standalone CA 임을확인합니다. 즉, CA01 서버가 Active Directory Domain Service 도메인의구성원이아니기때문에, Standalone CA 만이구성옵션으로가능합니다. Next 를선택합니다. 페이지 22 / 73
16. CA Type 페이지에서, 기본적으로 Root CA 가선택되어있음을확인한후, Next 를 클릭합니다. 17. Private Key 페이지에서, Create a new private key 가기본적으로선택되어있음을 그대로유지한후, Next 를클릭합니다. 페이지 23 / 73
18. Cryptography for CA 페이지에서, Cryptographic Provider 가 RSA#Microsoft Software Key Storage Provider 선택되어있음을확인하고, Key Length 는 2048 로설정되어있음을 확인하고, Hash Algorithm 는 SHA1 을선택한후, Next 를클릭합니다. 19. CA Name 페이지에서, Common name for this CA 텍스트상자에서, Contoso Root CA 를입력한후, Next 를클릭합니다. 페이지 24 / 73
20. Validity Period 페이지에서, 인증서의유효기간에대한값으로써 20 을입력합니다. 21. CA Database 페이지에서, 데이터베이스및데이터베이스로그파일의기본경로를 그대로유지한후, Next 를클릭합니다. 페이지 25 / 73
22. Confirmation 페이지에서, Configure 를클릭합니다. 23. Installation Progress 페이지에서, Close 를클릭합니다. 페이지 26 / 73
Note 위모든구성과정은아래 Windows PowerShell 명령어로대체할수있습니다. Add-WindowsFeature Adcs-Cert-Authority IncludeManagementTools Install-AdcsCertificationAuthority CAType StandaloneRootCA CACommonName Contoso Root CA KeyLength 2048 HashAlgorithm SHA1 CryptoProviderName RSA#Microsoft Software Key Storage Provider -ValidityPeriod Years -ValidityPeriodUnits 20 -Force 페이지 27 / 73
Exercise 3: Standalone Offline Root CA 사후설치구성작업 (on CA01) 1. CA01 서버에관리자계정 (CA01\Administrator) 으로로그인합니다. 2. Command Prompt을수행합니다. 3. Active Directory Configuration Partition DN을정의하기위하여, 아래명령어를입력한후, Enter를누릅니다. 아래명령어의입력은스펠링의오류가없도록해야합니다. Certutil -setreg CA\DSConfigDN CN=Configuration,DC=Contoso,DC=com 4. CRL Period Units 및 CRL Period을정의하기위해, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\CRLPeriodUnits 52 Certutil -setreg CA\CRLPeriod Weeks 5. CRL Overlap Period Units 및 CRL Overlap Period을정의하기위해, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\CRLOverlapPeriodUnits 12 Certutil -setreg CA\CRLOverlapPeriod Hours 페이지 28 / 73
6. CA01 서버의 CA를통해발급된모든인증서를위한 Validity Period Units를정의하기위하여, 아래명령어를입력한후, Enter를누릅니다. Two-Tier PKI 계층구조에서, Enterprise Issuing CA는인증서의유효기간을 10년으로설정함을유념해야합니다. 즉, Standalone Offline Root CA에서발급되는모든인증서의유효기간은 10년임을설정하는단계입니다. 그러므로, Standalone Offline Root CA (CA01) 에서발급될 Contoso Issuing CA(CA02.CONTOSO.com) 의인증서는유효기간이 10년으로설정됩니다. Certutil -setreg CA\ValidityPeriodUnits 10 Certutil -setreg CA\ValidityPeriod Years 7. CA 감사는시스템 Object Access 감사를활성화함으로써가능합니다. 그러므로, 시스템을위한 CA 감사를설정하기위하여, 관리자는아래 2가지설정구성을할필요성이있습니다. 페이지 29 / 73
A. Certificate Authority MMC 스냅-인에서감사를위한그룹이벤트를선택함으로써 CA의감사를활성화하거나, AuditFilter 레지스트리키설정을구성함으로써 CA 감사를활성화할수있습니다. CA와관련된모든이벤트를구성하기위하여, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\AuditFilter 127 B. Certificate Authority의객체접근감사를활성화합니다. Standalone Offline Root CA는도메인에죠인되지않은워크그룹상태이므로, Local Security Policy를사용하여이러한설정을구성할필요성이있습니다. 아래는 Local Security Policy를사용하여 Object Access Auditing을활성화하는절차입니다. i. Server Manager 를수행한후, Tools -> Local Security Policy 순서로 클릭합니다. ii. Local Policies 를확장한후, Audit Policy 를선택합니다. iii. Audit Object Access 를더블클릭한후, Success 및 Failure 를선택한후, OK 를 클릭합니다. 페이지 30 / 73
iv. Local Security Policy 편집기를닫습니다. 8. Registry Editor를수행하기위하여, Start를클릭한후, Run를선택합니다. Regedit를입력한후, Enter를누릅니다. 9. HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\Contoso Root CA 레지스트리위치를선택한후, CACertPublicationURLs를 open 합니다. CACertPublicationURLs 를아래와같이정확하게구성함을확인합니다. 기본값에서적당한변경이필요합니다. 특히, 2번째줄의 HTTP 경로는앞서 CNAME으로구성한 PKI.CONTOSO.com 임을확인합니다. http://pki.contoso.com/ 경로는외부에서 PublicationURLs 및아래 CRLPublicationURLs을참조할수있는유일한경로이므로, 정확한구성이필요합니다. 1:C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt 2:http://pki.contoso.com/CertEnroll/%1_%3%4.crt 2:ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11 페이지 31 / 73
10. HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\Contoso Root CA 레지스트리위치를선택한후, CRLPublicationURLs를 open 합니다. CRLPublicationURLs 를아래와같이정확하게구성함을확인합니다. 기본값에서적당한변경이필요합니다. 1:C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl 2:http://pki.contoso.com/CertEnroll/%3%8%9.crl 10:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10 11. 레지스트리편집기를닫고, 아래명령어를수행하여앞서구성한레지스트리키값을 적용하기위해, Active Directory Certificate Service 를재시작합니다. net stop certsvc & net start certsvc 12. Active Directory Certificate Service 를재시작됨을확인한후, CRL 을공개하기위하여, Certutil -CRL 아래명령어를수행합니다. 페이지 32 / 73
Exercise 4: Subordinate Issuing CA 설치 (on CA02) Exercise 4를수행하기위해서는아래와같이총 5개의세부작업이포함됩니다. Subordinate Enterprise Issuing CA 를위한 CAPolicy.inf 생성 Active Directory 및 HTTP 경로에 Root CA 인증서및 CRL 공개한후, CA02.CONTOSO.com의로컬저장소에추가 Subordinate Issuing CA 설치 Contoso Root CA (CA01) 에서, Contoso Issuing CA(CA02.CONTOSO.com) 의인증서요청생성및 Submit CA02.Contoso.com 에서, Contoso Issuing CA 인증서설치 Subordinate Enterprise Issuing CA 를위한 CAPolicy.inf 생성 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Windows Explorer에서 C:\Windows\CAPolicy.inf 파일을 Notepad에서 Open한후, 파일의내용을검토합니다. 이파일의내용은아래와같습니다. (Note To save time this file has been already created for you). 페이지 33 / 73
[Version] Signature="$Windows NT$" [Certsrv_Server] RenewalKeyLength=2048 RenewalValidityPeriod=Years RenewalValidityPeriodUnits=10 LoadDefaultTemplates=0 AlternateSignatureAlgorithm=1 페이지 34 / 73
Note - Windows XP 및 Windows Server 2003 인증서클라이언트는 Alternate Signature Algorithm을지원하지않습니다. 이러한클라이언트가인증서를발급받기를원한다면, CAPolicy.inf에서 AlternateSignatureAlgorithm=1 를추가하지않습니다. 좀더자세한정보를획득하기위하여, Guidelines for Using Alternate Signature Formats 링크를확인합니다. 3. 검토후에, CAPolicy.inf 파일을닫습니다. 페이지 35 / 73
Active Directory 및 HTTP 경로에 Root CA 인증서및 CRL 공개한후, CA02.CONTOSO.com 의로 컬저장소에추가 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. 앞서 Exercise 3에서 Standalone Offline Root CA의 ROOT CA 인증서및 ROOT CA CRL 파일을공개했습니다. 이 2가지파일을 CA02.CONTOSO.com 서버의 C 드라이브루트에복사합니다. 실제경로는 \\192.168.0.11\C$\Windows\System32\CertSrv\CertEnroll 이고, 이경로에는 Root CA Certificate (.crt file) 및 Root CA CRL (.crl file) 파일 2개가존재함을확인한후, 이 2개파일을 CA02.CONTOSO.com 서버의 C 드라이브루트에복사합니다. 페이지 36 / 73
3. 이제앞서복사한 Contoso Root CA Certificate 및 CRL 2개파일을실제 Enterprise Issuing CA가설치될 Active Directory (CONTOSO.com) 에공개하기위하여, 아래와같은명령어를수행한후, 를누릅니다. certutil -f -dspublish CA01_Contoso Root CA.crt RootCA certutil -f -dspublish Contoso Root CA.crl 4. http://pki.contoso.com/certenroll 링크에 Contoso Root CA Certificate 및 CRL 2개파일을공개하기위하여, \\Web1.Contoso.com\C$\CertEnroll 디렉터리에 Contoso Root CA Certificate 및 CRL 2개파일을복사합니다. 아래명령어를수행한후, 를누릅니다. 2개파일은 CA02.CONTOSO.com 서버의 C 드라이브루트에존재함을확인합니다. copy "CA01_Contoso Root CA.crt" \\WEB1.Contoso.com\C$\CertEnroll\ copy "Contoso Root CA.crl" \\WEB1.Contoso.com\C$\CertEnroll\ 5. CA02.CONTOSO.com 로컬저장소에 Contoso Root CA Certificate 및 CRL 을추가히기위하여, 아래명령어를수행한후, Enter 를누릅니다. 또한, 아래와같이 CA02.CONTOSO.com 서버의 인증서 스냅-인의 신뢰할수있는루트인증기관 에서추가된 Contoso Root CA 를확인할수있습니다. certutil -addstore -f root CA01_Contoso Root CA.crt certutil -addstore -f root Contoso Root CA.crl 페이지 37 / 73
페이지 38 / 73
Subordinate Issuing CA 설치 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Server Manager에서, Manage를클릭한후, Add Roles and Features를클릭합니다 3. Before you begin 페이지에서, Next를클릭합니다. 4. Select Installation Type 페이지에서, Role-based or feature-based installation 이선택되어있음을확인한후, Next를클릭합니다. 5. Select Destination Server 페이지에서, Server Pool 하위에서 CA02.COTNSO.com가선택되어있음을확인한후, Next를클릭합니다. 6. Select Server Roles 페이지에서, Active Directory Certificate Services 역할을선택합니다. 7. Remote Server Administration Tools 설치여부를확인할때, Add Features를클릭합니다. 8. Select Features 페이지에서, Next를클릭합니다. 9. Active Directory Certificate Services 페이지에서, Next를클릭합니다. 10. Select Role Services 페이지에서, 기본적으로 Certification Authority 역할이선택되어있음을확인한후, Next를클릭합니다. 페이지 39 / 73
11. Confirm Installation Selections 페이지에서, 정보를검증한후, Install 를클릭합니다. 12. 설치가완료될때까지대기합니다. CA를위한바이너리파일이설치될때, 설치진행과정이보여집니다. 바이너리파일설치가완료된후, Configure Active Directory Certificate Services on the destination server 링크를클릭합니다. 구성을완료하지않고 Close를클릭한다면, Server Manager의 notifications icon 부분에서, 구성을완료하기위하여링크를통하여역할서비스의구성을완료할수있습니다. 13. Credentials 페이지에서, 자격증명상자에 CONTOSO\Administrator 계정이보여짐을확인한후, Next 를클릭합니다. 14. Role Services 페이지에서, Certification Authority를선택한후, Next를클릭합니다. 페이지 40 / 73
15. Setup Type 페이지에서, Enterprise CA 옵션이자동으로선택되어있음을확인한후, Next 를클릭합니다. 16. CA Type 페이지에서, Enterprise Subordinate CA 를설치하기위하여, Subordinate CA 를선택한후, Next 를클릭합니다. 17. Private Key 페이지에서, Create a new private key 가기본적으로선택되어있음을그대로유지한후, Next를클릭합니다. 18. Cryptography for CA 페이지에서, Cryptographic Provider가 RSA#Microsoft Software Key Storage Provider 선택되어있음을확인하고, Key Length는 2048로설정되어있음을확인하고, Hash Algorithm는 SHA1을선택한후, Next 를클릭합니다. 페이지 41 / 73
19. CA Name 페이지에서, Common name for this CA 텍스트상자에서, Contoso Issuing CA 를입력한후, Next 를클릭합니다. Distinguished Name 부분이자동적으로 CN=Contoso Issuing CA,DC=contoso,DC=com 와같이변경됨을확인할수있습니다. 20. Certificate Request 페이지에서, Save a certificate request to file on the target machine 이선택되어있음을확인합니다. 이구성은 Offline Root CA(Contoso Root CA) 를사용하기때문에정확한옵션입니다. 즉, 현재설치중인 Enterprise Issuing CA인 Contoso Issuing CA의상위인증기관으로써 Contoso Root CA로지정하기위하여, Contoso Issuing CA의루트인증서요청을파일로구성하여, Contoso Root CA에오프라인으로전달하여 Contoso Issuing CA의루트인증서를발급받습니다. 아래를확인해보면, Contoso Issuing CA의루트인증서요청이 C:\CA02.contoso.com_contoso-CA02-CA.req 파일로생성됨을확인합니다. 페이지 42 / 73
21. CA Database 페이지에서, Contoso Issuing CA 의기본데이터베이스경로및로그 경로를유지한후, Next 를클릭합니다. 22. Confirmation 페이지에서, Configure 를클릭합니다. 페이지 43 / 73
23. Results 페이지에서, 구성을완료하기위하여, 부모 CA(Contoso Root CA) 에서인증서 요청을처리하도록함을확인하는메시지를확인할수있습니다. Close 를클릭합니다. Note Enterprise Subordinate CA 의설치과정은아래 Windows PowerShell 명령어로대체할수 있습니다 : Add-WindowsFeature Adcs-Cert-Authority IncludeManagementTools Install-AdcsCertificationAuthority -CAType EnterpriseSubordinateCA -CACommonName "Contoso Issuing CA" -KeyLength 2048 -HashAlgorithm SHA1 -CryptoProviderName "RSA#Microsoft Software Key Storage Provider" 페이지 44 / 73
Contoso Root CA (CA01) 에서, Contoso Issuing CA(CA02.CONTOSO.com) 의인증서요청생성및 Submit (on CA01) 1. CA01 서버에관리자계정 (CA01\Administrator) 으로로그인합니다. 2. 앞서 Exercise 3의 Subordinate Issuing CA 설치 단계의 20번째에서, Contoso Issuing CA의루트인증서요청이 CA02.CONTOSO.com 서버의 C:\CA02.contoso.com_contoso- CA02-CA.req 파일로생성됨을확인했습니다. 이제이루트인증서요청파일을 Standalone Offline Root CA인 CA01 서버의 C 드라이브루트에복사합니다. 실제경로는 \\192.168.0.12\C$\CA02.Contoso.com_Contoso Issuing CA.req 이고, 이파일을 CA01(192.168.0.11) 서버의 C 드라이브루트에복사합니다. 페이지 45 / 73
3. Server Manager 에서, Certificate Authority Manager MMC를수행하기위하여, Certification Authority 를클릭합니다. 4. Contoso Root CA 를오른쪽마우스클릭한후, All Tasks -> Submit New Request 순서로클릭합니다. 5. C 드라이브루트에서, CA02.Contoso.com_Contoso Issuing CA.req 요청파일을선택한 후, Open 를클릭합니다. 페이지 46 / 73
6. Contoso Root CA 노드를확장하고, Pending Requests 를선택합니다. 7. 오른쪽창에서 Pending Request 를오른쪽마우스클릭한후, All Tasks -> Issue 순서로 클릭합니다. 8. Issued Certificates 를선택한후, 오른쪽창에서발급된인증서를오른쪽마우스클릭한 후, Open 을선택합니다. 9. Details 탭을선택한후, 밑에있는 Copy to File 를클릭합니다. 이작업은이제 Standalone Offline Root CA 로부터발급받은 Enterprise Issuing CA 인 Contoso Issuing 페이지 47 / 73
CA 의루트인증서를외부파일로추출하는과정입니다. 이루트인증서는실제 Contoso Issuing CA 의설치될예정입니다. 10. Welcome to the Certificate Export Wizard 페이지에서, Next 를클릭합니다. 페이지 48 / 73
11. Cryptographic Message Syntax Standard - PKCS #7 Certificates (.P7B) 로형태를 변경한후, Next 를클릭합니다. 12. file name 부분에서 C:\Contoso Issuing CA 를입력한후, Next -> Finish -> OK -> OK 순서로클릭합니다. 이제 CA01 서버의 C 드라이브루트에 C:\Contoso Issuing CA.P7B 파일이생성됩니다. 페이지 49 / 73
페이지 50 / 73
CA02.Contoso.com 에서, Contoso Issuing CA 인증서설치 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. 앞서 Exercise 3의 Contoso Root CA (CA01) 에서, Contoso Issuing CA(CA02.CONTOSO.com) 의인증서요청생성및 Submit 단계의 9번째에서, Contoso Issuing CA의루트인증서파일이 C:\Contoso Issuing CA.P7B 파일로생성됨을확인했습니다. 이제이 Contoso Issuing CA 인증서파일을 Enterprise Subordinate CA인 CA02.CONTOSO.com 서버의 C 드라이브루트에복사합니다. 실제경로는 \\192.168.0.11\C$\Contoso Issuing CA.P7B 이고, 이파일을 CA02.CONTOSO.com (192.168.0.12) 서버의 C 드라이브루트에복사합니다. 페이지 51 / 73
CA02.CONTOSO.com (192.168.0.12) 3. Server Manager 에서, Certificate Authority Manager MMC를수행하기위하여, Certification Authority 를클릭합니다. 4. Contoso Issuing CA 를오른쪽마우스클릭한후, All Tasks -> Install CA Certificate 순서로클릭합니다. 이작업을통해, Standalone Offline Root CA로부터발급받은 Enterprise Issuing CA인 Contoso Issuing CA에설치합니다. 5. C:\Contoso Issuing CA.P7B 파일을선택한후, Open 을클릭합니다. 페이지 52 / 73
6. Certificate Authority 서비스를시작하기위하여, Certificate Authority MMC 에서 Consoto Issuing CA 를오른쪽마우스클릭한후, All Tasks -> Start Service 순서로클릭합니다. (Note You may have to wait for few seconds before it allows you to start service). Note Start 서비스아이콘의색깔이검정에서녹색으로변경됨을확인합니다. 페이지 53 / 73
7. Contoso Issuing CA 노드를확장한후, Certificate Templates 를선택합니다. 오른쪽창에기본인증서템플릿이하나도존재하지않음을확인합니다. 이것은앞서 Exercise 3의 Subordinate Enterprise Issuing CA 를위한 CAPolicy.inf 생성 단계의정책파일에서 LoadDefaultTemplates=0 옵션을설정하였기때문에발생하는현상입니다. 페이지 54 / 73
Exercise 5: Subordinate Issuing CA 에서설치후속구성 (on CA02) 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Command Prompt을수행합니다. 3. CRL Period Units 및 CRL Period을정의하기위해, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\CRLPeriodUnits 1 Certutil -setreg CA\CRLPeriod Weeks Certutil setreg CA\CRLDeltaPeriodUnits 1 Certutil setreg CA\CRLDeltaPeriod Days 페이지 55 / 73
4. CRL Overlap Period Units 및 CRL Overlap Period을정의하기위해, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\CRLOverlapPeriodUnits 12 Certutil -setreg CA\CRLOverlapPeriod Hours 5. Contoso Issuing CA의레지스트리설정에서인증서유효기간이기본으로 2년임을확인할수있습니다. 즉, Contoso Issuing CA에서발급되는모든인증서의유효기간은기본적으로 2년입니다. 이인증서유효기간을적절하게수정합니다. Contoso Issuing CA의루트인증서유효기간은 10년임을앞서확인했습니다. 이러한상태에서, Contoso Issuing CA에서발급되는모든인증서의유효기간은 10년의반절이상으로설정하는것은권장사항이아닙니다. 본데모환경에서, Contoso Issuing CA에서발급되는모든인증서의유효기간은 5년으로설정합니다. 페이지 56 / 73
Certutil -setreg CA\ValidityPeriodUnits 5 Certutil -setreg CA\ValidityPeriod Years 6. CA 감사는시스템 Object Access 감사를활성화함으로써가능합니다. 그러므로, 시스템을위한 CA 감사를설정하기위하여, 관리자는아래 2가지설정구성을할필요성이있습니다. A. Certificate Authority MMC 스냅-인에서감사를위한그룹이벤트를선택함으로써 CA의감사를활성화하거나, AuditFilter 레지스트리키설정을구성함으로써 CA 감사를활성화할수있습니다. CA와관련된모든이벤트를구성하기위하여, 아래명령어를입력한후, Enter를누릅니다. Certutil -setreg CA\AuditFilter 127 B. Certificate Authority의객체접근감사를활성화합니다. Local Security Policy를사용하여이러한설정을구성할수있으나, CA02.CONTOSO.com 서버는도메인멤버컴퓨터이므로, GPO 기반으로설정할수도있습니다. 아래는 Local Security Policy를사용하여 Object Access Auditing을활성화하는절차입니다. i. Server Manager 를수행한후, Tools -> Local Security Policy 순서로클릭합니다. ii. Local Policies 를확장한후, Audit Policy를선택합니다. iii. Audit Object Access를더블클릭한후, Success 및 Failure를선택한후, OK를페이지 57 / 73
클릭합니다. iv. Local Security Policy 편집기를닫습니다. 7. Registry Editor를수행하기위하여, Start를클릭한후, Run를선택합니다. Regedit를입력한후, Enter를누릅니다. 8. HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\Contoso Issuing CA 레지스트리위치를선택한후, CACertPublicationURLs를 open 합니다. CACertPublicationURLs 를아래와같이정확하게구성함을확인합니다. 기본값에서적당한변경이필요합니다. 특히, 2번째줄의 HTTP 경로는앞서 CNAME으로구성한 PKI.CONTOSO.com 임을확인합니다. http://pki.contoso.com/ 경로는외부에서 PublicationURLs 및아래 CRLPublicationURLs을참조할수있는유일한경로이므로, 정확한구성이필요합니다. 1:C:\Windows\system32\CertSrv\CertEnroll\%1_%3%4.crt 2:http://pki.Contoso.com/CertEnroll/%1_%3%4.crt 2:ldap:///CN=%7,CN=AIA,CN=Public Key Services,CN=Services,%6%11 페이지 58 / 73
9. HKLM\System\CurrentControlSet\Services\CertSvc\Configuration\Contoso Issuing CA 레지스트리위치를선택한후, CRLPublicationURLs 를 open 합니다. CRLPublicationURLs 를아래와같이정확하게구성함을확인합니다. 기본값에서적당한변경이 필요합니다. 아래에특이하게, SMB 경로 (file://\\web1.contoso.com\certenroll\%3%8%9.crl) 가존재함을확인합니다. 65:C:\Windows\system32\CertSrv\CertEnroll\%3%8%9.crl 6:http://pki.Contoso.com/CertEnroll/%3%8%9.crl 79:ldap:///CN=%7%8,CN=%2,CN=CDP,CN=Public Key Services,CN=Services,%6%10 65:file://\\Web1.Contoso.com\CertEnroll\%3%8%9.crl 10. 레지스트리편집기를닫고, 아래명령어를수행하여앞서구성한레지스트리키값을적용하기위해, Active Directory Certificate Service를재시작합니다. net stop certsvc & net start certsvc 페이지 59 / 73
11. Active Directory Certificate Service 를재시작됨을확인한후, CRL 을공개하기위하여, Certutil -CRL 아래명령어를수행합니다. 12. http://pki.contoso.com/certenroll 에 Contoso Issuing CA Certificate 를공개하기위하여, 다음명령어를수행합니다. copy C:\Windows\System32\CertSrv\CertEnroll\CA02.contoso.com_Contoso Issuing CA.crt" \\WEB1.Contoso.com\C$\CertEnroll\ 페이지 60 / 73
Exercise 6: PKI Hierarchy Health 검증 (on CA02) PKIView.msc (Enterprise PKI) 를사용하여 PKI Health 검증 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. Log onto CA02.Contoso.com as Contoso\Administrator. 2. Command Prompt을수행한후, PKIView.msc 를입력한후, Enter 를클릭합니다. Open Command Prompt and type PKIView.msc and press Enter. 3. Enterprise PKI 노드를확장한후, Contoso Root CA -> Contoso Issuing CA 순서로선택합니다. CA Certificates, AIA URLs, 및 CDP URLs 상태가모두 OK임을확인할수있습니다. 4. Enterprise PKI 를오른쪽마우스클릭한후, Manage AD Containers 를선택합니다. 5. NTAuthCertificates 탭에서, Contoso Issuing CA 인증서객체의상태가 OK 임을 검증합니다. 페이지 61 / 73
6. AIA Container 탭에서, Contoso Root CA 및 Contoso Issuing CA 인증서상태모두 OK 임을확인합니다. 7. CDP Container 탭에서, Contoso Root CA base CRL, Contoso Issuing CA base & delta CRLs 상태모두 OK 임을확인합니다. 8. Certificate Authorities Container 탭에서, Contoso Root CA 인증서상태가 OK 임을 확인합니다. 9. Enrollment Services Container 탭에서, Contoso Issuing CA 인증서상태가 OK 임을 페이지 62 / 73
확인합니다. 페이지 63 / 73
Exercise 7: Windows 8 클라이언트인증서자동발급 (Auto Enrollment) 을위한구성및수행 (on CA02) Exercise 7를수행하기위해서는아래와같이총 4개의세부작업이포함됩니다. 자동발급활성화를위한 GPO 구성 자동발급을위한인증서템플릿준비 인증기관에인증서템플릿공개 Windows 8 클라이언트에서자동발급수행 자동발급활성화를위한 GPO 구성 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로 로그인합니다. 2. Server Manager 에서, Tools 를클릭한후, Group Policy Management 를클릭합니다. 3. Forest: Contoso.com -> Domains -> Contoso.com 순서로클릭한후, Default Domain Policy 를오른쪽마우스클릭한후, Edit 를클릭합니다. 4. Group Policy Management Editor 도구에서, Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Public Key Policies 순서로선택합니다. 페이지 64 / 73
Note 컴퓨터가아닌사용자인증서자동발급을위해서는, 그룹정책의 User Configuration 부분을구성해야합니다. 이번데모환경에서, 오로지컴퓨터인증서의자동발급을위한그룹 정책을활성화합니다. 5. Public Key Polices 가선택된후, 오른쪽창의 Certificate Services Client Auto Enrollment 를더블클릭합니다. 6. Configuration Model 부분의드롭다운메뉴에서, Enabled 를선택한후, 아래 2가지옵션을선택합니다. Renew expired certificates, update pending certificates and remove revoked certificates 페이지 65 / 73
Update certificates that use certificate templates 7. OK 를클릭합니다. 페이지 66 / 73
자동발급을위한인증서템플릿준비 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Server Manager 에서, Certificate Authority Manager MMC를수행하기위하여, Tools -> Certification Authority 를클릭합니다. 3. Contoso Issuing CA 를확장한후, Certificate Templates 를오른쪽마우스클릭한후, Manage 를선택합니다. 4. Certificate Templates 콘솔에서 Workstation Authentication 인증서템플릿을더블 클릭합니다. 5. Workstation Authentication Properties 페이지에서, Security 탭을선택한후, Add 를 클릭합니다. 아래와같이권한설정을수행합니다. A. 객체 : Win8 B. 권한 : Read, Enroll, Autoenroll 페이지 67 / 73
페이지 68 / 73
인증기관에인증서템플릿공개 1. CA02.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Server Manager 에서, Certificate Authority Manager MMC를수행하기위하여, Tools -> Certification Authority 를클릭합니다. 3. Contoso Issuing CA 를확장한후, Certificate Templates 를오른쪽마우스클릭한후, 순서로 New -> Certificate Template to Issue 로선택합니다. 4. Enable Certificate Templates 페이지에서 Workstation Authentication 를선택한후, OK 를클릭합니다. Highlight Workstation Authentication in the Enable Certificate Templates page and then click OK. 페이지 69 / 73
페이지 70 / 73
Windows 8 클라이언트에서자동발급수행 (on Win8) 1. WIN8.CONTOSO.com 서버에도메인관리자계정 (CONTOSO\Administrator) 으로로그인합니다. 2. Command Prompt을수행한후, 업데이트된그룹정책을적용받기위해, gpupdate /force 명령어를수행합니다. Note 또는변경된그룹정책을적용받기위하여, WIN8.CONTOSO.com 컴퓨터를재시작할수도있습니다. 3. Command Prompt을수행한후, MMC를입력한후, Enter 를누릅니다. MMC에서 인증서 스냅-인을추가하기위하여, File -> Select Add or Remove Snap-in 순서로클릭합니다. 4. Certificates 를선택한후, Add -> Computer Account -> Next -> Finish -> OK 순서로 클릭합니다. 페이지 71 / 73
5. Certificates 를확장한후, Personal -> Certificates 순서로클릭합니다. 인증서템플릿 부분이 Workstation Authentication 로발급된인증서가발급되어있음을확인할수 있습니다. 페이지 72 / 73
참조자료 [Dongclee 의 12월첫번째포스팅 ] 도대체 Windows OS 환경에서의 PKI는어떻게배포및관리하면될까요? ( http://blogs.technet.com/b/dongclee/archive/2010/11/30/dongclee-12-windows-ospki.aspx ) 페이지 73 / 73