Skip to content

Bun prend en charge TLS nativement, grâce à BoringSSL. Activez TLS en passant une valeur pour key et cert ; les deux sont requis pour activer TLS.

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

Les champs key et cert attendent le contenu de votre clé TLS et certificat, pas un chemin vers eux. Cela peut être une chaîne, BunFile, TypedArray ou Buffer.

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // BunFile
    key: fs.readFileSync("./key.pem"), // Buffer
    key: fs.readFileSync("./key.pem", "utf8"), // string
    key: [Bun.file("./key1.pem"), Bun.file("./key2.pem")], // tableau de ce qui précède
  },
});

Phrase de passe

Si votre clé privée est chiffrée avec une phrase de passe, fournissez une valeur pour passphrase pour la déchiffrer.

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"),
    cert: Bun.file("./cert.pem"),
    passphrase: "ma-phrase-de-passe-secrète", 
  },
});

Certificats CA

En option, vous pouvez remplacer les certificats CA de confiance en passant une valeur pour ca. Par défaut, le serveur fera confiance à la liste des CA bien connus organisée par Mozilla. Lorsque ca est spécifié, la liste Mozilla est remplacée.

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // chemin vers la clé TLS
    cert: Bun.file("./cert.pem"), // chemin vers le certificat TLS
    ca: Bun.file("./ca.pem"), // chemin vers le certificat racine CA
  },
});

Diffie-Hellman

Pour remplacer les paramètres Diffie-Hellman :

ts
Bun.serve({
  tls: {
    dhParamsFile: "/chemin/vers/dhparams.pem", // chemin vers les paramètres Diffie-Hellman
  },
});

Indication de nom de serveur (SNI)

Pour configurer l'indication de nom de serveur (SNI) pour le serveur, définissez le champ serverName dans l'objet tls.

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

Pour autoriser plusieurs noms de serveur, passez un tableau d'objets à tls, chacun avec un champ serverName.

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

Bun édité par www.bunjs.com.cn