diff options
| author | yyamashita <yyamashita@hetzner.yyamashita.com> | 2026-07-02 13:17:18 +0900 |
|---|---|---|
| committer | yyamashita <yyamashita@hetzner.yyamashita.com> | 2026-07-02 13:17:18 +0900 |
| commit | 2a1b87ebcb167cededb22782241900a82d0e8d4d (patch) | |
| tree | 7eafb5503ad36a8ef11dc165996ee8a4c8c847fb /vpn/install.sh | |
| parent | 7be614fa7aa9672e0ebe0424be2e3dae88c75c83 (diff) | |
Remove cert logic duplication from vpn/install.sh
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 <noreply@anthropic.com>
Diffstat (limited to 'vpn/install.sh')
| -rw-r--r-- | vpn/install.sh | 58 |
1 files changed, 5 insertions, 53 deletions
diff --git a/vpn/install.sh b/vpn/install.sh index 0198396..35a32d1 100644 --- a/vpn/install.sh +++ b/vpn/install.sh @@ -2,68 +2,20 @@ set -euo pipefail cd "$(dirname "$0")" -DOMAIN="vpn.yyamashita.com" -CADDY_DIR="/app/infra/caddy" -CERT_DIR="./certs" -CADDY_CERT_BASE="/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${DOMAIN}/${DOMAIN}" +echo "=== VPN Install: vpn.yyamashita.com ===" -echo "=== VPN Install: ${DOMAIN} ===" - -# users.conf チェック if [ ! -f users.conf ]; then echo "" echo "Error: users.conf が見つかりません。先に作成してください:" echo " echo 'username password' > /app/infra/vpn/users.conf" echo " chmod 600 /app/infra/vpn/users.conf" - echo "" - echo "複数ユーザーは1行ずつ追加:" - echo " user1 pass1" - echo " user2 pass2" - exit 1 -fi - -mkdir -p "$CERT_DIR" - -# Caddy コンテナから証明書を取得 -echo "Caddy から証明書を取得中..." -if ! docker compose -f "$CADDY_DIR/docker-compose.yml" exec -T caddy \ - cat "${CADDY_CERT_BASE}.crt" > "$CERT_DIR/server.crt"; then - echo "" - echo "Error: 証明書の取得に失敗しました。" - echo "Caddyfile に ${DOMAIN} が追加されているか確認してください。" - echo "追加後 'git push origin master' してから再実行してください。" exit 1 fi -docker compose -f "$CADDY_DIR/docker-compose.yml" exec -T caddy \ - cat "${CADDY_CERT_BASE}.key" > "$CERT_DIR/server.key" - -chmod 600 "$CERT_DIR/server.key" - -# 証明書チェーンを分割: 1枚目=リーフ、残り=中間CA -awk '/BEGIN CERTIFICATE/{n++} n==1' "$CERT_DIR/server.crt" > "$CERT_DIR/server-leaf.crt" -awk '/BEGIN CERTIFICATE/{n++} n>1' "$CERT_DIR/server.crt" > "$CERT_DIR/server-chain.crt" -mv "$CERT_DIR/server-leaf.crt" "$CERT_DIR/server.crt" - -# 中間 CA 証明書を Caddy で配信(クライアントが手動インストールする場合に使用) -awk '/BEGIN CERTIFICATE/{n++} n==1' "$CERT_DIR/server-chain.crt" > "$CADDY_DIR/ca.pem" -echo "中間 CA 証明書を ${CADDY_DIR}/ca.pem に配置しました。" - -echo "証明書を $CERT_DIR/ に保存しました。" - -# VPN コンテナ起動 -echo "VPN サービスを起動中..." -bash "$(pwd)/deploy.sh" +bash "$(pwd)/renew-cert.sh" echo "" echo "=== VPN 起動完了 ===" -echo "" -echo "クライアント接続情報:" -echo " サーバー: ${DOMAIN}" -echo " 種別: IKEv2" -echo " 認証: EAP (ユーザー名/パスワード)" -echo "" -echo "iOS/macOS: 設定 > VPN > VPN 構成を追加 > IKEv2" -echo "Android (Quest/FireTV): strongSwan VPN Client アプリをインストール" -echo "" -echo "証明書の更新: bash /app/infra/vpn/renew-cert.sh" +echo " サーバー: vpn.yyamashita.com" +echo " 認証: IKEv2 EAP (ユーザー名/パスワード)" +echo " 証明書の更新: bash /app/infra/vpn/renew-cert.sh" |
