2015-10-19 53 views
1

我不確定如何傳入給定證書以啓動https服務器。 Entrust提供了以下文件:
1.根證書。 (.txt)
2.鏈接根證書文件。 (.txt)
3.鏈式證書。 (.txt)
4.服務器證書。 (.CRT)在Node express應用程序中安裝Entrust SSL證書

我的快遞應用目前需要:

exports.key1 = { 
    key:'./server/config/keys/server.key', // ? 
    cert:'./server/config/keys/server.crt', // ? 
    ca:'./server/config/keys/ca.csr' //given to entrust to generate their cert 
}; 

我不知道如何修改密鑰相匹配的新文件。

回答

1

一旦您連接了您的證書,您的證書的說明由您的發行人提供,您需要從文件系統中讀取它們並將其提供給http.createServer()以創建SSL服務器對象。從文檔:

var https = require('https'); 
var fs = require('fs'); 

var options = { 
    key: fs.readFileSync('path/to/agent-key.pem'), 
    cert: fs.readFileSync('path/to/agent-cert.pem') 
}; 

https.createServer(options, function (req, res) { 
    res.writeHead(200); 
    res.end("hello world\n"); 
}).listen(8000); 

通常,你會將選項塊封裝在一個標誌來檢查你是否在生產或開發。對於生產,您將從安全的預定義路徑中讀取證書,而在開發時,您可以生成這些證書並將其提供到根項目文件夾fixtures/中,如果它更方便,也可以與項目存儲庫一起分發。使用以下來創建一個自行發行的證書進行開發:

openssl req -batch \ 
    -new -x509 -sha256 -newkey rsa:2048 -nodes -days 365 \ 
     -keyout fixtures/dev.key \ 
     -out fixtures/dev.crt; 
+0

所以... agent-key是我的私鑰嗎? agent-cert是1個文件,其中的項目1-4按順序連接?我現在從chrome中得到這個錯誤:ERR_SSL_VERSION_OR_CIPHER_MISMATCH –

+0

如果你得到一個'ERR_SSL_VERSION_OR_CIPHER_MISMATCH',意味着你沒有正確地連接你的密鑰文件。試試這個工具來測試你做的一切正確https://www.sslshopper.com/certificate-key-matcher.html –

+0

似乎工作。謝謝!仍然得到不可信的連接(這是一個真正的SSL證書,而不是自簽名)。但我形象是因爲我在本地主機上運行。 –