node.js - 如何使用 .pfx 类型的证书修复 nodejs 中缺少中间/链证书
问题描述
我有一个 .pfx 格式的证书,当我使用下面的代码并使用 ssl 检查检查 ssl 时,我得到中间证书丢失错误。
if(process.env.NODE_ENV === "production") {
var credentials = {
pfx: fs.readFileSync('C:/self/certificate/testname.com.pfx'),
passphrase: "ffffff!"
};
this.app.server = https.createServer(credentials, this.app);
this.app.server.timeout = 600000;
this.init();
const httpServer = http.createServer((req, res) => {
res.writeHead(301, {Location: `https://${req.headers.host}${req.url}`});
res.end();
});
httpServer.listen(80);
} else {
this.app.server = http.createServer(this.app);
this.init();
}
请让我知道如何使用它。我已经看过一些帖子,例如示例
但是找不到可以帮助您安装 .pfx 类型证书的东西。帮助赞赏。-AJ
解决方案
经过所有研究和示例发布Sample,
我使用 openSSL 从 pfx 文件生成了 .crt、.ca-bundle 和 .pem 文件,然后将 .ca-bundle 中的所有行附加到 .crt 文件中,然后在下面的代码中使用。
var credentials = {
key: fs.readFileSync('C:/testApp/certificate/private-key.pem'),
cert: fs.readFileSync('C:/testApp/certificate/certificate.crt'),
};
this.app.server = https.createServer(credentials, this.app);
并重新运行服务器。一切都很好,我能够成功地看到中间证书链。谢谢-AJ
推荐阅读
- angular - 为什么一个组件有一个单独的注入器,而不是急切加载的模块?
- python - AttributeError: 'int' 对象没有属性 'split' excel 错误
- algorithm - 如何确定是否可以接受排行榜?
- php - 可以在 Laravel / PHPUnit 中模拟模型方法输出吗?
- php - PDO 查询未将数据插入 MySQL 数据库,未显示任何错误
- oauth-2.0 - 使用 oAuth 退出 Microsoft AAD 时,有没有办法避免“选择帐户”提示?
- php - 如何更改 wordpress 主题的语言?
- python - 如何使用没有 IOError 的 GCS 路径加载文件?
- csv - 当它不是文件的第一行时如何自动设置标题?
- ssms - SQL Server Management Studio 17.9 字体大小不起作用