High Availability of Active Directory Certification Authority in Windows Server 2008 R2 6/15/2010 Microsoft Korea 이동철부장
Contents Demo Environments... 3 Set up the CA role service on the first cluster node... 4 Set up the CA role service on the second cluster node... 11 Set up the failover cluster feature on both cluster node... 16 Configure AD CS as a cluster resource... 17 Configure the certificate revocation list (CRL) distribution point... 21 Configuring the CA in Active Directory Domain Services (AD DS)... 24 Adjust the CA names in AD DS... 28 Testing Certificate Enrollment... 31 References... 33 2 P a g e
Demo Environments 3 P a g e
Set up the CA role service on the first cluster node 먼저, 클러스터내의첫번째노드에 AD CS 역할을설치한다. 설치후, 두번째노드와공유할 CA 루트 인증서를추출하여두번째복사한후, 첫번째노드의 CA 서비스를 shutdown 한다. 아래젃차대로 수행한다. 이작업을수행하기젂에추후 CA 서비스에사용할공유디스크를미리아래와같이확보한다. CA 서비스가사용할 S 드라이브에아래 2 개의폴더를생성한다. 이제첫번째노드에서 AD CS 역할을아래와같이추가한다. 4 P a g e
아래역할서비스중에서오로지 Certification Authority 맊을선택한다. 나머지역할서비스는 클러스터홖경에서지원되지않는다. 이점을유의해야한다. Setup Type 에서 Enterprise 를선택한다. CA Type 부분에서 Root CA 를선택한다. 5 P a g e
CA Name 구성부분에서, Common name for this CA 의입력값에서기본값을삭제하고, 아래와 같이별도의이름을입력한다. 이이름은추후두번째노드에서도동일하게사용될것이다. 6 P a g e
아래 Certificate Database 부분에서 Database Location 및 Database Log Location 경로모두양쪽 노드에서연결된공유디스크의특정폴더로지정해야한다. 이부분이 CA 서비스의클러스터 홖경에서운영되도록하는중요부분이다. 7 P a g e
첫번째노드에서 CA 서비스의설치가완료된후의관리도구화면이다. 이제두번째노드에서 CA 서비스설치시에사용할첫번째노드의 CA 인증서를백업받아야한다. 첫번째노드의 CA 관리도구에서 Back up CA 메뉴를사용하여 CA 인증서를백업받는다. Back up CA 메뉴를수행하면, 마법사가실행된다. 8 P a g e
아래부분에서 Private key and CA certificate 를선택하고, 백업받기위한경로를아래와같이임의의 폴더로지정한다. 앞서백업받은 CA 인증서를다른쪽에서복구하기위해서는보안을위해아래와같이적젃한암호를 설정한다. 9 P a g e
백업이성공적으로완료되면, 아래와같이앞서지정한폴더에, *.p12 형식의인증서파일이생성된다. 이파일을두번째노드의적당한폴더에복사한다. 첫번째노드의 Certificate Authority 서비스를두번째노드설치를위해잠시중단한다. 첫번째노드의 Certificate Authority 서비스가중단되면, 아래와같이 Grey 아이콘이보여진다. S 드라이브의 CABackup 폴더젂체를두번째노드의 C 드라이브에복사한다. 앞서언급한대로, 첫 번째노드의 CA 인증서를백업받은폴더젂체를두번째노드의적젃한곳에복사한다. 10 P a g e
Set up the CA role service on the second cluster node 이제두번째노드에 CA 역할을설치한다. 두번째노드의설치및구성은첫번째노드와는약간다르다. 아래과정대로두번째노드에서진행한다. 앞서첫번째노드에서확보한공유디스크 (S 드라이브 ) 가두번째노드에서접근가능한지확인한다. 두번째노드의 로컬컴퓨터인증서저장소 에첫번째노드에서백업된인증서파일을 import 한다. MMC 의 Certificate -> Local Computer 스냅 - 인을추가한후, Certificate -> Local Computer -> Personal 경로에서앞서첫번째노드에서백업받은 CA 인증서를 import 한다. CA 인증서를 import 하기위한마법사가수행된다. Import 할 CA 인증서파일의경로를아래와같이지정한다. 11 P a g e
첫번째노드에서 CA 인증서를백업받을시에설정했던암호를아래암호부분에입력한다. 나머지 옵션은그대로진행한다. 인증서저장경로는아래와같이 Personal 로설정한다. 아래그림과같이 CA 인증서가 Personal 경로에정상적으로저장되어있음을확인할수있다. 이제두번째노드에 AD CS 역할을설치한다. 첫번째노드가거의동일하게설치를진행하나, 몇가지 다른선택부분이있음을유의해야한다. 12 P a g e
아래 Set up Private Key 부분에서 Use existing private key -> Select a certificate and use its associated private key 옵션을선택한다. 13 P a g e
기존인증서중에서앞서 import 했던인증서를선택한다. 위경로에서앞서첫번째노드에서사용했던동일한경로 (S:\CertLog) 를지정하면아래와같이 Overwrite 에대한경고가발생한다. 이경고는무시한채로그대로진행한다. 14 P a g e
아래와같이 Certificate Database 경로를아래와같이공유디스크로선택한다. 아래와같이두번째노드에도 CA 서비스가정상적으로설치되었음을확인할수있다. 이제두번째노드는로그오프한다. 15 P a g e
Set up the failover cluster feature on both cluster node 첫번째, 두번째노드에이제 Failover Cluster 기능을설치한다. 이번데모홖경은이미 Failover Cluster 기능을양쪽노드에모두설치한상태임을미리밝혀둔다. 16 P a g e
Configure AD CS as a cluster resource 이제클러스터리소스로써 AD CS 를구성한다. 아래 Failover Cluster Manager 도구에서 Configure a Service or Application 메뉴를사용하여 AD CS 의클러스터를구성한다. 아래와같이마법사가실행된다. 아래부분에서 Generic Service 를선택한다. Generic Service 중에서 Active Directory Certificate Services 항목을선택한다. 17 P a g e
아래 Client Access Point 부분에서, AD CS 서비스가사용할 Network Name 및 IP Address 를 지정한다. ADCSCluster 이름은추후클라이언트가인증서발급요청을할때, 사용하게되는 Computer Name 과유사한것이다. 즉, 가상의 Computer 객체가생성된다. AD CS 서비스가클러스터홖경에서운영될때, AD CS 서비스가사용하는 Jet 데이터베이스가위치하는 공유디스크를아래부분에서지정해야한다. Generic Service 를클러스터홖경에서구성할때, 양쪽노드에동일하게적용될레지스트리값이 있다면, 아래단계에서지정해야한다. AD CS 서비스를 Generic Service 로설정하기위해서는특정 레지스트리값을지정해야한다. 아래부분에서 HKLM\SYSTEM\CurrentControlSet\Services\CertSvc 를입력하고, 추가한다. HKEY_LOCAL_MACHINE\ 를제외하고 SYSTEM\CurrentControlSet\Services\CertSvc 부분맊 입력한다. 18 P a g e
아래와같이양쪽노드에서동일하게복제되어야할레지스트리키가아래와같이설정되어있음을알 수있다. 이제아래와같이 AD CS 서비스를클러스터의 Generic Service 로설정됨을확인한다. 19 P a g e
AD CS 서비스가클러스터서비스로성공적으로등록된후 Failover Cluster Manager 도구에서 아래와같이정상적으로보여짐을알수있다. 이제모든설정이완료되었다. ADCSCluster 라는클러스터그룹을양쪽노드로 그룹이동 테스트를 시도하여, 정상적으로 그룹이동 수행되는지확인한다. 20 P a g e
Configure the certificate revocation list (CRL) distribution point 기본 CA 구성에서, 서버의 short name 은 CRL 및 AIA 의일부분으로써사용된다. CA 가 Failover 클러스터에서운영되고있을때, 서버의 short name 은클러스터의 short name (ex, ADCSCluster) 으로대체되어야맊한다. 이작업을수행하기위해서는, 반드시 CA 서비스가 active 로운영되는노드에서수행해야한다. 이작업은 HKLM\SYSTEM\CurrentControlSet\Services\CertSvc 레지스트리를변경하는작업이므로, 해당작업은반드시 ADCSCluster 클러스터그룹이현재운영되고있는 active 노드에서진행해야한다. 이변경작업을수행한후 CA 서비스를반드시재시작해야한다. 먼저, CA 서비스가운영되고있는 active 노드를확인한다. 위해당노드에서아래작업을수행한다. CRLPublicationURLs 값을수정해야한다. 아래 %2 부분을 ADCSCluster 라는앞서생성한가상의 computer 객체로대체한다. 21 P a g e
위에서 CRLPublicationURL 부분을새로운값으로설정한후, 모든 publishing 옵션을기본 LDAP URL 과 동일하게설정해야한다. 아래명령어를수행하여모든 publishing 옵션을기본 LDAP URL 과동일하게 설정한다. 즉, 기존값을 overwrite 한다. 명령어는아래와같다. certutil dspublish f Certfile [RootCA] certutil dspublish f TR10-RootCA.crl ADCSCluster 아래명령어를수행하여 CA 서비스를재시작한다. 22 P a g e
아래명령어를수행하여앞서적용했던새로운설정값 (ADCSCluster) 으로 CRL 을업데이트하도록한다. 23 P a g e
Configuring the CA in Active Directory Domain Services (AD DS) 이제추가적으로 CA 가 failover 클러스터에서운영될때, Active Directory 내에서수행해야될추가적인 작업을진행한다. 이작업은 Domain Controller 에서수행한다. 먼저, CA 루트인증서를양쪽노드에서홗성화시킨다. 아래 Active Directory Sites and Services 도구를 사용하여, Services 항목에서, Public Key Services 부분을속성값을수정한다. 아래와같이 Public Key Services -> AIA -> TR10-RootCA 의속성값을수정한다. Public Key Services -> AIA -> TR10-RootCA 의 보안 설정을수정한다. 24 P a g e
양쪽노드에참여한 2 개의 computer 객체를추가한다. 양쪽노드에모두 Full Control 권한을할당한다. 두번째로 Public Key Services -> Enrollment Service -> TR10-RootCA 컨테이너에양쪽노드의권한을 추가한다. 25 P a g e
앞서와마찬가지로양쪽노드에 Full Control 권한을부여한다. 마지막으로 Public Key Services -> KRA -> TR10-RootCA 컨테이너에동일한권한을부여한다. 26 P a g e
27 P a g e
Adjust the CA names in AD DS CA 서비스가첫번째노드에설치되었을때, Enrollment Service 객체가생성되고, 그객체는자싞의 FQDN 값이설정되어있다. 그러나, AD CS 서비스를클러스터홖경으로구성하였기때문에, Enrollment Service 객체의값은앞서클러스터홖경에서구성했던 가상 computer 객체 (ADCSCluster) 로변경해야한다. ADSI Edit 도구를사용하여변경작업을수행한다. 이작업역시 domain controller 에서수행한다. 아래부분에서 Select a well known Naming Context: -> Configuration 를선택한다. 아래부분에서 Configuration -> CN=Configuration -> CN=Services -> CN=Public Key Services -> CN=Enrollment Services 를선택한다. 28 P a g e
CN=Enrollment Services 를선택한후, 오른쪽창의 CN=TR10-RootCA 의속성값을수정한다. 속성값중에서 dnshostname 값을수정한다. 기존값은첫번째노드의 FQDN 이입력되어있음을 확인할수있다. 이값을앞서구성한 AD CS 클러스터그룹의 Network Name 인 ADCSCluster 값을 변경한다. 29 P a g e
반드시 FQDN 형식으로변경한다. 이제모든작업이완료되었다. 30 P a g e
Testing Certificate Enrollment 이제도메인내의특정컴퓨터에서 인증서 발급요청에대한테스트를진행해본다. 인증서발급을 요청하기위해아래 Request New Certificate 메뉴를선택한다. 인증서발급을요청할 CA 를지정하기위해아래메뉴중에서 Advanced 를선택한다. 31 P a g e
아래 Certificate Autority 를선택하는부분에기본적으로앞서구성한 AD CS 클러스터그룹의 CA 이름과 Computer 이름이정확하게보여짐을알수있다. 아래와같이정상적으로 Computer 인증서가발급됨을알수있다. AD CS 클러스터서비스가 정상적으로인증서발급을처리함을확인할수있다. 32 P a g e
References Configuring and Troubleshooting Certification Authority Clustering in Windows Server 2008 (http://www.microsoft.com/downloads/details.aspx?familyid=15c75333- be26-4955-a32c-03077daf1631&displaylang=en) 33 P a g e