Descargar certificado de servidor autofirmado

Descargar certificado de servidor autofirmado

Resumen
Necesito descargar un certificado autofirmado de un servidor para crear un archivo .JKS para usarlo como almacén de confianza en una aplicación. ¿Cómo puedo hacer eso desde un servidor Red Hat?

lo que he probado
Intenté usar openssl para obtener el certificado:

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

Esto falla con el siguiente mensaje:

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

De hecho, el certificado raíz de este servidoresautofirmado y no de una CA. Estoy de acuerdo con esto: el certificado raíz pertenece a una agencia gubernamental de mi país, pero openssl no se conecta para descargar el certificado.

Sería fácil cargar la URL en Firefox, ignorar manualmente el error del certificado y descargar el certificado, pero no puedo conectarme al servidor desde mi computadora de escritorio debido a los firewalls.

Cualquier ayuda sería muy apreciada :)

Respuesta1

verificar error:num=19:certificado autofirmado en cadena de certificados

De hecho, el certificado raíz de este servidor está autofirmado y no proviene de una CA.

Es una CA, simplemente no es de confianza;)

A diferencia de los navegadores (que confían en casi todo), OpenSSL no confía en nada (hay que decirle en qué confiar).


Descargue el certificado CA de su país (normalmente esnoenviado en la cadena). Esnoenviado en la cadena porque es un punto de confianza; ya debes tenerlo y confiar en él.

Normalmente puede encontrar el certificado de CA en línea. Por ejemplo,aquíes de DigiCert,aquíes Verisign, etc. Verifique el certificado que descarga. La verificación es la parte complicada: los navegadores la resuelven llevando consigo su propio paquete de certificados ya verificados.

Coloque el certificado CA de su país en su propio archivo. Luego, usa openssl s_client -connect hostname.example.com:20000 -CAfile my-country-ca.pem. s_clientcompletará con Verify OK (0)o similar.

Respuesta2

Recomendaría crear su propia Autoridad de certificación [EDITAR, no lo que se quería. ver el siguiente párrafo]. Es una especie de PITA y cuando investigas cómo hacerlo parece más difícil de lo que realmente es. Simplemente crea una empresa ficticia cuyo certificado colocará en su raíz de confianza de los clientes y podrá firmar los certificados en lugar de utilizar certificados autofirmados.

Encontré una explicación en la respuesta de Bruno a esta pregunta aquí: https://stackoverflow.com/questions/4103472/ssl-handshake-fails-with-a-verisign-chain-certificate-that-contains-two-ca-s

No había pensado en un certificado raíz autofirmado, pero tiene sentido. Entonces, si entendí correctamente, obtendrá el certificado que desea (el primero), pero también todo lo demás en la cadena de certificados. El certificado raíz es el que causa el mensaje.

información relacionada