Pregunta

Por varias razones, creé un servidor HTTP simple y agregué soporte SSL a través de OpenSSL. Estoy usando certificados autofirmados. IE, Firefox y Chrome cargan felizmente el contenido siempre que agregue la CA a las CA raíz de confianza.

Sin embargo, wget (incluso cuando se usa el indicador --no-check-certificate ) informa:

OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

Si ejecuto el cliente OpenSSL en mi servidor usando:

openssl s_client -connect dnvista:82 -debug

Vuelvo: error de verificación: num = 19: certificado autofirmado en la cadena de certificados verificar devolución: 0 y luego

5852:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:.\ssl\s3_pkt.c:1060:SSL alert number 40
5852:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:.\ssl\s23_lib.c:188:

¿Wget y el cliente OpenSSL simplemente no funcionan con certificados autofirmados?

UPDATE:

Para cualquiera que aparezca más tarde, agregar este código ayudó con el cliente OpenSSL y Firefox:

EC_KEY *ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1);
SSL_CTX_set_tmp_ecdh(ctx, ecdh);
EC_KEY_free(ecdh);
¿Fue útil?

Solución

Revisé la página de manual de wget , y --no-check-certificate solo parece afectar el certificado del servidor . Debe especificar su certificado autofirmado como un certificado de CA válido localmente.

Para hacer esto, especifique el certificado como --ca-certificate = ... en wget y -CAfile en el s_client case.

Otros consejos

También puede instalar certificados de CA raíz de confianza en OpenSSL de una de varias maneras:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top