Node.js 中的 SSLTLS

如果你選擇在 Node.js 應用程式中處理 SSL / TLS,請考慮此時你還負責維護 SSL / TLS 攻擊防範。在許多伺服器 - 客戶端體系結構中,SSL / TLS 終止於反向代理,既降低了應用程式的複雜性,又減少了安全配置的範圍。

如果你的 Node.js 應用程式應該處理 SSL / TLS,則可以通過載入金鑰和證書檔案來保護它。

如果證書提供程式需要證書頒發機構(CA)鏈,則可以將其作為陣列新增到 ca 選項中。在單個檔案中具有多個條目的鏈必須拆分為多個檔案,並以相同的順序輸入到陣列中,因為 Node.js 當前不支援一個檔案中的多個 ca 條目。下面的程式碼中提供了一個示例檔案 1_ca.crt2_ca.crt。如果 ca 陣列是必需的且未正確設定,則客戶端瀏覽器可能會顯示無法驗證證書真實性的訊息。

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

const options = {
  key: fs.readFileSync('privatekey.pem'),
  cert: fs.readFileSync('certificate.pem'),
  ca: [fs.readFileSync('1_ca.crt'), fs.readFileSync('2_ca.crt')]
};

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