Bun supporta TLS out of the box, alimentato da BoringSSL. Abilita TLS passando un valore per key e cert; entrambi sono richiesti per abilitare TLS.
Bun.serve({
tls: {
key: Bun.file("./key.pem"),
cert: Bun.file("./cert.pem"),
},
});I campi key e cert si aspettano i contenuti della tua chiave TLS e del certificato, non un percorso ad essi. Questo può essere una stringa, BunFile, TypedArray o Buffer.
Bun.serve({
tls: {
key: Bun.file("./key.pem"), // BunFile
key: fs.readFileSync("./key.pem"), // Buffer
key: fs.readFileSync("./key.pem", "utf8"), // stringa
key: [Bun.file("./key1.pem"), Bun.file("./key2.pem")], // array di quanto sopra
},
});Passphrase
Se la tua chiave privata è crittografata con una passphrase, fornisci un valore per passphrase per decrittografarla.
Bun.serve({
tls: {
key: Bun.file("./key.pem"),
cert: Bun.file("./cert.pem"),
passphrase: "my-secret-passphrase",
},
});Certificati CA
Opzionalmente, puoi sovrascrivere i certificati CA attendibili passando un valore per ca. Di default, il server si fiderà della lista di CA ben noti curata da Mozilla. Quando ca è specificato, la lista Mozilla viene sovrascritta.
Bun.serve({
tls: {
key: Bun.file("./key.pem"), // percorso alla chiave TLS
cert: Bun.file("./cert.pem"), // percorso al certificato TLS
ca: Bun.file("./ca.pem"), // percorso al certificato CA radice
},
});Diffie-Hellman
Per sovrascrivere i parametri Diffie-Hellman:
Bun.serve({
tls: {
dhParamsFile: "/path/to/dhparams.pem", // percorso ai parametri Diffie Hellman
},
});Server name indication (SNI)
Per configurare il server name indication (SNI) per il server, imposta il campo serverName nell'oggetto tls.
Bun.serve({
tls: {
serverName: "my-server.com", // SNI
},
});Per permettere più nomi server, passa un array di oggetti a tls, ciascuno con un campo serverName.
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",
},
],
});