シェアする

Let’s Encryptを使って無料でSSL化する手順

ECや個人情報を扱うサイトはSSL化しているサイトが多いと思いますが、
個人で運用しているブログやその他のサイトについては、
SSL化しているサイトはまだまだ少ない状況です。

2017年10月からGoogleが全ての非SSLページに警告を出すようになった動きもあり、
今後はWEBサイトの常時SSL化の流れになってくるでしょう。

ただし、SSLの導入となるとそれなりのコストもあり、
個人等ではとてもお金をかけるのは躊躇する事かと思います。

そんな中、無料でSSL化できるLet’s Encryptというサービスがあり、
今回はその導入手順を紹介したいと思います。

本手順の前提条件

  • CentOS7.4
  • Apache2.4.29
    • インストールディレクトリは、/usr/local/apache/
    • ドキュメントルートは、/var/www/html/

Let’s Encryptの導入手順

# Let's Encryptの導入
curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
chmod 700 /usr/bin/certbot-auto

# www付きドメインのSSL化が不要な場合は「-d www.[SSL化したいドメイン]」を除去
/usr/bin/certbot-auto certonly -d [SSL化したいドメイン] -d www.[SSL化したいドメイン] -m [通知メールアドレス] --webroot --webroot-path /var/www/html/

上記コマンドを進めていく上でPythonなど入っていなければ、
インストールが求められますが、必要な為導入します。

完了すると、以下に証明書が作成されます。

/etc/letsencrypt/live/[SSL化したいドメイン]/

apacheの設定

上記で作成された証明書をapacheに設定します。

vi /usr/local/apache/conf/extra/httpd-ssl.conf
-----
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateChainFile /etc/letsencrypt/live/[SSL化したいドメイン]/fullchain.pem
SSLCertificateFile /etc/letsencrypt/live/[SSL化したいドメイン]/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/[SSL化したいドメイン]/privkey.pem
-----

vi /usr/local/apache/conf/httpd.conf
-----
Include conf/extra/httpd-ssl.conf
-----

/usr/local/apache/bin/apachectl configtest
systemctl restart httpd
systemctl status httpd

証明書の自動更新

Let’s Encryptは無料で導入できる事がメリットになりますが、
証明書の有効期限が90日で切れてしまいます。

証明書が切れてしまっては意味がないので、
証明書の自動更新も設定しておきます。

以下はスケジュールの例ですが、
毎週月曜日のAM10:00に自動更新のチェックを行うようにします。

crontab -e
-----
0 10 * * 1 /usr/local/src/certbot-auto renew
-----

Let’s Encryptを使ってみた感想

無料SSLなので何かと不安かなと思いましたが、
今のところは特に不安に感じる事はございません。

結構Let’s Encryptを使っているサイトも最近では、
ちょくちょく見るようになっている為、
今後のデフォルトスタンダードになりそうな感じがします。