※記事内に商品プロモーションを含む場合があります
前々から気になっていたLet’s Encrypt。
ドメイン認証のSSL証明書を無料で取得出来ます。
このブログのSSL化の時は、
まだオープンして無かったので有料のSSL証明書を購入しました。
国内だとバカ高いのが多いので、海外のサイトで購入しました。
今回、別のブログを作るにあたり最初からSSL化しようと思い
さくらのVPS上のCentOS7で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が受付けていないので出来ませんでした。