我正在尝试使用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/

10-10 04:47