Let’s Encryptの導入完全ガイド【2026年版】

Let’s Encryptの導入完全ガイド【2026年版】
WebサイトのHTTPS化はもはや必須要件であり、無料でSSL/TLS証明書を発行できるLet’s Encryptを活用しない手はありません。2026年現在でも、Google ChromeやMozilla Firefoxなど主要ブラウザではHTTPサイトに対して警告表示が行われており、SEO評価にも悪影響を及ぼします。本ガイドでは、Let’s Encryptの導入から自動更新まで、実務で即戦力となる具体的な手順を網羅的に解説します。サーバーOS別にApache、Nginx、Caddyの設定方法を詳細に解説し、さらにトラブルシューティングやベストプラクティスまでカバーします。この記事を読み終える頃には、あなたのWebサイトは安全なHTTPS接続で保護され、自動更新システムも完璧に機能していることでしょう。
目次
- Let’s Encryptとは何か?メリットと仕組みを理解する
- Let’s Encrypt導入前の準備チェックリスト
- Certbotのインストール手順(Linux/Windows/macOS)
- ApacheサーバーへのLet’s Encrypt導入
- NginxサーバーへのLet’s Encrypt導入
- CaddyサーバーへのLet’s Encrypt導入(自動HTTPS)
- ワイルドカード証明書の発行と設定
- 証明書の自動更新を確実に行う方法
- よくあるトラブルとその解決策
- Let’s Encrypt導入のベストプラクティス
- Let’s Encryptに関するFAQ
- まとめ:安全なWebサイト運用のために
Let’s Encryptとは?メリットと仕組みを理解する
Let’s Encryptは、非営利団体のInternet Security Research Group (ISRG)によって運営されている、無料でSSL/TLS証明書を発行するサービスです。2016年のサービス開始以来、世界中のWebサイトで広く利用されており、2026年現在では年間数億件の証明書が発行されています。
主なメリットは以下の通りです:
| メリット | 詳細 |
|---|---|
| 無料 | 商用・非商用を問わず完全に無料で利用可能 |
| 自動化 | Certbotを使用することで証明書の発行・更新を自動化できる |
| 信頼性 | 主要ブラウザ(Chrome、Firefox、Safari)にデフォルトで信頼されている |
| 簡単な発行 | ドメイン所有者の認証を自動化し、数分で証明書を発行可能 |
| 短期有効期限 | 90日間という短い有効期限により、セキュリティリスクを最小化 |
Let’s Encryptの仕組みは、Automated Certificate Management Environment (ACME)プロトコルに基づいています。ACMEプロトコルを使用することで、ドメイン所有者の認証、証明書の発行、および証明書の更新を自動化することができます。Certbotは、このACMEプロトコルを実装した代表的なクライアントツールです。
なお、Let’s Encryptの証明書は、SHA-256アルゴリズムで署名されており、2048ビットのRSA鍵または256ビットのECDSA鍵を使用しています。これにより、現在のセキュリティ基準を満たしています。
Let’s Encrypt導入前の準備チェックリスト
Let’s Encryptを導入する前に、以下の条件を満たしていることを確認してください。これらの条件を満たしていない場合、証明書の発行に失敗する可能性があります。
必須条件
- ドメイン名の所有権:Let’s Encryptで証明書を発行するドメインの所有者であること。ドメインの所有権を証明するために、ドメイン名のDNSレコードまたはWebサーバーへのアクセスが必要です。
- 公開されたWebサーバー:ドメイン名がインターネット上で解決され、Webサーバーが動作していること。Let’s Encryptの認証局は、ドメイン所有者の認証のために、ドメイン名へのHTTPアクセスまたはDNSアクセスを行います。
- ポート80と443の開放:HTTP(ポート80)およびHTTPS(ポート443)へのアクセスが可能であること。Let’s Encryptの認証局は、これらのポートを使用してドメイン所有者の認証を行います。
- 管理者権限:サーバーに対してroot権限またはsudo権限を持っていること。Certbotを実行するためには、サーバーの設定ファイルを編集する必要があります。
推奨条件
- 固定IPアドレス:可能であれば、固定IPアドレスを使用していること。動的IPアドレスの場合、DNSの更新が必要になる場合があります。
- メールアドレスの登録:Let’s Encryptから証明書の更新通知やセキュリティに関する重要な情報を受け取るために、有効なメールアドレスを登録してください。
- バックアップの作成:既存のSSL/TLS証明書やサーバー設定のバックアップを作成してください。万が一のトラブル時に備えて、設定を元に戻すことができます。
- ファイアウォールの設定:ファイアウォールやセキュリティグループで、ポート80と443へのアクセスを許可してください。
ドメインの確認方法
Let’s Encryptは、ドメイン所有者の認証のために、以下のいずれかの方法でドメインの所有権を確認します。
- HTTP-01チャレンジ:ドメイン名の/.well-known/acme-challenge/ディレクトリに、Let’s Encryptから提供されたトークンを含むファイルを配置します。Let’s Encryptの認証局は、このファイルにアクセスしてドメイン所有者の認証を行います。
- DNS-01チャレンジ:ドメインのDNSレコードに、Let’s Encryptから提供されたTXTレコードを追加します。Let’s Encryptの認証局は、このTXTレコードを確認してドメイン所有者の認証を行います。
- TLS-ALPN-01チャレンジ:ドメイン名のポート443に対して、特定のTLS ALPN拡張を使用した接続を行います。この方法は、HTTP-01チャレンジが使用できない場合に使用されます。
一般的には、HTTP-01チャレンジが最も簡単に使用できますが、Webサーバーが動作していない場合や、特定のポートが開放されていない場合には、DNS-01チャレンジを使用することが推奨されます。
Certbotのインストール手順(Linux/Windows/macOS)
Certbotは、Let’s EncryptのACMEプロトコルを実装したクライアントツールであり、証明書の発行・更新を自動化することができます。以下に、主要なOSでのCertbotのインストール手順を解説します。
Linux(Ubuntu/…
UbuntuやDebianなどのDebian系Linuxでは、Certbotを公式リポジトリからインストールすることができます。
# パッケージリストの更新
sudo apt update
Certbotのインストール
sudo apt install certbot
Webサーバーとの連携プラグインのインストール(例:Apache用)
sudo apt install python3-certbot-apache
Nginx用のプラグインをインストール
sudo apt install python3-certbot-nginx
Certbotが正常にインストールされたことを確認します。
certbot --version
Linux(CentOS/…
CentOSやRHELなどのRHEL系Linuxでは、EPELリポジトリを有効化してCertbotをインストールします。
# EPELリポジトリの有効化
sudo yum install epel-release
Certbotのインストール
sudo yum install certbot
Webサーバーとの連携プラグインのインストール(例:Apache用)
sudo yum install python3-certbot-apache
Nginx用のプラグインをインストール
sudo yum install python3-certbot-nginx
Certbotが正常にインストールされたことを確認します。
certbot --version
Linux(その他のディス…
Snapを使用してCertbotをインストールすることもできます。Snapは、多くのLinuxディストリビューションで利用可能なパッケージ管理システムです。
# Snapのインストール(まだインストールされていない場合)
sudo apt update
sudo apt install snapd
Snapを最新の状態に更新
sudo snap refresh
Certbotのインストール
sudo snap install --classic certbot
Certbotへのシンボリックリンクの作成
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Windowsへのインストール
Windowsでは、Certbotを直接インストールすることはできませんが、Dockerを使用してCertbotを実行することができます。以下に、Dockerを使用したCertbotの実行手順を解説します。
まず、Docker Desktopをインストールします。
Docker Desktopをインストールしたら、以下のコマンドを実行してCertbotを実行します。
docker run -it --rm --name certbot \
-v "C:\certbot\etc\letsencrypt:/etc/letsencrypt" \
-v "C:\certbot\lib\letsencrypt:/var/lib/letsencrypt" \
certbot/certbot certonly
このコマンドを実行すると、Certbotが起動し、証明書の発行を開始します。証明書は、ローカルのC:\certbot\etc\letsencryptディレクトリに保存されます。
macOSへのインストール
macOSでは、Homebrewを使用してCertbotをインストールすることができます。
# Homebrewのインストール(まだインストールされていない場合)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Homebrewの更新
brew update
Certbotのインストール
brew install certbot
Webサーバーとの連携プラグインのインストール(例:Apache用)
brew install certbot-apache
Nginx用のプラグインをインストール
brew install certbot-nginx
Certbotが正常にインストールされたことを確認します。
certbot --version
Certbotの基本的な使い方
Certbotを使用して証明書を発行する基本的なコマンドは以下の通りです。
sudo certbot certonly --apache -d example.com -d www.example.com
このコマンドを実行すると、CertbotはApache Webサーバーを使用して、example.comとwww.example.comのドメイン名に対する証明書を発行します。発行された証明書は、/etc/letsencrypt/live/example.com/ディレクトリに保存されます。
Certbotの主なオプションは以下の通りです。
| オプション | 説明 |
|---|---|
| –apache | Apache Webサーバー用のプラグインを使用する |
| –nginx | Nginx Webサーバー用のプラグインを使用する |
| –standalone | Webサーバーを停止して、Certbot自身がHTTP-01チャレンジを処理する |
| –webroot | 指定したディレクトリにHTTP-01チャレンジ用のファイルを配置する |
| -d | 証明書を発行するドメイン名を指定する(複数指定可能) |
| –dry-run | Let’s Encryptのステージング環境を使用して、テスト実行を行う
Certbotを使用した証明書の発行方法については、後述の各Webサーバーのセットアップ手順で詳しく解説します。
ApacheサーバーへのLet’s Encrypt導入
Apache HTTP Serverは、世界で最も広く使用されているWebサーバーの一つであり、Let’s Encryptとの連携も非常にスムーズです。以下に、ApacheサーバーへのLet’s Encrypt導入手順を解説します。
前提条件の確認
Apacheサーバーが正常に動作していることを確認します。以下のコマンドを実行して、Apacheが起動していることを確認します。
sudo systemctl status apache2
Apacheが起動していない場合は、以下のコマンドを実行して起動します。
sudo systemctl start apache2
sudo systemctl enable apache2
また、ファイアウォールでポート80と443が開放されていることを確認します。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
CertbotのApach…
CertbotのApacheプラグインを使用すると、Apacheの設定ファイルを自動的に編集して、HTTPS接続を有効にすることができます。以下のコマンドを実行して、証明書を発行します。
sudo certbot --apache -d example.com -d www.example.com
このコマンドを実行すると、Certbotは以下の処理を行います。
- ドメイン所有者の認証(HTTP-01チャレンジ)
- SSL/TLS証明書の発行
- Apacheの設定ファイルの自動編集(HTTPS接続の有効化)
- Apacheの再起動
証明書の発行が成功すると、以下のようなメッセージが表示されます。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
- Your cert will expire on 2026-01-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option.
- To non-interactively renew *all* of your certificates, run the command:
certbot renew
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Apacheの設定ファイル…
Certbotによって自動的に編集されたApacheの設定ファイルを確認します。以下のコマンドを実行して、Apacheの設定ファイルを表示します。
sudo cat /etc/apache2/sites-available/example.com-le-ssl.conf
このファイルには、HTTPS接続を有効にするための設定が記載されています。以下に、典型的な設定例を示します。
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
この設定ファイルでは、HTTPS接続を有効にするためのSSLエンジンの設定、証明書ファイルのパス、およびドキュメントルートの設定が行われています。
HTTPからHTTPSへの…
Webサイトのセキュリティを向上させるために、HTTPからHTTPSへのリダイレクトを設定します。以下のコマンドを実行して、HTTPからHTTPSへのリダイレクトを設定します。
sudo certbot --apache -d example.com -d www.example.com --redirect
このコマンドを実行すると、CertbotはApacheの設定ファイルを自動的に編集して、HTTPからHTTPSへのリダイレクトを有効にします。以下に、典型的なリダイレクト設定の例を示します。
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com/
</VirtualHost>
Apacheの再起動
Apacheの設定ファイルを編集した後は、Apacheを再起動して設定を反映します。
sudo systemctl restart apache2
証明書の確認
発行された証明書が正常に動作していることを確認します。以下のコマンドを実行して、証明書の情報を表示します。
sudo openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -noout -text
また、Webブラウザでhttps://example.comにアクセスして、証明書が正常に動作していることを確認します。ブラウザのアドレスバーに鍵マークが表示され、証明書が信頼されていることが確認できます。
トラブルシューティング
ApacheサーバーへのLet’s Encrypt導入時に発生する可能性のあるトラブルとその解決策を以下に示します。
| トラブル | 原因 | 解決策 |
|---|---|---|
| HTTP-01チャレンジが失敗する | ポート80が開放されていない、またはファイアウォールでブロックされている | ファイアウォールの設定を確認し、ポート80を開放する |
| Apacheの設定ファイルが正しく編集されない | Apacheの設定ファイルに構文エラーがある | Apacheの設定ファイルの構文を確認し、エラーを修正する |
| 証明書の発行に失敗する | ドメイン名の所有権が確認できない | ドメイン名のDNS設定を確認し、正しく設定されていることを確認する |
| Apacheが再起動に失敗する | 設定ファイルに構文エラーがある | Apacheのエラーログを確認し、エラーを修正する |
NginxサーバーへのLet’s Encrypt導入
Nginxは、高性能で柔軟なWebサーバーであり、Let’s Encryptとの連携も非常にスムーズです。以下に、NginxサーバーへのLet’s Encrypt導入手順を解説します。
前提条件の確認
Nginxサーバーが正常に動作していることを確認します。以下のコマンドを実行して、Nginxが起動していることを確認します。
sudo systemctl status nginx
Nginxが起動していない場合は、以下のコマンドを実行して起動します。
sudo systemctl start nginx
sudo systemctl enable nginx
また、ファイアウォールでポート80と443が開放されていることを確認します。
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
CertbotのNginx…
CertbotのNginxプラグインを使用すると、Nginxの設定ファイルを自動的に編集して、HTTPS接続を有効にすることができます。以下のコマンドを実行して、証明書を発行します。
sudo certbot --nginx -d example.com -d www.example.com
このコマンドを実行すると、Certbotは以下の処理を行います。
- ドメイン所有者の認証(HTTP-01チャレンジ)
- SSL/TLS証明書の発行
- Nginxの設定ファイルの自動編集(HTTPS接続の有効化)
- Nginxの再起動
証明書の発行が成功すると、以下のようなメッセージが表示されます。
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
- Your cert will expire on 2026-01-01. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option.
- To non-interactively renew *all* of your certificates, simply run:
certbot renew
Nginxの設定ファイルの確認
Certbotによって自動的に編集されたNginxの設定ファイルを確認します。以下のコマンドを実行して、Nginxの設定ファイルを表示します。
sudo cat /etc/nginx/sites-available/example.com
このファイルには、HTTPS接続を有効にするための設定が記載されています。以下に、典型的な設定例を示します。
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
}
この設定ファイルでは、HTTPからHTTPSへのリダイレクト、HTTPS接続の有効化、証明書ファイルのパス、およびドキュメントルートの設定が行われています。
HTTPからHTTPSへの…
Webサイトのセキュリティを向上させるために、HTTPからHTTPSへのリダイレクトを設定します。CertbotのNginxプラグインを使用すると、自動的にリダイレクト設定が行われます。以下のコマンドを実行して、リダイレクト設定を確認します。
sudo certbot --nginx -d example.com -d www.example.com --redirect
このコマンドを実行すると、CertbotはNginxの設
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。




