在Node express应用程序中安装Entrust SSL证书

时间:2015-10-19 21:05:06

标签: node.js ssl express

我不确定如何传递给定的证书来启动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 个答案:

答案 0 :(得分: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;