簡體   English   中英

在 node/express 上安裝 RapidSSL 證書

[英]Installing a RapidSSL certificate on node/express

我對如何在我的節點服務器上配置 SSL 感到非常困惑!

我所做的是:

- 在我的本地機器上創建一個自簽名的密鑰和證書以進行本地測試

- 將此代碼添加到我的快速設置中

var privateKey = fs.readFileSync('privatekey.pem', 'utf8');
var certificate = fs.readFileSync('certificate.pem', 'utf8');
https.createServer({
    key: privateKey,
    cert: certificate
}, app).listen(port);

這在本地沒問題(我收到瀏覽器錯誤,但我明白這是因為我是自簽名的,而且我不是受信任的機構)。

現在我想使用真實證書進行部署,所以我從 RapidSSL 購買了一個。 他們在電子郵件中以明文形式向我發送了兩個密鑰,均采用以下格式

-----BEGIN CERTIFICATE-----
blah
-----END CERTIFICATE-----

一個標記為Web server CERTIFICATE ,另一個標記為INTERMEDIATE CA

我將Web server CERTIFICATE的內容復制到一個名為(為了這個問題) prodPrivatekey.pem的新文件,並將prodPrivatekey.pem INTERMEDIATE CA移動到prodCertificate.pem 然后我替換了上面代碼中的路徑。


首先,有人可以告訴我這個行動方針是否正確嗎? 假設我對 SSL 證書的內部運作幾乎一無所知!

其次,如果是這樣,我在此設置中遇到的錯誤是Error: error:0906D06C:PEM routines:PEM_read_bio:no start line 我能找到的唯一幫助是這個問題Node.js https pem error:routines:PEM_read_bio:no start line但這里的幫助似乎與自簽名證書有關。

感謝您的任何幫助!

var privateKey = fs.readFileSync('privatekey.pem', 'utf8');

privateKey應該是你的私鑰。 您不會向 RapidSSL 提供此信息或從 RapidSSL 收到此信息。

 var certificate = fs.readFileSync('certificate.pem', 'utf8');

certificate應該是 RapidSSL 已標記為 Web 服務器 CERTIFICATE 的證書

這留下了INTERMEDIATE CA 這是一個中間證書(介於您和 RapidSSL 的根證書之間)。 您需要將它包含在您的應用程序中,否則某些瀏覽器(例如 Android 上的瀏覽​​器)會看到指示“不受信任的證書”或類似性質的錯誤。

要將其包含在您的配置中,您可以執行以下操作:

var intermediateCertificate = fs.readFileSync('intermediate.pem', 'utf8');
https.createServer({
    key: privateKey,
    cert: certificate,
    ca: [ intermediateCertificate ]
}, app).listen(port);

一旦成功並且您的站點是公開的,請使用在線掃描儀(例如SSL Labs Server Test)測試您站點的 SSL 配置,以查看您的 SSL 配置是否安全(得分 A 或 A+)。 根據您運行的節點版本,默認值可能不夠安全。

暫無
暫無

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

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