Skip to content

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.

ts
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.

ts
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.

ts
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.

ts
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:

ts
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.

ts
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.

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 a cura di www.bunjs.com.cn