我正在跟踪本教程和app工作,但是我用服务器密钥创建的证书工作起来了
我知道我需要用我的服务器接受的证书传递ca选项,但我不知道如何指定我需要的证书。
我希望接受来自其他CA的证书,而不仅仅是那些用我的服务器密钥签名的证书.
[The peer's certificate must be chainable to a CA trusted by the server for the connection to be authenticated. When using certificates that are not chainable to a well-known CA, the certificate's CA must be explicitly specified as a trusted or the connection will fail to authenticate.][1]
const opts = {
key: fs.readFileSync('server_key.pem'),
cert: fs.readFileSync('server_cert.pem'),
requestCert: true,
rejectUnauthorized: false,
ca: [ fs.readFileSync('server_cert.pem') ],
}我该怎么做?
发布于 2019-10-04 16:56:00
这取决于您的验证方式,但至少您需要在受信任的根证书颁发机构文件夹中的计算机证书存储中安装其他CA证书的.CER副本。在那之后,一切都将取决于验证。一些验证方法会自动查询您的计算机证书存储区以获得证书。或者,您可以对其进行编程,从证书存储中提取CA并自己构建链。
证书的.CER版本是指不包含用于签名证书的私钥的公共副本。此证书可以验证它颁发的其他证书,但不能对证书进行签名。
如果您在windows机器上,则可以通过Microsoft管理控制台访问证书存储。打开cmd提示符并键入MMC。转到file > Add或Remove > Certificates并选择Add。这将提示您输入所需的特定证书存储区。如果单击下拉列表,您将看到其他文件夹。这将显示给定存储区中所有受信任的证书颁发机构。您需要在这里添加其他CA签名证书的副本。
https://stackoverflow.com/questions/58240374
复制相似问题