解决“libcure SSL routines:ssl3_read_bytes:sslv3 alert handshake failure”的错误

环境:ubuntu16.04做https服务器(服务器用libevent实现)

           arm开发板做https客户端 (libcurl实现)

openssl1.1.1虽然支持国密算法,但不支持国密套件,能生成证书,但是不能解密国密加密得证书。所以现使用gmssl代替openssl,因为gmssl支持国密算法并且兼容openssl,生成的库与openssl完全一致。在使用gmssl库进行https通信时,会报“libcure SSL routines:ssl3_read_bytes:sslv3 alert handshake failure”的错误。请在代码中注释掉如下:

 EC_KEY *ecdh = EC_KEY_new_by_curve_name (NID_X9_62_prime256v1);
    if (! ecdh)
        die_most_horribly_from_openssl_error ("EC_KEY_new_by_curve_name");
    if (1 != SSL_CTX_set_tmp_ecdh (ctx, ecdh))
        die_most_horribly_from_openssl_error ("SSL_CTX_set_tmp_ecdh");

 

你可能感兴趣的:(https,gmssl,sslv3)