Gerando certificados com Active Directory Certificate Services e convertendo para Linux

Introdução

Caso você possua um servidor autorizado e confiado em sua organização como Active Directory Certificate Services, é possível utilizá-lo para a geração de certificados aos invés de certificados auto-assinados; desta forma os clientes de seu domínio não serão alertados com mensagens de  erros de certificados. Um outro benefício é não despender investimento com a emissão certificados por entidades certificadoras reconhecidas na internet como Certisign ou Verisign, mas lembre-se, estes certificados serão válidos apenas dentro do domínio Windows de sua empresa. Caso você necessite que clientes Linux ou Mac reconheçam estes certificados, é necessário importar os certificados CA para cada máquina, que será abordado em outro artigo.

 

Gerando a solicitação de certificado

Para solicitar o certificado, utilize o comando abaixo, com os parâmetros adicionais, substituindo as variáveis seudominio e seuservidor pelo seu endereço FQDN (Full Qualified Domain Name):

openssl req -new -sha256 -nodes -out meuservidor.meudominio.csr -newkey rsa:2048 -keyout meuservidor.meudominio.key -config <(
cat <<-EOF
[req]
default_bits = 2048
days = 720
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn

[ dn ]
C=BR
ST=Brasil
L=Sao Paulo
O=Minha Empresa
OU=Meu Departamento
emailAddress=meuemail@meudominio.com
CN = meuservidor.meudominio

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = meuservidor.meudominio
DNS.2 = meuservidor.meudominio
EOF
)

Após a execução deste comando, será gerado em seu diretório atual um arquivo csr e sua chave privada .key (que deve ser guardada com segurança).

Acesse agora seu serviço interno de emissão de certificados, e clique em Request Certificate:

 

 

 

Na próxima tela, clique em advanced certificate request:

Sua solicitação de certificado foi gerada em base64-encoded, volte ao terminal Linux onde você gerou o certificado e execute o comando cat seuservidor.seudominio.csr, isto trará um texto com a seguinte string de início:

—- BEGIN CERTIFICATE REQUEST —–

Copie todo este conteúdo e cole conforme tela abaixo, clique em submit:

Agora seu certificado foi gerado, baixe ele em formato DER:

Feito o Download, envie para seu servidor Linux, voce pode usar o comando scp caso esteja no Mac OS ou Linux; caso esteja no windows, pode baixar/instalar o pacote de ferramentas Cygwin.

 


scp meucertificado.cer usuario@meuservidor.meudominio.net:/path/to # substitua os dados variáveis como seu servidor e diretórios.

Feito o upload, volte ao seu servidor e vamos para o passo de conversão:

</pre>
<pre>openssl x509 -inform der -in meucertificado.cer -out meucertificado.pem</pre>

Vamos agora aumentar a segurança gerando uma chave de troca Diffie-Hellman:


openssl dhparam -out dhparam.pem 2048

 

Pronto, agora você ja pode utilizar suas chaves criptográficas, abaixo um fragmento utilizando NGINX:

 


ssl_certificate /etc/nginx/ssl/star_forgott_com.crt;
ssl_certificate_key /etc/nginx/ssl/star_forgott_com.key;

# Diffie-Hellman parameter for DHE ciphersuites, recommended 2048 bits
ssl_dhparam /etc/nginx/ssl/dhparam.pem;

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.