Estoy escribiendo un pequeño programa con la biblioteca OpenSSL que se supone debe establecer una conexión con un servidor SSLv3. Este servidor dispensa un certificado autofirmado, lo que hace que el saludo de mano falle con este mensaje: "error de handshake de alerta de sslv3, certificado autofirmado en la cadena de certificados".OpenSSL Ignorar error de certificado autofirmado
¿Hay alguna manera de forzar la conexión para continuar? He intentado llamar SSL_CTX_set_verify así:
SSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, NULL);
Pero no parece que cambiar nada.
¿Alguna sugerencia?
'SSL_VERIFY_NONE' desactiva la verificación del certificado del todo. Probablemente no quieras hacer esto ya que esto te deja vulnerable a los ataques MITM. Lo correcto es agregar el certificado autofirmado a la lista de certificados de confianza. (Consulte SSL_CTX_load_verify_locations().) –
Por cierto, el mensaje de error no significa que el certificado del servidor esté autofirmado. Significa que no confía en el certificado de CA raíz: ** X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN ** _ Existe un certificado autofirmado en la cadena de certificados. La cadena de certificados se puede construir usando los certificados que no son de confianza, pero la CA raíz no se pudo encontrar localmente. Los certificados de CA raíz siempre están autofirmados. –