如何使用SSL_CTX_set_cipher_list接口配置多个TLS 1.2加密套件
解答
- 不需要多次调用
SSL_CTX_set_cipher_list接口:该接口每次调用都会覆盖上下文内之前配置的加密套件规则,重复调用只会保留最后一次的配置结果。 - 多加密套件配置规则:将多个OpenSSL格式的加密套件名称用英文冒号
:拼接为单个字符串,直接传入接口的第二个参数即可。
注意:你提到的两个IANA标准命名的TLS 1.2套件,对应的OpenSSL格式字符串需要将下划线替换为横杠,且要注意你之前示例用的是RSA身份验证的套件,ECDSA身份验证的套件名称不要写错:
ECDHE_ECDSA_WITH_AES_256_GCM_SHA384对应 OpenSSL 名称:ECDHE-ECDSA-AES256-GCM-SHA384ECDHE_ECDSA_WITH_AES_128_GCM_SHA256对应 OpenSSL 名称:ECDHE-ECDSA-AES128-GCM-SHA256
配置示例代码
// 直接拼接两个套件名称,用冒号分隔 SSL_CTX_set_cipher_list(ctx, "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256");
- 额外注意:上述两个都是ECDSA身份验证类的加密套件,只有你服务端/客户端加载的是ECDSA类型的证书时,这两个套件才会正常生效协商。
内容的提问来源于stack exchange,提问作者Embedded Enthusiast
相关产品推荐
相关产品推荐

