يدعم 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",
},
],
});