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 11 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?