CentOS7でLet’s Encryptを使う方法と、自動更新

※記事内に商品プロモーションを含む場合があります

前々から気になっていたLet’s Encrypt。
ドメイン認証のSSL証明書を無料で取得出来ます。

このブログのSSL化の時は、
まだオープンして無かったので有料のSSL証明書を購入しました。

国内だとバカ高いのが多いので、海外のサイトで購入しました。

今回、別のブログを作るにあたり最初からSSL化しようと思い
さくらのVPS上のCentOS7でLet’s Encryptを使いました。

Let's Encrypt

CentOS7でLet’s Encryptを使う

Let’s EncryptはコマンドラインのみでSSL証明書の取得が可能。

方法はこちらを参考にしました。
【参考】CentOS 7 + Apache 2.4 で Let’s Encrypt の証明書を導入する手順

Let’s Encrypt で発行される証明書はDV証明書。
ドメイン認証と言われるタイプで有料のモノでも一番安いタイプ。

通販サイトなど信頼性が必要なサイトは、有料のSSL証明書を
購入した方が良いと思いますが個人サイトならDV証明書で十分です。

手順

上のサイトを参考に手順をまとめました。

openSSLと mod_sslのインストール

yum install -y git openssl mod_ssl
元々、SSL化していたのでこの手順は不要でした。

Let’s Encrypt クライアントの取得

cd /opt
git clone https://github.com/letsencrypt/letsencrypt

GitHubから Let’s Encrypt クライアントを取得し、/opt 下に配置します。

Let’s Encrypt クライアントの起動

cd letsencrypt
 ./letsencrypt-auto –help –debug

Let’s Encryptクライアントは、起動のたびに存ソフトウェアの取得やアップデートを行うので
必要な環境にインストールなどが行われます。

Let’s Encryptクライアントのインストールパスは
/opt/letsencrypt/になります。

SSL証明書の取得

SSL証明書の取得はインストールしたLet’s Encryptクライアントから行います。

コマンドは

./letsencrypt-auto certonly –standalone -d www.hogemoge.net

www.hogemoge.netは自分のドメインに直して下さい。

この後、メールアドレスの入力と約を読んだ上で同意(Agree)すれば
SSL証明書の取得が出来ます。

ここで入力したメールアドレスは緊急の通知、
鍵を紛失したときの復旧、証明書の有効期限が近付いた場合の通知に使用されます。

注意点

Webサーバが動いているとLet’s Encryptクライアントがエラーを吐く。

どうも、httpポート(80)とhttpsポート(443)をLet’s Encryptサーバとの間で
使用しているらしくApacheが動いているとエラーで証明書の取得が出来ません。

なので、Let’s Encryptクライアント起動前にApacheなどを停止する必要があります。
監視ポートの変更をコマンドラインで設定してみましたが、ダメでした。

自動更新設定

Let’s Encryptで取得した証明書、意外と有効期限が短い。
約3ヶ月です。

しかし、Cronなどを駆使すれば自動更新が可能!
ただし、ApacheなどWebサーバは落としておく必要があります。

自動更新コマンド

/bin/systemctl stop httpd ; /opt/letsencrypt/certbot-auto renew –force-renew ; /bin/systemctl start httpd

説明

複数のコマンドを1行にする時&&を使う事が多い様です。
しかし、Let’s Encryptクライアントが異常終了してhttpdの起動が行われないと
まずいので結果を無視してコマンドを実行する様にしています。

まず始めはhttpdの停止。
80番(http)と443番(https)をLet’s Encryptクライアントが使用するので
Webサーバを停止させます。

Let’s Encryptクライアントが一時的に80番ポートでサービスを起動させるので
Webサーバなどを停止してポートを開放しておかないとエラーになります。

次に、証明書更新。

ドメインの指定は必要無く、認証したドメイン全ての有効期限が
更新される様です。

最後にhttpd起動。

これをしないと、ブログやサイトにいつまで経っても繋がりません。
忘れない様にしましょう。

これを月1回程度、Cronで回しておくと勝手に更新されるので便利です。

あとがき

今後このブログのSSLの証明書もLet’s Encryptにする予定です。

今までの有料のSSL証明書だと1ドメインづつ手続きが必要ですが
Let’s Encryptなら自動更新が可能です。

便利だなと思ったら、寄付も忘れずに。
PayPal経由ですがクレジットカードで寄付出来る様です。
日本からの寄付はPayPalが受付けていないので出来ませんでした。