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

Node.js v18使用Axios携带pfx证书请求报ca md too weak错误如何解决

问题根因

ca md too weak报错发生在TLS安全上下文初始化阶段,触发时机早于证书信任校验流程,因此你之前尝试的rejectUnauthorized: false、全局设置NODE_TLS_REJECT_UNAUTHORIZED = 0两个方案完全无效——这两个配置仅作用于证书信任校验环节,管不到OpenSSL底层的签名算法强度校验规则。

Node.js 17及以上版本内置的OpenSSL默认安全等级为2,该等级默认拦截使用MD5、SHA1等弱哈希算法签名的CA证书与证书链。你传入的.pfx客户端证书包内包含的CA证书链使用了被默认规则拦截的弱签名算法,加载证书时就会直接抛出错误,不需要和目标服务建立网络连接,这也是为什么未连接VPN时也会触发报错。
Postman自带独立打包的TLS栈与OpenSSL配置,默认安全等级更低,没有启用这么严格的算法拦截规则,因此相同证书、参数在Postman中可以正常发起请求。

解决方案(无需降级Node.js版本)

方案1:临时兼容配置(适合内部可信接口场景)

两种配置方式二选一即可,优先选择仅影响当前请求Agent的配置,避免全局修改带来的安全风险:

  1. 代码层面修改https.Agent配置,显式放开弱签名算法限制:
const crypto = require('crypto');
const https = require('https');
const axios = require('axios');
const fs = require('fs');

const agent = new https.Agent({
    pfx: fs.readFileSync(process.cwd() + "\\src\\sources\\KIISWSClient.pfx"),
    passphrase: 'password',
    rejectUnauthorized: false,
    // 新增以下配置,允许弱签名算法证书加载
    secureOptions: crypto.constants.SSL_OP_LEGACY_SERVER_CONNECT | crypto.constants.SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION,
    sigalgs: 'RSA+SHA1:ECDSA+SHA1:RSA+SHA256:ECDSA+SHA256:RSA+SHA384:ECDSA+SHA384'
});

const userKiisData = axios.post('https://ws-kiis.hlk.hr/AdeoMembersPublicService.svc/WSPublic/BasicData', {
    Username: "myusername",
    Role: "role"
}, {
    auth: {
        username: "user",
        password: "mypassword"
    },
    httpsAgent: agent
});
  1. 如果代码层面配置不生效,可以在项目启动命令中添加Node.js启动参数,启用旧版OpenSSL兼容模式:
node --openssl-legacy-provider your-entry-file.js

注意:该方案属于兼容配置,会降低TLS连接的安全等级,存在中间人攻击风险,仅建议在调用内部可信接口、暂时无法更换证书的场景使用。

方案2:合规永久方案(推荐生产环境使用)

最符合安全规范的处理方式是联系证书签发方,重新签发使用SHA256及以上强度哈希算法签名的CA证书与客户端证书,替换现有.pfx证书包。替换后不需要修改任何Node.js默认安全配置即可正常发起请求,不存在额外安全风险。

常见误区说明
  • 不要全局修改NODE_TLS_REJECT_UNAUTHORIZED配置,该配置无法解决当前报错,还会导致Node.js进程内所有HTTPS请求跳过证书校验,暴露在安全风险中
  • 该报错和VPN连接状态无关,属于本地加载证书阶段抛出的错误,不需要发起网络请求就会触发
  • 不建议通过降级Node.js到16及以下版本规避问题,低版本Node.js已停止安全更新,存在已知安全漏洞

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 07:48:20