You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js中0A00018E:SSL routines::ca md too weak错误解决求助

解决SSL错误:0A00018E:SSL routines::ca md too weak

这个错误是因为你的证书使用了MD5、SHA-1这类弱哈希算法,新版Node.js默认会拒绝这类不安全的证书签名机制。以下是具体解决方式:

优先解决方案(推荐生产/长期使用)

如果有权限重新生成证书,直接更换为使用SHA-256及以上哈希算法的证书,从根源解决安全问题,避免后续的兼容性和安全风险。

临时绕过方案(仅本地测试使用)

方法1:修改HTTPS Agent配置,允许弱签名连接

在你的agentOptions中添加secureOptions配置,指定允许旧版连接规则:

const agentOptions = {
    cert: fs.readFileSync(certFile),
    key: fs.readFileSync(keyFile),
    rejectUnauthorized: false, 
    minVersion: 'TLSv1',
    // 允许连接使用弱签名算法的服务器
    secureOptions: require('constants').SSL_OP_LEGACY_SERVER_CONNECT
};

方法2:启用OpenSSL旧版提供器

启动Node服务时通过环境变量指定:

NODE_OPTIONS="--openssl-legacy-provider" node your-app.js

或者在代码开头全局设置:

process.env.NODE_OPTIONS = '--openssl-legacy-provider';

重要注意事项

  • 生产环境禁止使用rejectUnauthorized: false和任何弱算法绕过配置,必须使用合规的强哈希证书。
  • 可以用以下命令检查当前证书的签名算法:
    openssl x509 -in create.crt -text -noout | grep "Signature Algorithm"
    
    如果输出包含MD5或SHA1,说明证书确实使用了弱算法,优先更换。

内容的提问来源于stack exchange,提问作者kasfik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:21:08