我正在关注this tutorial并且应用有效,但是我使用服务器密钥创建的证书有效
我知道我需要通过服务器接受的证书传递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') ],
}
我该怎么做?
答案 0 :(得分:1)
这取决于您的验证方式,但是至少您需要在受信任的根证书颁发机构文件夹中的计算机证书存储中安装其他CA证书的.CER副本。之后,一切都将落到验证中。某些验证方法会自动在您的计算机证书库中查询证书。或者,您也可以对其进行编程,以从证书存储区中提取CA并自己构建链。
.CER版本的证书是指不包含用于签署证书的私钥的公共副本。该证书可以验证它颁发的其他证书,但不能对证书签名。
如果您使用的是Windows计算机,则可以通过Microsoft管理控制台访问证书存储。打开一个cmd提示符,然后键入MMC。 转到文件>添加或删除管理单元>证书,然后选择添加。这将提示您输入所需的特定证书存储。如果单击下拉列表,则会看到其他文件夹。这将显示给定商店中的所有受信任的证书颁发机构。您将需要在此处添加其他CA签名证书的副本。