ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsでSSL/TLSを使用する方法

node.jsでSSL/TLSを使用する方法

Jennifer Aniston
リリース: 2025-02-10 13:06:35
オリジナル
597 人が閲覧しました

この記事では、Express.jsサーバーを保護する方法を説明します。Let'sEncyptExtermatesを使用してHTTPSを使用し、HSTSとより強力なDiffie-Hellmanパラメーターでセキュリティをさらに強化します。

How to Use SSL/TLS with Node.js 今日のデジタル景観では、HTTPSは交渉不可です。 ユーザー、Googleランキングファクター、およびブラウザがそれを欠くサイトを積極的に強調することが期待されています。このチュートリアルでは、Express.jsアプリケーションにLet's Encrypt証明書を追加することを示しています。 ただし、クライアント側のセキュリティも同様に不可欠です。デフォルトで有効にされていない場合でも、外部サーバーへの暗号化された接続を強制することを検討します。

(注:nginxリバースプロキシSSLセットアップについては、ノードアプリを使用して、「node.jsでnginxとsslの構成」というクイックヒントを参照してください。

キーテイクアウト:

HTTPSは、2020年以降のWebサイトセキュリティにとって重要であり、認証、プライバシー、機密性、およびデータの整合性を提供します。 これは、Googleランキング要因とユーザーの期待です node.jsはデフォルトでhttpになりますが、

モジュールは安全なクライアント通信を有効にします。これには、SSL証明書が必要であり、簡単に入手でき、暗号化されていません。
    certbotは、証明書の生成と管理を暗号化し、証明書所有者の信頼性を安全なクライアントサーバー接続の信頼性を確認します。 ヘルメットノードモジュールを介して実装されたHTTP Strict Transport Security(HSTS)は、HTTPSを介してすべてのトラフィックを強制し、プロトコルダウングレード攻撃とCookieハイジャックを軽減します。
  • SSL/TLSセキュリティは、サーバーキー交換を強化するために長い(2048ビット)diffie-hellmanキーを生成することにより強化されます。
  • httpshttpsどこでも:
  • HTTP/2標準(RFC 7540、2015年5月)は暗号化を義務付け、HTTPをデフォルトにします。 これにより、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の成功します(ただし、相互運用できません)。 証明書チェーン、キー交換用の公開キー暗号化、およびデータ転送に対称的な暗号化の3つの暗号化されたチャネルを使用します。 SHA2またはより強いハッシュアルゴリズムが推奨されます(SHA1は時代遅れです)。 データの増加は、オンラインセキュリティの強化に対する燃料ユーザーの需要に違反します。 EFFのHTTPS Everywhere Browser拡張機能は、可能な場合は暗号化を強制します。これには、部分的な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);
    ログイン後にコピー
    certbotを使用した証明書生成:

    /srv/www/keys/my-site-key.pem /srv/www/keys/chain.pemCERTBOT AUTORATES証明書の生成と管理を暗号化しましょう。 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 Strict Transport Security(HSTS):ヘルメットミドルウェアを使用してください:

    • より強力なdiffie-hellmanパラメーター:
    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オプションを提供します。 暗号化は証明書管理を簡素化しますが、HSTSとより強力なDHパラメーターはセキュリティをさらに強化します。

    FAQSセクションは簡潔に省略されていますが、提供された情報は元のテキストの中心的な側面をカバーしています。

以上がnode.jsでSSL/TLSを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート