por Thiago Di Giorgio / Technical Reviewer: Diana Hernandez

Olá pessoal, aqui é o Thiago Di Giorgio.Eu trabalhei com o Engenheiro Robert Greene do time de Directory Services e ele escreveu no blog deles sobre como renovar o certificado de uma CA clusterizada em um Windows Server 2008 e eu gostaria de compartilhar com vocês essa experiência. Eu gostaria de compartilhar com vocês como fazer algumas tarefas comuns sobre uma Autoridade Certificadora (CA) Windows Server 2008 em ambiente de Cluster (clusterizada). Quando uma CA está clusterizada existêm diferentes passos que presicam ser seguidos quando você:

  • Faz uma alteração no comportamento da CA usando o certutil.exe com os parêmetros –setreg ou –delreg.
  • Modifica os valores da chave de registro HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CertSvc.
  • Renova o certificado da CA.

Antes que o serviço de Autoridade Certificadora (CertSvc) fosse suportado em um ambiente de cluster, você podia fazer essas alterações e reiniciar o serviço CertSvc sem nenhum problema. Você ainda pode fazer desse jeito quando a CA não está em um ambiente de cluster.

No entanto, quando você tem uma CA clusterizada devemos evitar de ficar reiniciando o serviço fora do console de administraçao do cluster (Cluadmin.msc). Isso se deve porquê o serviço de cluster não toma conta somente do estado do serviço CertSvc, ele também é reponsável por assegurar que a chave de registro

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\CertSvc

é salva no “quorum disk” quando ele nota uma alteração nessa chave. Esse comportamento pode ser encontrado no “CA Cluster whitepaper”, e é necessário que se leia esse whitepaper antes de clusterizar sua CA.

Alterando o comportamento da Autoridade Certificadora (CA)

Caso precise fazer alterações no comportamento da Autoridade Certificadora (CA) com o Certutil.exe ou diretamente no registro, você deve sempre seguir os seguintes passos:

1. Fazer logon no nó ativo da sua CA clusterizada. Se não tem certeza qual nó está com o recurso faça o seguinte:

a. Abra o “Failover Cluster Managemente” console (MMC)

b. Selecione o recurso da CA. No painel da direita você verá o campo “Current Owner” (Figura 1).

image 
Figura 1 - Campo de “Current Owner” do recurso da CA.

2. Use o comando certutil.exe –setreg (recomendado), ou modifique no registro.

3. Abra o console de administraçao do cluster (Failover Cluster Management).

4. Coloque o recurso da Autoridade Certificadora offline e depois online novamente. Nós temos que colocar o recurso offline e online novamente porquê o serviço CertSvc não vai ler nenhuma alteração no registro sêm que seja reiniciado, e como ja falamos acima, quando a CA é clusterizada devemos evitar de reiniciar o serviço CertSvc manualmente.

a. Clique com o botão direito no recurso da CA no painel da esquerda.

b. Selecione a opção “Bring this service or application online” ou “Take this service or application offline” (Figura 2).

image 
Figura 2 – Definindo o recurso como Online/Offline

 

Renovando o certificado da Autoridade Certificadora Subordinada (subordinate Certification Authority)

Nessa parte vamos discutir os passos que são necessários quando for renovar o certificado de uma CA subordinada. Uma root CA nunca deve ser clusterizada e ao invés disso ela deveria ser configurada como uma offline root.

Verifique o local de armazenamento do arquivo de requisição

Quando o certificado da CA for renovado, o serviço CertSvc deve estar parado para gerar o arquivo de requisição do certificado. O local e o nome do arquivo de requisiçao são definidos pela seguinte chave de registro:

HKEY_Local_Machine\System\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\RequestFileName

Antes de renovar o certificado da CA você precisa assegurar que a chave de registro está apontando para um caminho válido. Se não estiver, o processo de renovação vai falhar sem dar nenhum erro, ou você pode receber o erro “The system cannot find the file specified”. Caso precise alterar essa configuração faça o seguinte no nó ativo da CA:

1. certutil –setreg CA\RequestFileName “<File path and name>”.

Exemplo:
certutil –setreg CA\RequestFileName "c:\contoso_subCA1.req”

2. Defina o recurso da CA offline e defina ele como online novamente (veja a Figura 2 acima).

Renovando o certificado da CA

Como nós vimos antes, se o serviço CertSvc é reiniciado fora do console de gerenciamento Failover Cluster Mangaemente o cluster não reconhece nenhuma alteração no registro. Vou explicar por cima o processo do que acontece quando o certificado da CA é renovada, para que você possa entender o porquê esses passos são necessários numa CA clusterizada.

1. O serviço CertSvc deve estar parado para gerar o arquivo de requisição. Ele lê a chave de registro RequestFileName para determinar aonde vai ser salvo e qual o nome do arquivo.

2. Inicie o serviço CertSvc uma vez que o arquivo de requisição do certificado ja estiver gerado.

3. Pare o serviço CertSvc novamente para instalar o certificado que foi emitido.

4. A chave de registro CACertHash é atualizada para incluir o novo Hash do novo certificado.

NOTA: Nunca exclua ou modifique esta chave de registro a não ser que seja orientado pelo time de suporte Microsoft. Caso modifique esta chave de registro de maneira errada pode fazer com que a CA não funcione corretamente ou em alguns casos nem mesmo iniciar.

Segue os passos para renovar o certificado da CA em cluster.

1. Abra o console Failover Cluster Management

2. Deixe no estado de pausa (Pause) o nó da CA que não está ativo. Caso não tenha certeza sobre qual nó está ativo olhe a Figura 1.

a. Selecione o nó que não está ativo no console do cluster (Failover Cluster Management).

b. Clique com o botão direito e clique em “Pause”.`

image 
Figura 3 – Pausando o nó inativo

3. Quando o nó inativo estiver pausado você pode renovar o certificado da CA. Por favor verifique o procedimento para renovar o certificado de um CA subordinada no artigo do technet (o artigo está em inglês).

4. Assim que tiver renovado o certificado da CA pela root CA, e ja tiver o instalado na CA subordinada você precisa deixar o recurso da CA offline e de pois deixá-la online novamente usando o console de gerenciamento de cluster (Failover Cluster Management).

a. Clique como botão direito no recurso da CA.

b. Selecione “Bring this service or application online” ou “Take this service or application offline” (veja Figura 2 acima).

5. Abra o console de Autoridade Certificadora (Certification Authority) e selecione o recurso de CA.

6. Clique com o botão direito e vá em propriedades.

7. Caso tenha renovado o certificado com um novo par de chaves você deverá ver alguns certificados listado, conforme Figura 4.

image 
Figura 4 – propriedades da Autoridade Certificadora

8. Assim que tiver verificado que sua CA está usando o certificado renovado você pode da um “Resume” no nó que foi “Pausado” no passo 2.

Desde que o serviço de Autoridade de Certificação estiver configurado como um serviço genérico o processo acima deverá ser respeitado na gestão de uma CA clusterizada. Se alguma alteração for feita sem o “conhecimento” do serviço de cluster os nós não estarão sincronizando e o cluster vai falhar.