SSL証明書の作成(Let's Encrypt)

動作確認済みシステムDebian 11

インターネット上での盗聴や改竄を防ぐ方法として、SSLが使われています。
SSLは、クライアントとサーバとのデータ通信を暗号化します。
SSLを導入するには、SSLサーバ証明書をサーバにインストールする必要があります。
SSLサーバ証明書は、信頼のおける第三者機関、認証局によって、ウェブサイトの運営者が正しい運営者であるか、審査を行なってから発行されます。
SSL証明書を取得するために、費用を支払う必要があることが多いですが、Let's Encryptでは、無料でSSL証明書を取得することができます。
有効期間は90日間です。

Let's EncryptからSSL証明書を取得するために、まずcertbotをインストールします。

apt install certbot

certbotコマンドを使って、証明書を取得します。

以下は、シングルタイプの証明書の取得です。

certbot certonly --manual --preferred-challenges dns-01 -d example.com -m administrator@example.com --agree-tos

以下は、マルチドメインタイプの証明書の取得です。-dオプションを複数指定しています。

certbot certonly --manual --preferred-challenges dns-01 -d example.com -d www.example.com -m administrator@example.com --agree-tos

以下は、ワイルドカードタイプの証明書の取得です。ワイルドカード証明書の場合は、DNS-01 を使用する ACMEv2 プロトコルでの認証を受ける必要があります。

certbot certonly --manual --server https://acme-v02.api.letsencrypt.org/directory --preferred-challenges dns-01 -d *.example.com -d example.com -m administrator@example.com --agree-tos

--preferred-challengesオプションで指定できるドメイン使用権の認証方法には、HTTP(http-01)、HTTPS(tls-sni-01)、DNS(dns-01)の3種類を指定できます。ワイルドカード証明書については、前述のとおり、DNS-01を指定する必要があります。

DNSを利用する場合、DNSサーバで指定された内容のTXTレコードを登録した後、浸透を待ってから進める必要があります。

発行された証明書は、/etc/letsencrypt/live/example.com/に格納されます。

あとは、Apache2やDovecot、PostfixなどにSSLの設定を行うことになります。