※本記事にはアフィリエイト広告(PR)を含みます。
この記事は、無料のSSL証明書「Let’s Encrypt」を使って、あなたのサイトをHTTPS化する手順を1本で解説する完全ガイドです。当ブログに分散していた古い記事(certbot-autoなど現在は廃止された方式)を、2026年7月時点の現行手順(certbot+systemdタイマー自動更新)に全面的に書き換えて統合しました。
この記事で分かること
Let’s Encryptの基礎/certbotの現行インストール方法/Nginx・Apacheでの証明書取得/自動更新(systemdタイマー)/HTTP/2化とセキュリティ強化(A+)/常時HTTPS・www正規化のリダイレクト
Let’s Encryptとは
Let’s Encryptは、無料でSSL/TLS証明書を発行できる認証局(CA)です。ドメイン認証(DV)型で、主要ブラウザに信頼されています。証明書の有効期間は90日と短く、近年さらに短縮の方向にあるため、自動更新が前提です。マルチドメインにも対応します。
前提条件
(1) Webサーバー(Nginx または Apache)が稼働している(未構築の場合はサーバー構築ガイドを参照)。(2) 独自ドメインのDNS(Aレコード等)がサーバーのIPを向いている。(3) ファイアウォールで 80/443 が開いている。
STEP1:certbot をインストールする(現行手順)
【重要・変更点】かつて使われていた
certbot-auto/letsencrypt-autoは廃止されました(当ブログの旧記事もこの方式でした)。現在は次のいずれかで導入します。
方法A:snap(EFF推奨・多くのsystemd系ディストリで共通)
sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
方法B:OSパッケージ
# Amazon Linux 2023 / RHEL系(EPELが必要な場合あり) sudo dnf install -y certbot python3-certbot-nginx # Ubuntu 24.04 sudo apt install -y certbot python3-certbot-nginx
Apacheを使う場合は python3-certbot-apache を入れます。
STEP2:証明書を取得する
Nginxの場合(設定の書き換えとHTTPSリダイレクトまで自動でやってくれます):
sudo certbot --nginx -d example.com -d www.example.com
Apacheの場合:
sudo certbot --apache -d example.com -d www.example.com
初回はメールアドレスと規約同意を対話で入力します。複数ドメインは -d を並べます。証明書は /etc/letsencrypt/live/ドメイン/ に保存されます。
STEP3:自動更新(現在はほぼ自動)
現行のcertbotは、インストール時にsystemdタイマー(certbot.timer)を自動登録します。手動でcronを組む必要はありません。動作確認は次のとおりです。
systemctl list-timers | grep certbot # タイマー確認 sudo certbot renew --dry-run # 更新のテスト実行
旧手順との違い:以前は
cron+certbot-auto renew(Webサーバー停止→更新→起動)を手動で設定していましたが、現在は不要です。証明書の有効期間短縮の流れもあり、自動更新は必須と考えてください。
STEP4:HTTP/2化とセキュリティ強化(A+を目指す)
HTTP/2は複数リクエストを同時処理できる高速なプロトコルです。HTTPS環境で有効化します。あわせて古いプロトコルを無効化し、HSTSを付与すると評価(SSL Labs等)が上がります。
Nginx(例):
listen 443 ssl; http2 on; # 新しい記法(旧: listen ... ssl http2;) ssl_protocols TLSv1.2 TLSv1.3; # SSLv3/TLS1.0/1.1は無効 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Apache(例):
Protocols h2 http/1.1 SSLProtocol -all +TLSv1.2 +TLSv1.3 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
【要確認】推奨される暗号スイート(ssl_ciphers)は年々更新されます。最新の推奨値は「Mozilla SSL Configuration Generator」で生成して適用してください。
STEP5:常時HTTPS&www有無の統一(301リダイレクト)
http → https(Nginx):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Apache / .htaccessの場合:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
www有無もどちらかに統一(301)するとSEO上の重複を避けられます。
Windows Server / IIS の場合
WindowsのIIS環境でLet’s Encryptを自動化する手順は、別記事「Windows Server 2022 + IIS + AWS Route53でLet’s Encryptを完全自動化する」で詳しく解説しています。
まとめ
certbotの導入 → 証明書取得 → 自動更新の確認 → HTTP/2・セキュリティ強化 → 常時HTTPS化、までで無料のSSL/TLS対応が完了します。まずAWS EC2でWebサーバーを構築する完全ガイドでサーバーを用意してから本記事を進めるとスムーズです。
SSL/HTTPSを試すのに使えるサーバー
自分でcertbotを動かして試すなら、root権限で自由に設定できるVPSがおすすめです。
- XServer VPS:高性能・コスパ重視。月1,000円台〜。

- さくらのVPS:老舗で安定。学習・検証の定番。

SSL設定込みで手軽に始めたいなら、無料独自SSLが標準のレンタルサーバーも便利です。
- ConoHa WING:無料独自SSL対応・高速。初期費用無料。

- エックスサーバー:無料独自SSL標準・国内シェアNo.1。

※コマンド・仕様・推奨設定は変わることがあります。各公式ドキュメントで最新をご確認ください。

