首頁 > web前端 > js教程 > 如何使用node.js使用SSL/TLS

如何使用node.js使用SSL/TLS

Jennifer Aniston
發布: 2025-02-10 13:06:35
原創
597 人瀏覽過

本文說明瞭如何使用Let's Encrypt證書使用https保護您的Express.js服務器,並通過HST和更強大的Diffie-Hellman參數來進一步增強安全性。 >>>>>>

How to Use SSL/TLS with Node.js 在當今的數字景觀中,https是不可談判的。 用戶,Google排名因素和瀏覽器的預期,積極強調缺乏該網站。本教程演示了在您的express.js應用程序中添加讓我們加密證書。 但是,客戶端的安全至關重要。即使默認情況下未啟用,我們也會探索加密的連接到外部服務器。

(注意:對於使用節點應用程序的nginx反向代理SSL設置,請參閱我們的快速提示,“用node.js配置nginx和ssl”。

鑰匙要點:

HTTPS HTTPS對於2020年及以後的網站安全至關重要,提供身份驗證,隱私,機密性和數據完整性。 這是Google的排名因素和用戶期望。

> node.js默認為http,但是
    模塊啟用了安全的客戶端通信。這需要SSL證書,很容易獲得,並且沒有讓Let's Encrypt。 certbot簡化了我們加密證書生成和管理,驗證證書持有人的真實性是否為安全客戶端服務器連接。 通過頭盔節點模塊實現的 通過生成更長的(2048位)diffie-hellman密鑰來增強httpsssl/tls安全性。
  • https到處都是:
  • > HTTP/2標準(RFC 7540,2015年5月)授權加密,使HTTPS默認。 這增加了HTTPS的採用。 從瀏覽器的角度來看,達到IP級別涉及以下層:>
  • 客戶端瀏覽器

http > ssl/tls

> tcp

    ip
  1. https是SSL/TLS上的http,在添加http規則時添加:通過鍵和證書驗證;對隱私和機密性進行加密的,不對稱的溝通;和通過防篡改傳輸的數據完整性。 與過去的看法相反,SSL/TLS開銷也很小,即使對於Google(例如1%的CPU負載和2%的網絡開銷)等大型操作也是如此。 正如伊利亞·格里戈里克(Ilya Grigorik)恰當地說,唯一的性能瓶頸是https的使用不足。

    > TLS 1.3是最新版本,成功的SSL 3.0(儘管無法互操作)。 它使用三個加密通道:證書鏈,用於密鑰交換的公共密鑰加密以及用於數據傳輸的對稱密碼學。 建議使用SHA2或更強的哈希算法(SHA1已過時)。 不斷增長的數據洩露了用戶對增強在線安全性的需求。 EFF的HTTP到處都是瀏覽器擴展程序在可能的情況下強制加密,包括重寫部分HTTPS支持或完全阻止HTTP的站點的請求。 >

    How to Use SSL/TLS with Node.js

    基本通信:

    證書驗證涉及驗證簽名,到期日期,可信賴的根鍊和撤銷狀態。 受信任的證書機構(CAS)發行證書; CA的妥協撤銷了所有證書。 HTTPS握手序列:客戶端初始化,證書和密鑰交換消息,客戶端鍵交換和密碼規範,服務器確認和握手閉合。

    >

    How to Use SSL/TLS with Node.js

    這個序列與HTTP無關; https只會改變插座處理。 仍然存在HTTP請求,但插座加密內容(標題和正文)。 Express.js中的

    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):使用頭盔中間件:>

    • >使用openssl生成2048位DH鍵:
    const helmet = require("helmet");
    // ...
    app.use(helmet());
    登入後複製
    • >將添加到>對象:
    • >
    openssl dhparam -out /var/www/example/sslcert/dh-strong.pem 2048
    登入後複製

    結論: dhparam optionshttps是必不可少的。 Node.js為安全Web應用程序提供了強大的SSL/TLS選項。 讓我們加密簡化證書管理,而HST和更強大的DH參數進一步增強了安全性。

    >

    > FAQS部分已被省略,但提供的信息涵蓋了原始文本的核心方面。

以上是如何使用node.js使用SSL/TLS的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板