Cloudflare + Let’s Encrypt + macOSでの自宅サーバー運用完全ガイド

はじめに

本記事では、macOSで自宅サーバーを運用している方向けに、Cloudflareを使ったドメイン管理、Let’s EncryptによるSSL証明書の自動更新、VPNやSSH接続のためのサブドメイン設定、メールサーバー連携までを、トラブルシューティングを交えて紹介します。


1. Cloudflare でサブドメインを設定して VPN や SSH を使えるようにする

❓ 問題:Cloudflare経由でVPNやSSHが使えない

Cloudflareのプロキシ(オレンジの雲)がオンだと、HTTPS以外の通信(SSH, VPN, SMTPなど)が遮断されます。

✅ 解決策:

  • CloudflareのDNS設定で、該当サブドメイン(例:vpn.kiwamaqs.com)を追加
  • プロキシをOFF(灰色) にすることで、直接通信可能に
  • VPNクライアントでは Endpoint = vpn.kiwamaqs.com:51820 のように指定


2. Let’s Encrypt 証明書の取得と自動更新(Cloudflare DNS認証)

❓ 問題:macOSでpipが動かずプラグインが使えない

✅ 解決策:

  • brew install certbot
  • brew install pipx && pipx install certbot && pipx inject certbot certbot-dns-cloudflare
  • ~/.secrets/cloudflare.ini にAPIトークンを保存し、パーミッションを600に

✅ 実行コマンド例:

~/.local/bin/certbot certonly \
  --dns-cloudflare \
  --dns-cloudflare-credentials ~/.secrets/cloudflare.ini \
  -d kiwamaqs.com -d www.kiwamaqs.com

3. Apache + Certbot の自動更新構成

❓ 問題:証明書更新後にApacheが再起動されない

✅ 解決策:

  • certbot renew --deploy-hook "sudo apachectl graceful"
  • visudo で apachectl をNOPASSWD許可
  • cron に登録:
0 4 * * * ~/.local/bin/certbot renew --quiet --deploy-hook "sudo /usr/local/bin/apachectl graceful"

4. Postfix / Dovecot 連携(メールサーバーの証明書)

❓ 問題:mail.kiwamaqs.com を更新するには Apache 停止が必要

✅ 解決策:

  • certbot renew の前に apachectl stop
  • --deploy-hook に postfix reload と doveadm reload を含むスクリプト

✅ スクリプト例:/usr/local/bin/mail-cert-reload.sh

#!/bin/bash
sudo /usr/local/bin/apachectl start
sudo /usr/sbin/postfix reload
sudo /usr/bin/doveadm reload

おわりに

このように、自宅サーバーでCloudflareとLet’s Encryptを組み合わせることで、安全かつ自動化されたSSL/TLS環境を構築できます。トラブルシューティングを通じて、より堅牢な構成を目指しましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.