- 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 路由補註網站根目錄路徑。
3.3 KiB
3.3 KiB
Caddy 反向代理
- 部署路徑:
/opt/caddy - 使用
docker-compose.yaml管理,--network host模式 - Volume 掛載:
Caddyfile、caddy_data、SSL 憑證、tel-server靜態檔案
操作腳本
./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。快速摘要:
# 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) |