Ir para conteúdo principal

Criação de Certificado Autoassinado no Servidor do CAP

Luis Fernando Gushiken avatar
Escrito por Luis Fernando Gushiken
Atualizado há mais de 9 meses

Nesse artigo iremos realizar um passo a passo para gerar um certificado autoassinado para ser utilizado na autenticação CBA (certificate-based authentication) com o Enterprise Application do CAP.

Pré-requisitos:

  • Utilizar uma conta administradora da máquina para realizar o procedimento.


Orientações:

No servidor do CAP, abra o Internet Information Services (IIS) Manager:

Uma vez no IIS, no menu lateral esquerdo, selecione o nome da máquina e nas opções centrais na tela, na área de IIS, selecione a opção Server Certificates:

Na tela Server Certificates, no menu lateral direito, selecione a opção Create Self-Signed Certificate:

Na tela de criação de certificados, atribua um nome ao certificado, esse nome é particular e tem como função apenas facilitar a identificação do certificado, fique à vontade para seguir os padrões de nomenclatura de seu ambiente:

Criado o certificado, ele passará a ficar visível na tela Server Certificates e pode ser identificado pela coluna Name. Encontre o certificado, clique nele com o botão direito do mouse e selecione a opção Export:

Na tela de exportação, defina o nome do arquivo, um diretório e uma senha para gerar o arquivo PFX e clique em OK:

Acesse o diretório definido e clique duas vezes sobre o arquivo PFX:

Na tela de importação, selecione a opção Local Machine e clique em Next:

Na tela seguinte, selecione o próprio arquivo PFX novamente e clique em Next:

Na próxima tela, insira a mesma senha que utilizou na criação do certificado e marque a opção para permitir a exportação da chave e clique em Next:

Na próxima tela, selecione a opção de personalizar o caminho do certificado e escolha opção Trusted Root Certification Authorities:

Confirme a seleção e clique em Next:

A tela seguinte exibirá o resumo das configurações, clique em Next:

Uma mensagem de confirmação deve ser exibida:

No menu iniciar, pesquise e abra a opção Manage computer certificates:

Na tela de gestão de certificados, no menu lateral esquerdo, selecione a opção Trusted Root Certification Authorities, em seguida Certificates, então encontre o nome do certificado gerado pela coluna Friendly Name e clique sobre a linha com o botão direito, e navege até a opção Export:

Na tela de exportação, clique em Next:

Na tela seguinte, selecione a opção para não exportar a chave privada e clique em Next:

Na tela seguinte, selecione a opção DER encoded binary X.509 (.CER) e clique em Next:

Na tela seguinte, determine um nome e um diretório para a criação do arquivo CER e clique em Next:

A próxima tela exibirá um resumo das configurações, clique em Finish:

Pronto! O certificado foi gerado e os arquivos foram disponibilizados nos diretórios selecionados durante os procedimento.


Problemas Conhecidos

Caso o parâmetro -KeySpec do comando New-SelfSignedCertificate não seja reconhecido ou se ao utilizar o certificado o erro abaixo seja apresentado, o procedimento seguinte deverá ser realizado.

Could not use the certificate for ​signing. See inner exception for details. Possible cause: this may be a known issue with apps build against .NET Desktop 4.6 or lower. Either target a higher version of .NET desktop - 4.6.1 and above, or use a different certificate type (non-CNG) or sign your own assertion as described at (...)

Para resolver essa situação teremos que realizar mais alguns procedimentos.

Garanta que a máquina na qual irá executar o passos seguintes possua o openssl instalado, ou execute esse procedimento através de outra máquina que o tenha.

Abra o Win64 OpenSSL Command Prompt e realize os seguintes passos:

1 - Extraia as chaves públicas do certificado, preenchendo o parâmetro in -in com o caminho completo do PFX gerado, -out com o caminho de destino do novo .cer e -passin com a senha do certificado:

OpenSSL pkcs12 -in "MYCERT.pfx" -nokeys -out "MYCERT.cer" -passin "pass:MYPWD"

----- Exemplo -----
OpenSSL pkcs12 -in "C:/Temp/CAPCert.pfx" -nokeys -out "C:/Temp/CAPCert(New).cer" -passin "pass:P@ssw0Rd1234"

2 - Extraia a chave privada do certificado preenchendo o parâmetro in -in com o caminho completo do PFX gerado, -out com o caminho de destino do arquivo .pem, -passin com a senha do certificado e -passout com a senha do certificado:

OpenSSL pkcs12 -in "MYCERT.pfx" -nocerts -out "MYCERT.pem" -passin "pass:MYPWD" -passout "pass:MYPWD"

----- Exemplo -----
OpenSSL pkcs12 -in "C:/Temp/CAPCert.pfx" -nocerts -out "C:/Temp/CAPCert.pem" -passin "pass:P@ssw0Rd1234" -passout "pass:P@ssw0Rd1234"

3 - Converta a chave privada do certificado para o formato RSA preenchendo o parâmetro in -in com o caminho do arquivo gerado no procedimento 2, -out com o caminho de destino do arquivo .rsa, -passin com a senha do certificado e -passout com a senha do certificado:

OpenSSL rsa -inform PEM -in "MYCERT.pem" -out "MYCERT.rsa" -passin "pass:MYPWD" -passout "pass:MYPWD"

----- Exemplo -----
OpenSSL rsa -inform PEM -in "C:/Temp/CAPCert.pem" -out "C:/Temp/CAPCert.rsa" -passin "pass:P@ssw0Rd1234" -passout "pass:P@ssw0Rd1234"

4 - Mescle as chaves privadas no formato RSA para um novo certificado preenchendo o parâmetro -in com o caminho do arquivo .cer gerado no procedimento 2, -inkey com o caminho do arquivo .rsa gerado no procedimento 3, -out com o caminho do novo arquivo pfx, -passin com a senha do certificado e -passout com a senha do certificado.

OpenSSL pkcs12 -export -in "MYCERT.cer" -inkey "MYCERT.rsa" -out "CONVERTED.pfx" -passin "pass:MYPWD" -passout "pass:MYPWD"

----- Exemplo -----
OpenSSL pkcs12 -export -in "C:/Temp/CAPCert(New).cer" -inkey "C:/Temp/CAPCert.rsa" -out "C:/Temp/CAPCert(New).pfx" -passin "pass:P@ssw0Rd1234" -passout "pass:P@ssw0Rd1234"

Pronto, agora os novos arquivos .pfx e .cer estão prontos para serem utilizados. Como garantia, caso o certificado que apresentou o problema tenha sido instalado na máquina, recomendamos que seja desinstalado e que esses novos arquivos sejam utilizados.

Isto respondeu à sua pergunta?