CentOS 8でLets Encrypt SSL証明書を使用してApacheを安全にする
ウェブサーバーのセキュリティを確保することは、ウェブサイトを公開する前に考慮すべき重要な要素の一つです。セキュリティ証明書は、ウェブブラウザからウェブサーバーに送信されるトラフィックを保護するために重要であり、その結果、ユーザーは送信されるトラフィックが安全であることを知りながら、あなたのウェブサイトとデータを交換することを促します。
ほとんどの場合、セキュリティ証明書は有料で、毎年更新されます。Let's Encrypt証明書は、サイトを暗号化するために使用できる無料のオープンな自動証明書認証局です。証明書は90日ごとに期限が切れ、完全に無料で自動更新されます。
推奨読書: CentOS 8でLet’s Encryptを使用してNginxを保護する方法
この記事では、Apacheウェブサーバー用にCertbotを使ってLet’s Encrypt証明書をインストールする方法と、その後にCentOS 8で証明書を自動的に更新するように設定する方法を説明します。
前提条件
始める前に、次のことが整っていることを確認してください:
1. Apache HTTP ウェブサーバーがインストールされ、動作している CentOS 8 サーバーのインスタンス。 Apache ウェブサーバーが稼働していることを確認できます。
$ sudo dnf install httpd
sudo systemctl status httpd
2. あなたのウェブサーバーのパブリックIPアドレスを指す完全修飾ドメイン名(FQDN)を、あなたのDNSウェブホスティングプロバイダーに設定してください。このガイドでは、サーバーのIPアドレス34.67.63.136を指すlinuxtechwhiz.infoを使用します。
ステップ 1: CentOS 8 に Certbot をインストールする
Certbotは、セキュリティ証明書のインストールを自動化するクライアントです。それはLet’s encrypt authorityから証明書を取得し、手間をかけずにあなたのウェブサーバーに展開します。
Certbotは完全に無料であり、あなたのウェブサーバーの設定に基づいて指示を生成することによって、インタラクティブな方法で証明書をインストールすることを可能にします。
certbotをダウンロードする前に、まずは暗号化された接続の設定に必要なパッケージをインストールしてください。
私たちは、RHELベースのシステム向けに高品質な追加パッケージを提供するEPELリポジトリをインストールすることから始めます:
$ sudo dnf install epel-release
次に、mod_sslおよびopensslパッケージをインストールします。
$ sudo dnf install mod_ssl openssl
すべての依存関係がインストールされたら、CertbotとCertbot用のApacheモジュールをインストールします。
$ sudo dnf install certbot python3-certbot-apache
このコマンドはCertbot、Certbot用のApacheモジュール、およびその他の依存関係をインストールします。
ステップ2:Apacheバーチャルホストを作成する
次のステップは、私たちのドメインに対するバーチャルホストファイルを作成することです – linuxtechwhiz.info。まず、HTMLファイルを置くためのドキュメントルートを作成します。
$ sudo mkdir /var/www/linuxtechwhiz.info.conf
index.htmlファイルを以下のように作成してください。
$ sudo echo “<h1>Welcome to Apache HTTP server</h1>” > /var/www/linuxtechwhiz.info/index.html
次に、以下のように仮想ホストファイルを作成します。
$ sudo vim /etc/httpd/conf.d/linuxtechwhiz.info
以下の設定を追加してください。
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
</VirtualHost>
保存して終了します。
文書ルートに対して、示された通りの権限を割り当ててください。
$ sudo chown -R apache:apache /var/www/linuxtechwhiz.info
変更を有効にするためには、Apacheサービスを再起動してください。
$ sudo systemctl restart httpd
ステップ3:CentOS 8にLet's Encrypt SSL証明書をインストールします
今、certbotを実行して、Let’s Encrypt証明書のインストールを開始してください。
$ sudo certbot --apache -d domain.com
私たちの場合、これは次のようになります:
$ sudo certbot --apache -d linuxtechwhiz.info
このコマンドは、一連のプロンプトを通じて、あなたのドメインのためにLets Encryptを設定する手助けをします。メールアドレスを必ず提供し、サービス利用規約に同意し、HTTPSプロトコルを使用したいドメイン名を指定してください。HTTPSはHTTPの暗号化されたバージョンです。
すべてがうまくいけば、あなたのサイトがLet’s Encrypt証明書を使用してセキュリティが確保されたことを知らせる祝賀メッセージが最後に届くはずです。また、あなたの証明書の有効期限も表示されます – 通常、これは展開後90日後です。
今、仮想ホストファイルに戻り、次の設定行を追加してください。
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
保存して終了します。
最終的なApache仮想ホストの設定は、次のようになります:
<VirtualHost *:443>
ServerName linuxtechwhiz.info
ServerAlias www.linuxtechwhiz.info
DocumentRoot /var/www/linuxtechwhiz.info/
<Directory /var/www/linuxtechwhiz.info/>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/www.linuxtechwhiz.info-error.log
CustomLog /var/log/httpd/www.linuxtechwhiz.info-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/linuxtechwhiz.info/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/linuxtechwhiz.info/privkey.pem
</VirtualHost>
もう一度、Apacheを再起動してください。
$ sudo systemctl restart httpd
ステップ4: Let’s Encrypt SSL証明書の確認
すべてが正常に動作しているかを確認するには、ブラウザを起動し、サーバーのIPアドレスにアクセスしてください。URLの先頭に鍵のシンボルが表示されるはずです。
詳細を得るには、鍵のシンボルをクリックし、表示されるプルダウンメニューの「証明書」オプションをクリックしてください。
証明書の詳細は次のポップアップウィンドウに表示されます。
また、あなたのサーバーをhttps://www.ssllabs.com/ssltest/でテストすることができ、あなたのサイトは示されているように‘A’の評価を得るべきです。
ステップ5: 自動更新Let’s Encrypt SSL証明書
Let’s Encryptは90日間のみ有効です。通常、更新プロセスはcertbotパッケージによって実行され、/etc/cron.dディレクトリに更新スクリプトが追加されます。このスクリプトは1日に2回実行され、有効期限が30日以内の証明書を自動的に更新します。
自動更新プロセスをテストするために、certbotを使用してドライランテストを実施してください。
$ sudo /usr/local/bin/certbot-auto renew --dry-run
エラーが発生しなかった場合、出発しても問題ないことを意味します。
これでこのガイドの終わりです。このガイドでは、certbotを使用して、CentOS 8システム上で実行されているApacheウェブサーバーにLet's Encrypt証明書をインストールおよび構成する方法を示しました。









