本文說明瞭如何使用Let's Encrypt證書使用https保護您的Express.js服務器,並通過HST和更強大的Diffie-Hellman參數來進一步增強安全性。
在當今的數字景觀中,https是不可談判的。 用戶,Google排名因素和瀏覽器的預期,積極強調缺乏該網站。本教程演示了在您的express.js應用程序中添加讓我們加密證書。 但是,客戶端的安全至關重要。即使默認情況下未啟用,我們也會探索加密的連接到外部服務器。
鑰匙要點:
HTTPS HTTPS對於2020年及以後的網站安全至關重要,提供身份驗證,隱私,機密性和數據完整性。 這是Google的排名因素和用戶期望。
> node.js默認為http,但是https
ssl/tls安全性。
http > ssl/tls
> tcp
> TLS 1.3是最新版本,成功的SSL 3.0(儘管無法互操作)。 它使用三個加密通道:證書鏈,用於密鑰交換的公共密鑰加密以及用於數據傳輸的對稱密碼學。 建議使用SHA2或更強的哈希算法(SHA1已過時)。 不斷增長的數據洩露了用戶對增強在線安全性的需求。 EFF的HTTP到處都是瀏覽器擴展程序在可能的情況下強制加密,包括重寫部分HTTPS支持或完全阻止HTTP的站點的請求。
基本通信:
證書驗證涉及驗證簽名,到期日期,可信賴的根鍊和撤銷狀態。 受信任的證書機構(CAS)發行證書; CA的妥協撤銷了所有證書。 HTTPS握手序列:客戶端初始化,證書和密鑰交換消息,客戶端鍵交換和密碼規範,服務器確認和握手閉合。>
https實現
> node.js使用>模塊進行安全通信。 它的用法反映了>模塊:
https
>用生成的證書路徑替換http
>
const https = require("https"), fs = require("fs"); const options = { key: fs.readFileSync("/srv/www/keys/my-site-key.pem"), cert: fs.readFileSync("/srv/www/keys/chain.pem") }; const app = express(); app.use((req, res) => { res.writeHead(200); res.end("hello world\n"); }); app.listen(8000); https.createServer(options, app).listen(8080);
/srv/www/keys/my-site-key.pem
> certbot證書生成:/srv/www/keys/chain.pem
certbot自動化,讓我們加密證書生成和管理。 安裝certbot(指令因OS而變化;此示例使用Ubuntu):
sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository universe sudo add-apt-repository ppa:certbot/certbot sudo apt-get update
對像中使用這些。 certonly --webroot
>
certbot certonly --webroot -w /var/www/example/ -d www.example.com -d example.com
options
> http嚴格的運輸安全性(HSTS):使用頭盔中間件:
const helmet = require("helmet"); // ... app.use(helmet());
openssl dhparam -out /var/www/example/sslcert/dh-strong.pem 2048
結論:dhparam
options
https是必不可少的。 Node.js為安全Web應用程序提供了強大的SSL/TLS選項。 讓我們加密簡化證書管理,而HST和更強大的DH參數進一步增強了安全性。
> FAQS部分已被省略,但提供的信息涵蓋了原始文本的核心方面。
以上是如何使用node.js使用SSL/TLS的詳細內容。更多資訊請關注PHP中文網其他相關文章!