我从 GeoTrust 获得了 1 个月的免费 ssl 证书。我将证书文本复制到记事本中,并将其保存为带有 pem 扩展名的 ansi 编码文件。
我还将私钥保存到另一个文件中,作为带有 pem 扩展名的 ansi。
当我将 Nodejs 指向这些文件时,它会给出错误:PEMroutines:PEM_read_bio:no start
这是节点代码:
var https = require('https');
var fs = require('fs');
var options = {
cert: fs.readFileSync('geocrt.pem'),
key: fs.readFileSync('geokey.pem')
};
https.createServer(options, function (req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
我的证书以 -----BEGIN CERTIFICATE----- 开头,以 -----END CERTIFICATE----- 结尾
我的密钥以 -----BEGIN RSA PRIVATE KEY----- 开头,以 -----END RSA PRIVATE KEY----- 结尾
这是在 Windows 上。我不知道是怎么回事。请帮忙!
更新:我想我已经走得更远了。我注意到我的证书和密钥选项因意外(手掌)而反转,但现在当我启动我的节点应用程序时它只是挂起。我从来没有让控制台记录服务器已经启动,只是一个我最终不得不打破的空白行。请帮忙!
更新 2:当我运行 app.js 时,cURL 返回此错误:
curl: (35) 连接到 localhost:443 的未知 SSL 协议错误