自定義自架 Tailscale DERP 伺服器的 SSL 憑證

前言

在之前的文章 Tailscale 建立私有的中繼伺服器 – DERP 中,我們提到如何自架自己的 relay server,但在該篇文章中,我們是讓 DERP 生成自己的 SSL 憑證。不過某些人群可能會希望這個 SSL 憑證由自己提供,而不是由他自己去簽一張。因此這篇文章就來說說該怎麼做。

操作方式

操作有分成兩個區塊,產生憑證及配置 DERP 伺服器。

產生憑證

首先,你應該要自己產生有效的 SSL 憑證,你可以參考過往文章。

讓 Certbot 使用 DNS 驗證來獲得憑證

獲取由 Google 頒發的 SSL 憑證

配置 DERP 伺服器

完成憑證之後,找一個地方把 fullchain.pemprivkey.pem 存起來。以下的範例,我會把他放在 /var/ssl 底下。

接著重新命名這兩個檔案,假設你的 DERP 伺服器網域是 derp.example.com

  • fullchain.pem 重新命名成 derp.example.com.crt

  • privkey.pem 重新命名成 derp.example.com.key

接下來啟動 DERP 的時候,使用以下參數:

derper --hostname derp.example.com --certmode manual --certdir /var/ssl/

如果你像上一篇文章一樣將他包成服務,則可以回去編輯 /etc/systemd/system/derpsvc.service 檔案。

sudo vim /etc/systemd/system/derpsvc.service

修改配置檔(請做適當的修改):

[Unit]
Description=Tailscale DERP Server
After=multi-user.target

[Service]
User=root
Type=simple
ExecStart=/root/go/bin/derper --hostname derp.example.com --certmode manual --certdir /var/ssl/
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

接著讓系統重新載入設定檔。

sudo systemctl daemon-reload

重啟 DERP 服務。

sudo systemctl restart derpsvc

現在,你的 DERP 伺服器,應該會開始使用你提供的 SSL 憑證了!