Por diversas razones, he creado un servidor HTTP simple y he agregado soporte SSL a través de OpenSSL. Estoy usando certificados autofirmados. IE, Firefox y Chrome cargan contentos contenido siempre que agregue CA a las CA raíz confiables.wget, certificados autofirmados y un servidor HTTPS personalizado
Sin embargo, wget (incluso cuando se utiliza la bandera --no-check-certificate
) informa:
OpenSSL: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Si funciono el cliente OpenSSL contra mi servidor usando:
openssl s_client -connect dnvista:82 -debug
regrese: verificar error: 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:
¿La aplicación y el cliente OpenSSL simplemente no funcionan con certificados autofirmados?
ACTUALIZACIÓN:
Para cualquier persona que se presente más adelante, añadiendo 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);
Hola. He visto muchos comentarios como estos, "Turn the check-off" en tantas palabras. Es una ** realmente _BAD_ idea **. Un poco como las carreras callejeras con neumáticos calvos en carreteras mojadas. Estoy decepcionado de que esta respuesta tenga una marca 'tic'. – will
: Acepto, pasar el cheque generalmente es una mala idea. Mi respuesta sugiere una forma de que el cliente conozca el certificado de CA, para que la verificación se pueda realizar correctamente. –