- antmedia.md / maintenance.md: 新增 `remoteAllowedCIDR` 白名單章節, 記錄 2026-04-17 將 `172.17.0.3`、`172.17.0.4`(php / php-staging 容器 bridge IP)加入 WebRTCAppEE,解決 PHP 呼叫錄影 REST API 回 403 「Not allowed IP」問題;含修改 SOP、容器重建 IP 變動提醒。 - host.md: 容器一覽表加入「掛載目錄」欄位,明列 php / php-staging 的網站根目錄掛載。 - caddy.md: `:1443` → php-staging 路由補註網站根目錄路徑。
80 lines
3.3 KiB
Markdown
80 lines
3.3 KiB
Markdown
# Caddy 反向代理
|
||
|
||
- 部署路徑:`/opt/caddy`
|
||
- 使用 `docker-compose.yaml` 管理,`--network host` 模式
|
||
- Volume 掛載:`Caddyfile`、`caddy_data`、SSL 憑證、`tel-server` 靜態檔案
|
||
|
||
## 操作腳本
|
||
|
||
```bash
|
||
./run.sh # docker-compose up -d
|
||
./stop.sh # docker-compose down
|
||
./restart.sh # stop + run
|
||
./shell.sh # docker exec -it caddy sh
|
||
./list-containers.sh # docker-compose ps
|
||
./view-output-from-containers.sh # docker-compose logs -f
|
||
```
|
||
|
||
## 路由規則(Caddyfile)
|
||
|
||
| 入口 | 後端 | 說明 |
|
||
|------|------|------|
|
||
| `tel.tpech.gov.tw:443` | `127.0.0.1:8888`(php 容器) | 正式環境,HTTPS |
|
||
| `tel.tpech.gov.tw:443/phpmyadmin/*` | `10.200.251.40:1888` | phpMyAdmin(strip prefix 後轉發) |
|
||
| `tel.tpech.gov.tw:80` | `127.0.0.1:8888` | 正式環境,HTTP |
|
||
| `:1443` | `127.0.0.1:6666`(php-staging 容器,網站根目錄 `/opt/php-staging/www`) | 測試環境(ISO27001) |
|
||
| `tel-server.tpech.gov.tw:80/443` | `/srv/tel-server` | 靜態檔案服務(用於 PKI 驗證 `.well-known`) |
|
||
| `:443` / `:80` | `127.0.0.1:8888` | 其他網域的 fallback |
|
||
| `:8081` | — | 健康檢查(回傳 "I am 8081") |
|
||
|
||
- `auto_https off`:不使用 Caddy 自動 HTTPS,手動管理憑證
|
||
|
||
## Caddy SSL 憑證
|
||
|
||
| 項目 | 值 |
|
||
|------|-----|
|
||
| 網域 | `tel.tpech.gov.tw` |
|
||
| 簽發者 | TWCA Secure SSL Certification Authority(2026-04-16 起) |
|
||
| 有效期 | 2026-04-15 ~ **2026-10-30**(僅半年) |
|
||
| 憑證路徑(主機) | `/opt/caddy/fullchain.pem`、`/opt/caddy/privkey.pem` |
|
||
| 憑證路徑(容器內) | `/etc/caddy/ssl/fullchain.pem`、`/etc/caddy/ssl/privkey.pem` |
|
||
|
||
> 前一張為中華電信 HiPKI(2025-04-23 ~ 2026-04-23),已備份至 `/opt/caddy/hospital/ssl_tel_tpech_gov_tw_pre_2026_10_backup/`。
|
||
|
||
## 更新 Caddy 憑證
|
||
|
||
完整 SOP 見 [sop-update-caddy-ssl.md](sop-update-caddy-ssl.md)。快速摘要:
|
||
|
||
```bash
|
||
# 1. 上傳新憑證到主機(經 /tmp 中轉避免權限問題)
|
||
scp fullchain.pem privkey.pem hospital_media:/tmp/
|
||
ssh hospital_media "sudo mv /tmp/fullchain.pem /tmp/privkey.pem /opt/caddy/ && \
|
||
sudo chmod 644 /opt/caddy/fullchain.pem && \
|
||
sudo chmod 600 /opt/caddy/privkey.pem"
|
||
|
||
# 2. 重啟 Caddy(需要 sudo)
|
||
ssh hospital_media "cd /opt/caddy && sudo ./restart.sh"
|
||
|
||
# 3. 驗證(本地連線最可靠,外部可能被防火牆/WAF 攔截)
|
||
ssh hospital_media "openssl s_client -connect 127.0.0.1:443 \
|
||
-servername tel.tpech.gov.tw </dev/null 2>/dev/null \
|
||
| openssl x509 -noout -issuer -dates"
|
||
```
|
||
|
||
> **注意**:醫院前端有防火牆做 TLS 終端,外部 `openssl s_client` 可能看到舊憑證。須另外通知網管更新。
|
||
|
||
## 憑證備份(`/opt/caddy/hospital/`)
|
||
|
||
| 目錄 | 內容 |
|
||
|------|------|
|
||
| `hospital/ssl_tel_tpech_gov_tw_2026_10/` | `tel.tpech.gov.tw` 2026 TWCA 憑證(cert.zip + fullchain + key) |
|
||
| `hospital/ssl_tel_tpech_gov_tw_pre_2026_10_backup/` | 更新前的舊 HiPKI 憑證備份 |
|
||
| `hospital/ssl_tel_tpech_gov_tw_2025/` | `tel.tpech.gov.tw` 2025 年 HiPKI 憑證(key + csr + fullchain) |
|
||
| `hospital/ssl_tel_server_tpech_gov_tw_2025/` | `tel-server.tpech.gov.tw` 2025 年憑證(key + csr + fullchain) |
|
||
|
||
## 相關文件
|
||
|
||
- [SOP:更新 Caddy SSL 憑證](sop-update-caddy-ssl.md)
|
||
- [SSL 憑證管理](ssl.md)
|
||
- [主機與容器總覽](host.md)
|