Skip to content

O Bun suporta TLS nativamente, powered por BoringSSL. Habilite TLS passando um valor para key e cert; ambos são necessários para habilitar TLS.

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

Os campos key e cert esperam o conteúdo da sua chave TLS e certificado, não um caminho para eles. Isto pode ser uma string, 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")], // array dos acima
  },
});

Passphrase

Se sua private key é encriptada com uma passphrase, forneça um valor para passphrase para decriptá-la.

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

CA Certificates

Opcionalmente, você pode sobrescrever os certificados CA confiáveis passando um valor para ca. Por padrão, o servidor confiará na lista de CAs bem conhecidas curada pela Mozilla. Quando ca é especificado, a lista da Mozilla é sobrescrita.

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // caminho para chave TLS
    cert: Bun.file("./cert.pem"), // caminho para certificado TLS
    ca: Bun.file("./ca.pem"), // caminho para certificado root CA
  },
});

Diffie-Hellman

Para sobrescrever os parâmetros Diffie-Hellman:

ts
Bun.serve({
  tls: {
    dhParamsFile: "/path/to/dhparams.pem", // caminho para parâmetros Diffie Hellman
  },
});

Server Name Indication (SNI)

Para configurar o server name indication (SNI) para o servidor, defina o campo serverName no objeto tls.

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

Para permitir múltiplos server names, passe um array de objetos para tls, cada um com um 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 by www.bunjs.com.cn edit