Skip to content

Bun は BoringSSL を使用して、すぐに TLS をサポートしています。TLS を有効にするには keycert の値を渡します。両方とも TLS を有効にするために必須です。

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), 
    cert: Bun.file("./cert.pem"), 
  },
});

key フィールドと cert フィールドは、TLS 鍵と証明書の パス ではなく コンテンツ を期待しています。これは文字列、BunFileTypedArray、または Buffer にできます。

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // BunFile
    key: fs.readFileSync("./key.pem"), // Buffer
    key: fs.readFileSync("./key.pem", "utf8"), // 文字列
    key: [Bun.file("./key1.pem"), Bun.file("./key2.pem")], // 上記の配列
  },
});

パスフレーズ

秘密鍵がパスフレーズで暗号化されている場合は、復号化するために passphrase の値を提供します。

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"),
    cert: Bun.file("./cert.pem"),
    passphrase: "my-secret-passphrase", 
  },
});

CA 証明書

オプションで、ca の値を渡すことで信頼できる CA 証明書を上書きできます。デフォルトでは、サーバーは Mozilla によってキュレートされた既知の CA のリストを信頼します。ca が指定されると、Mozilla のリストは上書きされます。

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // TLS 鍵へのパス
    cert: Bun.file("./cert.pem"), // TLS 証明書へのパス
    ca: Bun.file("./ca.pem"), // ルート CA 証明書へのパス
  },
});

Diffie-Hellman

Diffie-Hellman パラメーターを上書きするには:

ts
Bun.serve({
  tls: {
    dhParamsFile: "/path/to/dhparams.pem", // Diffie-Hellman パラメーターへのパス
  },
});

サーバー名表示(SNI)

サーバーのサーバー名表示(SNI)を設定するには、tls オブジェクトの serverName フィールドを設定します。

ts
Bun.serve({
  tls: {
    serverName: "my-server.com", // SNI
  },
});

複数のサーバー名を許可するには、tls にオブジェクトの配列を渡し、それぞれに serverName フィールドを含めます。

ts
Bun.serve({
  tls: [
    {
      key: Bun.file("./key1.pem"),
      cert: Bun.file("./cert1.pem"),
      serverName: "my-server1.com", 
    },
    {
      key: Bun.file("./key2.pem"),
      cert: Bun.file("./cert2.pem"),
      serverName: "my-server2.com", 
    },
  ],
});

Bun by www.bunjs.com.cn 編集