[英]SSL certificate from GoDaddy on NodeJS and express not working
我有一個用 express 運行的 NodeJs 應用程序。 我一直在嘗試集成 SSL 證書,但我一直遇到相同的error: Error: error:0906D06C:PEM routines:PEM_read_bio:no start line.
我嘗試了一些在 stackOverflow 上找到的解決方案,比如
if (process.env.SSL_PRIVATE_KEY && process.env.SSL_CERTIFICATE) {
server = require('https');
server.createServer({
key: fs.readFileSync(path.resolve('ssl/key.pem'), 'utf8'),
cert: fs.readFileSync(path.resolve('ssl/server.crt'), 'utf8'),
ca: fs.readFileSync(path.resolve('ssl/bundle.crt'), 'utf8'),
requestCert: false,
rejectUnauthorized: false
}, app).listen(app.get('port'), function () {
console.log('Express server listening on https://localhost:' + app.get('port'));
});
} else {
server = require('http');
server.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on http://localhost:' + app.get('port'));
});
但似乎都不起作用。 我的主要問題是我從 GoDaddy 下載了我的證書文件,但我只得到了兩個 .cert 文件。 我在一些網站上閱讀了如何獲取 .pem 文件,但我一直收到同樣的錯誤。
如您所見,我不熟悉在 NodeJs 中使用 https 協議。
你能幫我解決這個問題嗎?
最好的祝福
已經解決了。 實際上GoDaddy給我的文件格式錯誤,所以我打電話給支持,他們不知道如何解決,我不得不退款,因此,用Let's Encrypt添加HTTPS協議。
從 godaddy,您將有 5 個文件:1- 文本格式的密鑰 2- CSR 文本格式 3- pem 文件 4- crt 文件 5- bundle crt 文件
您要做的是將密鑰重命名為 a.pem 文件,然后打開,然后將格式更改為 utf8。 在 Mac 上
帶有 fs.ReadfileSync 的代碼將起作用:第一個是密鑰文件,第二個是下載的 PEM 文件,第三個是包
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.