Files
106_105_181_40/docs/ssl.md

4.0 KiB
Raw Permalink Blame History

SSL 憑證管理

憑證總覽

兩張憑證分屬不同 CA需各自手動更新。

網域 CA 到期日 使用於
tel.tpech.gov.tw TWCA2026-04-16 起) 2026-10-30 Caddy 反向代理
tel-server.tpech.gov.tw TWCA2026-04-16 起) 2026-10-30 Ant Media Server

兩張憑證都只有半年效期(→ 2026-10-302026-10 前需再次更新。

AMS 憑證資訊

項目
網域 tel-server.tpech.gov.tw
簽發者 TWCA Secure SSL Certification Authority2026-04-16 從 HiPKI 換成 TWCA
有效期 2026-04-15 ~ 2026-10-30
憑證位置(容器內) /usr/local/antmedia/conf/fullchain.pemprivkey.pemchain.pem
Keystore 密碼 網域名稱 tel-server.tpech.gov.tw(由容器內 enable_ssl.shgenerate_password 決定)

更新 AMS SSL 憑證

方法一:使用 /opt/antmediaserver/enable_ssl.sh(推薦)

將新的 fullchain.pem + key 放入憑證資料夾,然後一行搞定:

# 把憑證檔案放到對應資料夾(資料夾內需有 fullchain.pem 和 tel_server_tpech_gov_tw.key
cd /opt/antmediaserver
./enable_ssl.sh ssl_tel_server_tpech_gov_tw_2026
# 或指定網域
./enable_ssl.sh ssl_tel_server_tpech_gov_tw_2026 tel-server.tpech.gov.tw

此腳本會自動:docker cp 憑證進容器 → 在容器內執行 enable_ssl.sh 生成 keystore/truststore 並重啟 AMS。

方法二:手動操作

  1. 準備 PEM 檔:fullchain.pem(伺服器憑證 + 中繼 CAprivkey.pemchain.pem(中繼 CA

    如果拿到的是 .cerDER 格式),先轉換:

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    cat server.pem intermediate_ca.pem > fullchain.pem
    cp intermediate_ca.pem chain.pem
    
  2. 複製進容器並執行:

    docker cp fullchain.pem antmedia:/usr/local/antmedia/
    docker cp privkey.pem antmedia:/usr/local/antmedia/
    docker cp chain.pem antmedia:/usr/local/antmedia/
    docker exec -it antmedia bash -c "cd /usr/local/antmedia && ./enable_ssl.sh \
      -d tel-server.tpech.gov.tw \
      -f /usr/local/antmedia/fullchain.pem \
      -p /usr/local/antmedia/privkey.pem \
      -c /usr/local/antmedia/chain.pem"
    

驗證

openssl s_client -connect tel-server.tpech.gov.tw:5443 -servername tel-server.tpech.gov.tw < /dev/null 2>/dev/null | openssl x509 -noout -dates

更新 Caddy 憑證

詳見 caddy.md

年度 SSL 更新 checklist

步驟一網域驗證DCV

中華電信 HiPKI 簽發憑證前,會要求透過 HTTP 驗證網域所有權。驗證檔案放在:

/opt/caddy/tel-server/.well-known/pki-validation/
├── DN_CHECK_FILE.htm   # HiPKI DCV 驗證檔JSON 格式,含 randomNumber + expireTime
└── whois.txt           # 域名所有權驗證

Caddy 中 tel-server.tpech.gov.tw:80 設定為靜態檔案服務,就是為了讓 CA 能存取: http://tel-server.tpech.gov.tw/.well-known/pki-validation/DN_CHECK_FILE.htm

流程:

  1. 向中華電信提交 CSR 申請憑證
  2. 中華電信會提供新的驗證檔案內容
  3. 更新 /opt/caddy/tel-server/.well-known/pki-validation/ 下的檔案
  4. 等待 CA 驗證通過後取得新憑證

步驟二:安裝新憑證

  1. 更新 Caddy 憑證:覆蓋 /opt/caddy/fullchain.pem + privkey.pem./restart.sh
  2. 更新 AMS 憑證:cd /opt/antmediaserver && ./enable_ssl.sh ssl_tel_server_tpech_gov_tw_<年份>
  3. 備份新憑證到 /opt/caddy/hospital//opt/antmediaserver/ssl_tel_server_tpech_gov_tw_<年份>/
  4. 備份 AMS 資料:cd /opt/antmediaserver && ./backup_antmedia_data.sh

具體 SOP

相關文件