From 2a1b87ebcb167cededb22782241900a82d0e8d4d Mon Sep 17 00:00:00 2001 From: yyamashita Date: Thu, 2 Jul 2026 13:17:18 +0900 Subject: Remove cert logic duplication from vpn/install.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit install.sh and renew-cert.sh had identical cert fetch/split code. install.sh now delegates to renew-cert.sh, which in turn calls deploy.sh. Flow: install.sh → renew-cert.sh → deploy.sh Co-Authored-By: Claude Sonnet 4.6 --- vpn/renew-cert.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'vpn/renew-cert.sh') diff --git a/vpn/renew-cert.sh b/vpn/renew-cert.sh index b199350..56cc1d6 100644 --- a/vpn/renew-cert.sh +++ b/vpn/renew-cert.sh @@ -8,17 +8,24 @@ CADDY_CERT_BASE="/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory echo "証明書を更新中..." -docker compose -f "$CADDY_DIR/docker-compose.yml" exec -T caddy \ - cat "${CADDY_CERT_BASE}.crt" > certs/server.crt +mkdir -p certs + +if ! docker compose -f "$CADDY_DIR/docker-compose.yml" exec -T caddy \ + cat "${CADDY_CERT_BASE}.crt" > certs/server.crt; then + echo "Error: 証明書の取得に失敗しました。Caddyfile に ${DOMAIN} が設定されているか確認してください。" + exit 1 +fi docker compose -f "$CADDY_DIR/docker-compose.yml" exec -T caddy \ cat "${CADDY_CERT_BASE}.key" > certs/server.key chmod 600 certs/server.key -# チェーン分割 + Android 用 CA 証明書更新 +# チェーン分割: 1枚目=リーフ、残り=中間CA awk '/BEGIN CERTIFICATE/{n++} n==1' certs/server.crt > certs/server-leaf.crt awk '/BEGIN CERTIFICATE/{n++} n>1' certs/server.crt > certs/server-chain.crt mv certs/server-leaf.crt certs/server.crt + +# 中間 CA 証明書を Caddy で配信(クライアントが手動インストールする場合に使用) awk '/BEGIN CERTIFICATE/{n++} n==1' certs/server-chain.crt > "$CADDY_DIR/ca.pem" -docker compose restart -echo "完了。証明書を更新してリロードしました。" +echo "証明書を更新しました。" +bash "$(pwd)/deploy.sh" -- cgit v1.2.3