在 Node express 应用程序中安装 Entrust SSL 证书
Posted
技术标签:
【中文标题】在 Node express 应用程序中安装 Entrust SSL 证书【英文标题】:Install Entrust SSL certificate in Node express application 【发布时间】:2015-10-19 21:05:06 【问题描述】:我不确定如何传入给定的证书来启动 https 服务器。 Entrust 提供了以下文件: 1. 根证书。 (.txt) 2.链根证书文件。 (.txt) 3. 连锁证书。 (.txt) 4. 服务器证书。 (.crt)
我的快递应用目前占用:
exports.key1 =
key:'./server/config/keys/server.key', // ?
cert:'./server/config/keys/server.crt', // ?
ca:'./server/config/keys/ca.csr' //given to entrust to generate their cert
;
我不确定如何修改密钥以匹配新文件。
【问题讨论】:
【参考方案1】:连接证书后,颁发者会提供相关说明,您需要从文件系统中读取它们并将它们提供给http.createServer()
以创建 SSL 服务器对象。来自文档:
var https = require('https');
var fs = require('fs');
var options =
key: fs.readFileSync('path/to/agent-key.pem'),
cert: fs.readFileSync('path/to/agent-cert.pem')
;
https.createServer(options, function (req, res)
res.writeHead(200);
res.end("hello world\n");
).listen(8000);
通常,您会将选项块包装在一个标志中,以检查您是处于生产还是开发阶段。对于生产,您将从安全的预定义路径读取证书,而对于开发,您可以生成这些证书并在根项目文件夹fixtures/
中提供它们,如果更方便,您也可以将其与项目存储库一起分发.使用以下内容创建用于开发的自颁发证书:
openssl req -batch \
-new -x509 -sha256 -newkey rsa:2048 -nodes -days 365 \
-keyout fixtures/dev.key \
-out fixtures/dev.crt;
【讨论】:
那么...代理密钥是我的私钥吗? agent-cert 是 1 个文件,其中 1-4 项按顺序连接?我现在从 chrome 收到此错误:ERR_SSL_VERSION_OR_CIPHER_MISMATCH 如果你得到一个ERR_SSL_VERSION_OR_CIPHER_MISMATCH
,意味着你没有为你的密钥正确地连接文件。试试这个工具来测试你是否正确地完成了所有事情sslshopper.com/certificate-key-matcher.html
似乎奏效了。谢谢!仍然获得不受信任的连接(它是真正的 ssl 证书,不是自签名的)。但我认为这是因为我在 localhost 上运行。
@WilliamFalcon 最有可能,因为证书绑定到域名。您需要添加localhost
。以上是关于在 Node express 应用程序中安装 Entrust SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular CLI 应用程序中安装 express 时出现“ENOTEMPTY:目录不为空,rmdir .....”错误。
webpack中node-sass、sass-loader在Linux中安装问题