簡體   English   中英

Socket.io/Node.js和SSL

[英]Socket.io/Node.js and SSL

我最近從Comodo購買了SSL證書。 他們發給我這些文件:

AddTrustExternalCARoot.crt
PositiveSSLCA2.crt
mydomain.crt

然后,我創建了我的私鑰和ca-bundle,

openssl genrsa -des3 -out mydomain.key 1024
cat PositiveSSLCA2.crt AddTrustExternalCARoot.crt > mydomain.ca-bundle

這是我用來將它們放在一起的代碼。 我在Chrome中遇到SSL連接錯誤。

var privateKey = fs.readFileSync('./mydomain.key').toString();
var certificate = fs.readFileSync('./mydomain.crt').toString();
var ca = fs.readFileSync('./mydomain.ca-bundle').toString();

var io = require('socket.io').listen(1200, { key:privateKey,cert:certificate,ca:ca });

頒發證書之前生成私鑰。

當CA簽署與特定私鑰一起使用的公鑰時,將創建證書。 您生成一個私鑰,然后您創建一個包含公鑰的CSR。 CA會向您發送證書。

您必須在獲得證書之前的某個時刻生成私鑰 - 您必須使用它。 如果您嘗試使用在頒發證書后生成的私鑰,它顯然與證書中的公鑰不匹配。


此外,node的tls模塊無法解析證書包。 您必須在陣列中單獨傳遞每個證書。

{
    key: fs.readFileSync('mydomain.key'),
    cert: fs.readFileSync('mydomain.crt'),
    ca: [ fs.readFileSync('AddTrustExternalCARoot.crt'), fs.readFileSync('PositiveSSLCA2.crt') ]
}

文檔有更多細節。

暫無
暫無

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

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