Node.js https モジュール

Node.js 組み込みモジュール


httpsこれはNode.jsの組み込みコアモジュールで、HTTPSサーバーとクライアントを作成し、安全なHTTPリクエストとレスポンスを処理するために使用されます。HTTPSは、HTTPに基づいてSSL/TLSプロトコルによって暗号化された安全な転送プロトコルです。

とhttpモジュールと比較すると、httpsモジュールの主な違いは次のとおりです:

  • SSL/TLS暗号化通信を使用する
  • デフォルトポートは80ではなく443
  • サーバーの身元を検証するにはデジタル証明書が必要

コア機能

HTTPSサーバーの作成

例

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

// 証明書ファイルを読み込む
const options = {
  key: fs.readFileSync('server-key.pem'),
  cert: fs.readFileSync('server-cert.pem')
};

// HTTPSサーバーを作成する
const server = https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('Hello HTTPS World!');
});

server.listen(443, () => {
  console.log('HTTPS server running on port 443');
});

HTTPSリクエストの発行

例

const https = require('https');

https.get('https://example.com', (res) => {
  console.log('ステータスコード:', res.statusCode);
  console.log('リクエストヘッダー:', res.headers);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
}).on('error', (e) => {
  console.error(e);
});

重要な概念

SSL/TLS証明書

HTTPSサーバーには次の証明書ファイルが必要です:

  • key: 秘密鍵ファイル(.key または .pem)
  • cert: 公開鍵証明書(.crt または .pem)
  • オプションca: 認証局(CA)の中間証明書

開発テスト用にOpenSSLを使用して自己署名証明書を生成できます:

例

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

リクエストとレスポンス

httpsモジュールのAPIは、httpモジュールとほぼ同じで、主要なオブジェクトは次のとおりです:

  • https.Server: HTTPSサーバークラス
  • https.request(): HTTPSリクエストの発行
  • https.get(): GETリクエストを発行するショートカットメソッド

実際のアプリケーションシナリオ

  1. 安全なWebサービス:暗号化転送を必要とするWebアプリケーションの構築
  2. API呼び出し:サードパーティのHTTPS APIを安全に呼び出す
  3. マイクロサービス通信:サービス間の安全な通信
  4. プロキシサーバー:安全なプロキシサービスの構築

セキュリティのベストプラクティス

  1. 機密データの転送にはHTTPではなく常にHTTPSを使用する
  2. SSL/TLS証明書を定期的に更新する
  3. 強力な暗号スイートと安全なプロトコルバージョンを使用する
  4. Let's Encryptなどの無料の認証局の使用を検討する
  5. 本番環境では自己署名証明書の使用を避ける

を通じて、httpsモジュールを使用することで、Node.js開発者は安全なネットワークアプリケーションとサービスを簡単に構築でき、データ転送中のプライバシーと完全性を保護できます。

Node.js 組み込みモジュール

その他の拡張