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 تحرير