Fazer download do certicate do servidor autoassinado

2

Resumo
Preciso baixar um certificado autoassinado de um servidor para criar um arquivo .JKS para usar como armazenamento confiável em um aplicativo. Como posso fazer isso de um servidor Red Hat?

O que tentei
Eu tentei usar o openssl para obter o certificado:

echo -n | openssl s_client -connect hostname.example.com:20000 -showcerts | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > downloadedcerts.cert

Isso falha com a seguinte mensagem:

verify error:num=19:self signed certificate in certificate chain

De fato, o certificado raiz deste servidor é auto-assinado, e não de uma CA. Estou bem com isso - o certificado raiz pertence a uma agência do governo no meu país - mas o openssl não se conectará para baixar o certificado.

Seria fácil carregar o URL no Firefox, ignorar manualmente o erro de certificado e fazer o download do certificado, mas não posso me conectar ao servidor da minha máquina de desktop por causa de firewalls.

Qualquer ajuda seria muito apreciada:)

    
por MW. 11.07.2014 / 14:51

2 respostas

2

verify error:num=19:self signed certificate in certificate chain

Indeed, the root certificate of this server is self signed, and not from a CA.

É uma CA, apenas não é confiável;)

Ao contrário dos navegadores (que confiam em quase tudo), o OpenSSL não confia em nada (você precisa dizer em que confiar).

Faça o download do certificado de CA do seu país (geralmente não é enviado na cadeia). Seu não é enviado na cadeia porque é um ponto de confiança; você já tem que ter e confiar nele.

Geralmente, você pode encontrar o certificado de CA on-line. Por exemplo, aqui é do DigiCert, aqui é Verisign, etc. Verifique o certificado que você baixou. A verificação é a parte complicada - os navegadores resolvem isso carregando seus próprios conjuntos de certifcados já verificados.

Coloque o certificado CA do seu país em seu próprio arquivo. Em seguida, use openssl s_client -connect hostname.example.com:20000 -CAfile my-country-ca.pem . s_client será concluído com Verify OK (0) ou similar.

    
por 13.07.2014 / 21:34
0

Eu recomendaria criar sua própria autoridade de certificação [EDITAR - não o que era desejado. veja o próximo parágrafo]. É uma espécie de PITA e quando você pesquisa como fazê-lo parece mais difícil do que realmente é. Você acabou de criar uma empresa fictícia cujo certificado você colocará na raiz confiável dos clientes e poderá assinar o (s) certificado (s) em vez de usar certificados auto-assinados.

Encontrei uma explicação na resposta de Bruno a esta pergunta aqui: link

Eu não estava pensando em um certificado raiz como auto-assinado, mas faz muito sentido. Então, se eu estou entendendo corretamente, você está recebendo o certificado que você quer (o primeiro), mas também todo o resto na cadeia de certificados também. O certificado raiz é o que causa a mensagem.

    
por 11.07.2014 / 15:50