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")], // array of above
  },
});

عبارة المرور ​

إذا كان مفتاحك الخاص مشفرًا بعبارة مرور، قدم قيمة لـ passphrase لفك تشفيره.

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

شهادات CA ​

اختياريًا، يمكنك تجاوز شهادات CA الموثوقة بتمرير قيمة لـ ca. افتراضيًا، سيثق الخادم بقائمة CAs المعروفة التي curatedها Mozilla. عند تحديد ca، يتم الكتابة فوق قائمة Mozilla.

ts
Bun.serve({
  tls: {
    key: Bun.file("./key.pem"), // path to TLS key
    cert: Bun.file("./cert.pem"), // path to TLS cert
    ca: Bun.file("./ca.pem"), // path to root CA certificate
  },
});

Diffie-Hellman ​

لتجاوز معلمات Diffie-Hellman:

ts
Bun.serve({
  tls: {
    dhParamsFile: "/path/to/dhparams.pem", // path to Diffie Hellman parameters
  },
});

الإشارة إلى اسم الخادم (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 تحرير