在 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中安装问题

Nodemon 未在 React-Express-Node 应用程序中刷新浏览器

node+express+mysql 实现登陆注册

express框架解析——学习笔记

node安装使用