Elysiaサーバーを作っていて、証明書なしの http は問題なくNet上にいくらでもサンプルがあります。でも、https にしようとすると、BunについてのBun.serveによる tsl 設定方法は見つかるのだけれど、new Elysia()では2024年3月現在見当たらず試行錯誤して判ったので、簡単にメモしておこうと思います。
letsencryptを使った方法ですが、こんな感じです。
server.ts
import { Elysia } from 'elysia';
const PORT = 443;
const KEYS = {
cert: Bun.file("/etc/letsencrypt/live/<ドメイン名>/cert.pem"),
key: Bun.file("/etc/letsencrypt/live/<ドメイン名>/privkey.pem")
}
const app = new Elysia()
.get('/', () => 'my https server is running!')
.listen({
port: PORT,
tls: KEYS
}, (token: any) => {
if (token) {
console.log(`Listening to port ${PORT}`);
} else {
console.error(`Failed to listen to port ${PORT}`);
}
})