首页 文章

如何配置libssl以使用TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256密码套件?

提问于
浏览
1

目前我正在研究基于服务器的应用程序,该应用程序使用libssl进行ssl实现 . 当我使用RSA证书时,一切正常,但当我使用Elliptic Curve密钥和我的证书时,我无法连接到服务器 . 当我尝试卷曲时,它会出现以下错误

NSS错误-12286(SSL_ERROR_NO_CYPHER_OVERLAP)无法与对等方安全通信:没有通用加密算法 . 关闭连接0

通过使用“openssl s_client”命令,我发现服务器只提供“ECDH-ECDSA-AES256-GCM-SHA384”,但是curl或chrome无法识别这个密码套件 .

Steps to produce certificate are:

openssl ecparam -name prime256v1 -genkey -noout -out ecCert.key openssl req -new -key ecCert.key -out ecCert.csr -subj /CN=servername.com openssl x509 -req -in ecCert.csr -CA ./ rootCA.pem -CAkey ./rootCA.key -CAcreateserial -sha256 -out ecCert.crt -days 500 cat ecCert.crt ecCert.key> ecCert.pem

有没有办法配置服务器的加密方法?

P.S. 我正在使用openssl版本"OpenSSL 1.0.2g 1 Mar 2016"

我还尝试使用SSL_CTX_set_cipher_list(ctx,ciphers)设置密码列表

1 回答

  • 3

    我还尝试使用SSL_CTX_set_cipher_list(ctx,ciphers)设置密码列表

    这实际上是正确的方法 . OpenSSL语法中的相关密码是ECDHE-ECDSA-AES128-GCM-SHA256 . 但请注意,为了在服务器端使用任何类型的ECC密码,您还需要设置要与 SSL_CTX_set_tmp_ecdh 一起使用的曲线 .

    有关更广泛的信息,请参阅jww在Server with ECDHE key and cert not working的优秀答案 .

相关问题