Files
106_105_181_40/docs/caddy.md
Timmy 394abb181e docs: 記錄 WebRTCAppEE REST API 白名單新增,補充容器掛載資訊
- 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 路由補註網站根目錄路徑。
2026-04-17 15:40:33 +08:00

80 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` | phpMyAdminstrip 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 Authority2026-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` |
> 前一張為中華電信 HiPKI2025-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)