EPEL一覧

CentOS7 + Apacheの環境にLet’s Encryptをインストールする方法

今日は、ApacheでCentOS7にLet’s Encryptをインストールする方法を紹介します。 Let’s Encryptは、Internet Security Research Group(ISRG)によって開発され、すべての主要なブラウザが認識している、完全に無料で自動化された新しい認証局です。 Webサーバー用のTLS証明書を設定することが簡単に設定することができます。
Let’s Encryptは、Mozilla、Akamai、Cisco、EFFのよう団体によってサポートされ、Linux Foundationによって管理されています。
今回のチュートリアルでは、ApacheでCentOS7にSSLの暗号化証明書をインストールし、証明書を自動的に更新するよう設定する方法を紹介します。

CentOS7 Nginx に Let's Encrypt でサイトを SSL 化して SSL 証明書の自動更新を設定します。 サイトを SSL 化するのが当たり前の時代になってきました。 Chrome は近い将来、SSL 化していないサイトを閲覧したい際に、アドレスバーで警告を表示するようです。SEO の観点では、検索結果を優遇するという話で、さらに、サイトの高速化にもなるということです。 今年からワイルドカード SSL 証明書の発行も始めました Let's Encrypt。今後、需要はますます高くなっていくでしょう。
Google Cloud DNS + Let's Encrypt でワイルドカード SSL 証明書を取得します。 ワイルドカード SSL 証明書とは、1つの SSL 証明書を、複数のサブドメインで共有できる、SSL 証明書です。 例えば、leben.mobi のワイルドワード SSL 証明書を取得した場合、その SSL 証明書は、www.leben.mobi でも使えますし、mail.leben.mobi でも ftp.leben.mobi でも使えます。サブドメインが複数ある場合は、それぞれで1つずつ取得するより、ワイルドカードの1つでいいので管理が楽です。

環境

CentOS 7.4
epel-release 7-11
certbot 0.25.1
Apache 2.4.6

Apacheの設定・インストール

yumを最新にする

yumをアップデートするために下記のコマンドを打ちます。

yum -y update
Apacheインストールする

Apacheをインストールいするために下記のコマンを打ちます。

yum -y install httpd
mod_sslをインストールします

次にmod_sslをインストールします。mod_sslは、OpenSSLを使ってApacheをSSLに対応させるモジュールです。

yum -y install mod_ssl
Apacheの設定

まず、ドキュメントフォルダを作成します。

mkdir /var/www/leben

次にバーチャルホストの設定を行う場合には、下記のようにファイルを編集します。
→ドメインはこのブログのドメインとしています。

vi /etc/httpd/conf.d/leben-site.conf

<VirtualHost *:80>
    ServerAdmin admin@test.com
    DocumentRoot "/var/www/leben"
    ServerName leben.mobi
    ServerAlias www.leben.mobi
    ErrorLog "/var/log/httpd/test.error_log"
    CustomLog "/var/log/httpd/test.access_log" common
</VirtualHost>

次にドキュメントルートにindex.htmlファイルを追加しています。

vi /var/www/leben/index.html

It works!

ドキュメントルートにindex.htmlファイルを作成すると、「It works!」と表示されたと思います。

最後、/var/www/lebenディレクトリがApacheが読み取れるように権限の変更を行います。

chown -R apache:apache /var/www/leben

certbotのインストール

まずにcertbotをインストールするには、EPELリポジトリが有効になっていることを確認してから、次のコマンドを実行する必要があります。

yum -y install epel-release

yum-utilsをインストールします。

yum -y install yum-utils

apache用のcertbotをインストールします。

yum --enablerepo=epel install certbot-apache

cerbotがインストールされました。次のコマンドで、cerbotを起動します。

certbot-apache

これで、Let’s Encryptの設定ができました。最後にLet’s Encryptは3ヵ月で切れてしまうため、3ヵ月起きにLet’s Encryptを自動更新するように設定します。

Let’s Encryptの自動更新

今回は、Let’s Encryptの更新にcrontabを使用します。

crontab -e 

* */12 * * * /usr/bin/certbot renew >/dev/null 2>&1

Let’s Encryptは、自動更新cronjobを1日2回実行することを推奨しています。これを行うには、上の行を追加し、crontabを保存して完成します。

Chrome 68(2018年7月リリース)からHTTPサイトというだけで警告表示されるようになりました。
また、SSL対応していない方は、ぜひ早めにSSL対応することをお勧めします。