我正在学习如何在Express上使用HTTPS,例如,我在StartSSL生成的证书。我试着看看那里的其他解决方案,但似乎没有什么对我有用。
好的,所以我在StartSSL中生成了一个.pem文件,其中保存了一个密钥。我已将.pem文件放在Express应用程序文件夹中,并且我尝试使用此代码设置工作服务器:
const app = require('express')();
const fs = require('fs');
const https = require('https');
// Setup HTTPS
const httpsPort = 3443;
const options = {
key: "my key in plain text",
cert: fs.readFileSync("./cert.pem")
};
var secureServer = https.createServer(options, app).listen(httpsPort, () => {
console.log(">> App listening at port "+httpsPort);
});
我也尝试过使用.crt证书,但似乎没有任何效果。它会引发以下错误:
C:\some\path\test>node index.js
_tls_common.js:85
c.context.setKey(options.key, options.passphrase);
^
Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
at Error (native)
at Object.createSecureContext (_tls_common.js:85:17)
at Server (_tls_wrap.js:776:25)
at new Server (https.js:26:14)
at Object.exports.createServer (https.js:47:10)
at Object.<anonymous> (C:\some\path\test\index.js:18:26)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
我做错了什么,伙计们?谢谢!
编辑:
还尝试将密码放在带有以下内容的.pem文件中:
-----BEGIN PRIVATE KEY-----
(my key)
-----END PRIVATE KEY-----
这引发了另一个错误,可能更多与fs相关:
Error: error:0906D064:PEM routines:PEM_read_bio:bad base64 decode