Bun は BoringSSL を使用して、すぐに TLS をサポートしています。TLS を有効にするには key と cert の値を渡します。両方とも TLS を有効にするために必須です。
ts
Bun.serve({
tls: {
key: Bun.file("./key.pem"),
cert: Bun.file("./cert.pem"),
},
});key フィールドと cert フィールドは、TLS 鍵と証明書の パス ではなく コンテンツ を期待しています。これは文字列、BunFile、TypedArray、または 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",
},
],
});