我正在尝试使用express在node.js中实现对等证书验证。
在生产中,我收到错误消息:EE证书密钥太弱。
如何更改它以支持弱键?
我不想在代码级别忽略它,因为如果我这样做,它根本不会检查CA。
在开发服务器中,如果我删除匹配的CA证书,则会收到UNABLE_TO_VERIFY_LEAF_SIGNATURE,而在生产服务器中,我会收到“ EE证书密钥太弱”的信息-它根本不会对其进行检查。
在开发服务器中,它可以正常工作,但是在生产服务器中,我收到错误消息。
我无法在客户端设备上更改证书,因此我必须支持弱密钥。
https.createServer({
key: getFile(config.get("ssl_certificate.key")),
cert: getFile(config.get("ssl_certificate.cert")),
ca: [
getCACertFile('ca-crt.pem'), //some certificates
],
requestCert: true,
rejectUnauthorized: false
},app)
在req.socket.authorizationError中,我希望接收到null。
在开发服务器中,我收到null,但在生产服务器中,我收到“ EE证书密钥太弱”
标准错误:
error: failed to start server: Error: error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak
at Object.createSecureContext (_tls_common.js:135:17)
at Server (_tls_wrap.js:873:27)
at new Server (https.js:62:14)
at Object.createServer (https.js:85:10)
最佳答案
您的典型SSL证书的两个方面立即引起您的注意:RSA密钥长度和哈希算法。接受证书的方法可能因弱者而异。
检查Siganture Algorithm
下的证书属性。难道是sha1RSA
吗?如果是这样,请搜索启用SHA1支持。
检查公钥。里面有几位?小于1024吗?然后搜索最小RSA密钥长度设置。
关于node.js - https.createServer错误:SSL_CTX_use_certificate:ca md太弱,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57456325/