如何在OpenSSL中启用被禁用的ADH-AES256-GCM-SHA384密码套件供Node.js使用
OpenSSL 3.0 启用ADH类匿名密码套件操作说明
方案1:编译期配置(适合自行编译OpenSSL场景)
ADH-AES256-GCM-SHA384属于aNULL分类密码套件,默认处于编译禁用状态,编译时添加对应参数即可启用:
- 运行源码根目录下的Configure脚本时,添加
enable-weak-ssl-ciphers参数,放开弱密码/匿名密码的编译限制 - 可同时通过
cipherlist-def参数指定默认启用的密码列表,完整示例命令:./Configure enable-weak-ssl-ciphers cipherlist-def="DEFAULT@SECLEVEL=0:aNULL" - 后续照常执行
make、make install完成编译安装即可
方案2:运行时配置(无需重新编译,适合已安装OpenSSL 3.0场景)
OpenSSL 3.0支持通过全局配置文件调整默认密码策略,无需重新编译:
- 打开系统默认OpenSSL配置文件,默认路径为
/etc/ssl/openssl.cnf - 在文件最顶部添加如下配置段:
openssl_conf = default_conf [default_conf] ssl_conf = ssl_sect [ssl_sect] system_default = system_default_sect [system_default_sect] CipherString = DEFAULT@SECLEVEL=0:aNULL - 保存文件后,重启所有依赖OpenSSL的应用即可生效,此时调用
openssl ciphers -V即可看到aNULL类密码套件出现在默认列表中,Node.js的tls.getCiphers()也会同步返回对应的密码套件
对应官方文档位置说明
- 编译参数相关说明位于OpenSSL官方文档的「Compilation and Installation」板块下的「Configure Options」章节,搜索
enable-weak-ssl-ciphers关键词可快速定位 - 运行时全局配置相关说明位于OpenSSL官方文档的「OpenSSL 3.0 Migration Guide」板块下的「SSL/TLS Configuration」章节,搜索「system default SSL configuration」关键词可快速定位
- 密码套件字符串编写规则说明位于OpenSSL官方手册的
ciphers命令文档页
注意:aNULL类密码套件不会对通信对端做身份认证,存在极高的中间人攻击风险,仅可在封闭测试环境使用,禁止用于公网生产环境
内容的提问来源于stack exchange,提问作者FlexDash
相关产品推荐
相关产品推荐

