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は、非営利団体の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は、ドメイン所有者の認証のために、以下のいずれかの方法でドメインの所有権を確認します。

  1. HTTP-01チャレンジ:ドメイン名の/.well-known/acme-challenge/ディレクトリに、Let’s Encryptから提供されたトークンを含むファイルを配置します。Let’s Encryptの認証局は、このファイルにアクセスしてドメイン所有者の認証を行います。
  2. DNS-01チャレンジ:ドメインのDNSレコードに、Let’s Encryptから提供されたTXTレコードを追加します。Let’s Encryptの認証局は、このTXTレコードを確認してドメイン所有者の認証を行います。
  3. 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の主なオプションは以下の通りです。

Let’s Encryptのステージング環境を使用して、テスト実行を行う
オプション説明
–apacheApache Webサーバー用のプラグインを使用する
–nginxNginx Webサーバー用のプラグインを使用する
–standaloneWebサーバーを停止して、Certbot自身がHTTP-01チャレンジを処理する
–webroot指定したディレクトリにHTTP-01チャレンジ用のファイルを配置する
-d証明書を発行するドメイン名を指定する(複数指定可能)
–dry-run

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は以下の処理を行います。

  1. ドメイン所有者の認証(HTTP-01チャレンジ)
  2. SSL/TLS証明書の発行
  3. Apacheの設定ファイルの自動編集(HTTPS接続の有効化)
  4. 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は以下の処理を行います。

  1. ドメイン所有者の認証(HTTP-01チャレンジ)
  2. SSL/TLS証明書の発行
  3. Nginxの設定ファイルの自動編集(HTTPS接続の有効化)
  4. 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編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。
ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営