我不确定如何传递给定的证书来启动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
};
我不确定如何修改密钥以匹配新文件。
答案 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;