我給自己買了從證書頒發機構此文件:Node.js的HTTPS PEM錯誤:錯誤:0906D06C:PEM套路:PEM_read_bio:沒有啓動線
- domain.com.p7b
- domain.com.crt
- domain.com.ca束
我想這一點代碼:
var express = require('express');
var app = express();
var fs = require("fs");
var https = require('https');
var privateKey = fs.readFileSync('domain.com.p7b').toString();
var certificate = fs.readFileSync('domain.com.crt').toString();
var ca_bundle = fs.readFileSync('domain.com.ca-bundle').toString();
var credentials = { key: privateKey,
ca : ca_bundle,
cert: certificate};
https.createServer(credentials,app).listen(8080, function() {
console.log('Example app listening on port 8080!');
});
啓動腳本後,我得到以下錯誤:
(err): at Object.createSecureContext (_tls_common.js:87:19)
(err): at Server (_tls_wrap.js:721:25)
(err): at new Server (https.js:17:14)
(err): at Object.exports.createServer (https.js:37:10)
(err): at Object.<anonymous> (/utec_temp/https/web.js:27:7)
(err): at Module._compile (module.js:435:26)
(err): at Object.Module._extensions..js (module.js:442:10)
(err): at Module.load (module.js:356:32)
(err): at Function.Module._load (module.js:311:12)
(err): Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
(err): at Error (native)
(err): at Object.createSecureContext (_tls_common.js:87:19)
(err): at Server (_tls_wrap.js:721:25)
(err): at new Server (https.js:17:14)
(err): at Object.exports.createServer (https.js:37:10)
(err): at Object.<anonymous> (/utec_temp/https/web.js:27:7)
(err): at Module._compile (module.js:435:26)
(err): at Object.Module._extensions..js (module.js:442:10)
(err): at Module.load (module.js:356:32)
(err): at Function.Module._load (module.js:311:12)
,你可以在互聯網上使用自簽名證書谷歌大部分的例子,但是當我在一個真實的環境中工作發生了什麼?
我少的代碼開發工作與自簽名密鑰,如下面的例子:
https://stackoverflow.com/a/24283204/3957754
我研究,我發現這一點:
https://www.namecheap.com/support/knowledgebase/article.aspx/9705/0/nodejs
http://www.backwardcompatible.net/155-Setting-up-real-SSL-Nodejs-Express
Node.js https pem error: routines:PEM_read_bio:no start line
但我無法更正錯誤。
我也降低到一個文件:
var credentials = {cert: certificate};
和錯誤是一樣的。所以我認爲,也許從Windows到UNIX的格式錯誤。我使用dos2unix工具,錯誤是一樣的。
我的節點版本是4.4.7
任何幫助表示讚賞。
提前致謝!
UPDATED
我在答案部分作品node.js的答案!但在一個優雅的或健康的方式,DONT修改您的應用代碼,離開這個工作了Apache,Nginx的,HAProxy的或一些負載平衡器:
# apache 2.2 example
SSLCertificateFile /some/folder/certificate.crt
SSLCertificateKeyFile /some/folder/initial.key
SSLCertificateChainFile /some/folder/certificate.ca-bundle
這種複雜性必須是透明的開發團隊和應由系統管理員,基礎設施或與貴公司網絡相關的其他團隊管理。