Let's EncryptによるSSL適用
Let's Encryptは、無料でSSLサーバー証明書を提供してくれるは、2016年4月12日に正式サービスとなり、CiscoやHP Enterprise等がスポンサーとなり運営されています。 Let's Encryptで発行したSSLサーバー証明書は、90日毎に更新する必要がありますので、UbuntuやCentOSといったLinux系では、cronを用いて定期的に更新処理を実行すると良いでしょう。
Let's Encryptの導入
Mauticを導入したサーバーに対して、ソースからインストールします。
# cd /usr/local/src/
# mkdir cert
# cd cert
# git clone https://github.com/certbot/certbot
# cd certbot/
# ./letsencrypt-auto
./letsencrypt-auto を実行すると、SSLサーバー証明書の取得とMauticで使用しているApacheサーバーへの設定を自動で行います。ここでは、ドメインとして「mautic.kolinzlabs.com」を使用しています。
SSLサーバー証明書を適用するドメインを入力します。
証明書更新などに用いるメールアドレスを登録します。
Agree を選択して利用規約に同意します。
HTTPとHTTPSの両方を使用できた方が良いので、Easy を選択します。 HTTPSのみであれば、Secure を選択してください。
処理が完了しますと下図のように表示されます。無事設定されたか実際にアクセスして確認してみましょう。
自動更新の設定
Let's EncryptのSSLサーバー証明書の有効期間は90日のため、90日以内に更新処理が必要です。そこでシェルスクリプトを作成し、有効期間延長のための更新処理を毎月行うように設定します。
/usr/local/src/cert に移動します。 nano renew_cert.sh で、証明書更新用のシェルスクリプトを作成します。
-- renew_cert.shの中身 --
#! /bin/bash
# Apacheの停止
service apache2 stop
# 証明書の強制更新
cd /usr/local/src/cert/certbot
./letsencrypt-auto renew --force-renew
# Apacheの起動
cd /home/
service apache2 start
--- ここまでをコピペして使用 ----
chmod a+x により実行権限を付与します。
chmod a+x /usr/local/src/cert/renew_cert.sh
crontab -e で、毎月1日午前3時に証明書更新用のシェルスクリプトの自動実行を行うように記述します。
* 3 1 * * root /usr/local/src/cert/renew_cert.sh