Skip to content

Bun поддерживает TLS из коробки благодаря BoringSSL. Включите 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"), // string
    key: [Bun.file("./key1.pem"), Bun.file("./key2.pem")], // массив вышеуказанного
  },
});

Passphrase

Если ваш закрытый ключ зашифрован с помощью парольной фразы предоставьте значение для passphrase для его расшифровки.

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

CA сертификаты

При необходимости вы можете переопределить доверенные CA-сертификаты передав значение для ca. По умолчанию сервер доверяет списку известных CA собранных Mozilla. Когда 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) для сервера установите поле serverName в объекте tls.

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", 
    },
  ],
});

Bun от www.bunjs.com.cn