========================================
 HTTPS 証明書自動更新システム（update_cert）
========================================

このフォルダには、Linux Mint + Apache2 環境で
ローカル CA（localCA）を使って HTTPS 証明書を自動更新するための
スクリプトと systemd 設定ファイルが含まれています。

本教材は Inajin（InaPC Linux Lab）と
AI（Microsoft Copilot）の共同制作です。

----------------------------------------
■ 含まれるファイル
----------------------------------------
update_cert.py          … 証明書の期限を確認し、必要なら更新するスクリプト
update-cert.service     … systemd からスクリプトを実行するサービス
update-cert.timer       … 証明書チェックを自動実行するタイマー

----------------------------------------
■ 1. ファイルの配置場所
----------------------------------------

● update_cert.py
  /home/（あなたのユーザー名）/localCA/ に配置します。

  例：ユーザー名が mint の場合
      /home/mint/localCA/update_cert.py

  実行権限を付けてください：
      chmod +x /home/あなたのユーザー名/localCA/update_cert.py


● update-cert.service / update-cert.timer
  /etc/systemd/system/ に配置します。

  例：
      sudo cp update-cert.service /etc/systemd/system/
      sudo cp update-cert.timer   /etc/systemd/system/

----------------------------------------
■ 2. update-cert.service の注意点
----------------------------------------

ExecStart のパスは、あなたのユーザー名に合わせて変更してください。

  ExecStart=/usr/bin/python3 /home/あなたのユーザー名/localCA/update_cert.py

Mint のデフォルトユーザーが mint の場合：
  ExecStart=/usr/bin/python3 /home/mint/localCA/update_cert.py

----------------------------------------
■ 3. update-cert.timer の設定（重要）
----------------------------------------

update-cert.timer の OnCalendar= が「いつ実行するか」を決めます。

基本例：
  OnCalendar=daily              … 毎日 00:00 に実行
  OnCalendar=*-*-* 07:30:00     … 毎日 7:30 に実行
  OnCalendar=Mon 07:30:00       … 毎週月曜 7:30 に実行
  OnCalendar=Mon..Fri 07:30:00  … 月〜金の毎朝 7:30 に実行（推奨例）

タイマーを変更したら systemd を再読み込みしてください：

  sudo systemctl daemon-reload
  sudo systemctl restart update-cert.timer

----------------------------------------
■ 4. systemd の有効化
----------------------------------------

  sudo systemctl daemon-reload
  sudo systemctl enable --now update-cert.timer

----------------------------------------
■ 5. 動作の仕組み
----------------------------------------

・タイマーが指定時刻に update-cert.service を起動します
・update_cert.py が証明書の残り日数を確認します
・残り 30 日を切っていたら新しい証明書を生成します
・Apache を自動で reload します（停止なし）

----------------------------------------
■ 6. ログの確認
----------------------------------------

  journalctl -u update-cert.service -n 50

----------------------------------------
■ 7. 注意事項
----------------------------------------

・この教材は教育目的で自由に改変できます
・ただし、著作権表記は削除せず残してください
・localCA の秘密鍵（ca.key）は絶対に配布しないでください
・update_cert.py 内の BASE（/home/ユーザー名/localCA）は必ず自分の環境に合わせて変更してください
・miyada.home などのドメイン名は「証明書作成時に指定した CN 名」です
  （ユーザー名と一致していなくても問題ありません）

----------------------------------------
© 2026 InaPC Linux Lab
