簡體   English   中英

使用StartSSL證書在Mac OSX上的Node.js上啟動HTTPS時出錯

[英]Error when starting HTTPS on Node.js on Mac OSX using StartSSL cert

我試圖讓使用StartSSL證書運行HTTPS服務器。 我從他們那里得到了所有必要的文件,我通過在createServer參數中傳遞它們來使用它們:

var options =
{
    ca:     FS.readFileSync('sub.class1.server.ca.pem'),
    key:    FS.readFileSync('ssl.key'),
    cert:   FS.readFileSync('ssl.crt')
};

這就是我得到的錯誤。

Error: error:0906D06C:PEM routines:PEM_read_bio:no start line
    at Object.createCredentials (crypto.js:87:31)
    at HTTPSServer.Server (tls.js:914:28)
    at HTTPSServer.Server (https.js:33:14)
    at HTTPSServer.HTTPSServer (/Users/myUserName/node_modules/connect/lib/https.js:34:16)
    at new HTTPSServer (/Users/myUserName/node_modules/express/lib/https.js:38:23)
    at Object.createServer (/Users/myUserName/node_modules/express/lib/express.js:43:12)
    at Object.<anonymous> (/Users/myUserName/Sites/node.js/https/app.js:12:36)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)

我想也許我應該將證書轉換為PEM。 但是跑步:

openssl x509 -in ssl.crt -out ssl.der -outform DER

......給了我類似的錯誤

unable to load certificate
67304:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

知道為什么嗎?

更新:這只發生在OSX上。 我嘗試在Ubuntu服務器上運行相同的東西,它的工作原理。

我遇到了同樣的問題。 但是我可以確認在我的機器上(macbook osx 10.7.3)節點https現在使用自簽名證書運行時沒有錯誤。

該特定錯誤意味着它無法找到文件,或者文件中沒有任何內容(您可以通過傳遞空字符串或使用無效的文件路徑來確認這一點。)

首先,嘗試使用絕對路徑 - 例如FS.readFileSync(__ dirname +'ssl.crt')。

還打開您的證書和密鑰文件,並確認它們包含以下格式的數據:'----- BEGIN'......等。

另請注意,雖然您的文件是.cert和.key文件,但文檔引用了擴展名為.pem的證書和密鑰文件。

http://nodejs.org/api/https.html

從我的理解,沒有太大的區別,內容看起來非常類似於我,但這些事情可能是繁瑣的。

這是一個將.csr文件轉換為.pem文件的命令:

openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

摘自http://silas.sewell.org/blog/2010/06/03/node-js-https-ssl-server-example/

我想你跟着這篇文章https://tootallnate.net/setting-up-free-ssl-on-your-node-server一樣,我遇到了同樣的問題。 但是在多次檢查我從StartCom檢索到的所有文件后,我發現我不小心將認證和私鑰保存為UTF8,而不是ANSI。 在將文件的編碼更改為ANSI之后,node.js開始像魅力一樣工作:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM