ウェブサイト作成にサイトのSSL化はもはや必須!無料SSL証明書のLet’s Encrypt(レッツエンクリプト)を解説していきます!
無料SSL証明書のLet’s Encrypt(レッツエンクリプト)とは?
ウェブマーケティング・ウェブサイト運営歴15年以上!
ウェブ関連企業で勤務経験もあるみらいが解説します!
Let’s Encrypt(レッツエンクリプト)は、無料SSL証明書を発行してくれる有名なサービスです。
通常SSL証明書を発行のにはお金がかかるケースがほとんどですが、Let’s Encrypt(レッツエンクリプト)を使えば、無料でウェブサイトをSSL化できます。
SSL化できるということは、http://tk7.workではなく、https://tk7.workになるということです。
そして、最近はブラウザもhttps://で始まる、いわゆる暗号化をきちんとしているサイトなのか?という部分に厳しくなっています。
無料のWi-Fiスポットでの通信時でも、暗号化しているサイトと暗号化していないサイトでは、外部から悪意のある第3者が情報を抜き取ることができるかできないかに分かれていきます。
当然、暗号化されていないサイトにアクセスしていれば、どのサイトを見ているのか?という内容は筒抜けということになります。
今までは、ログイン画面とかIDやパスワードを入れるような場面にはSSL化が必要とされてきましたが、最近はウェブ上で閲覧するどんな情報も常時SSL化が求められるようになってきています。
そうした時代背景があり、昔は有料SSLが普通でしたが、今は無料SSLが普通に使えるようになってきています。
また、レンタルサーバーの標準機能と言っても過言ではないほど、近年急速に無料SSL機能が普及してきました。
実はレンタルサーバーを提供している会社側がSSL証明書を無償提供しているだけで、利用しているSSL証明書や認証局は様々であり、当然コストが発生している可能性もあります。
今回はその中でも最も有名なLet’s Encryptについてご紹介します。
Let’s Encrypt(レッツエンクリプト)の概要
無料のSSLサーバー証明書(以下、SSL証明書)であるLet’s Encryptは、米国の非営利団体であるISRG(Internet Security Research Group)により運営されています。
全てのWebサイトを暗号化することを目指したプロジェクトであり、2019年6月現在では世界で1億枚以上の有効な証明書を発行しています。
非営利団体ということで財務基盤に不安を覚える方もいるかもしれませんが、現在ではFacebookやシスコシステムズ、Akamai Technologies、Verizonといった数多くの大手企業に支えられています。
Let's Encryptの発行するSSL証明書
Let’s Encryptでは、90日間有効なDV(Domain Validation)SSL証明書を2つの認証方式(ドメイン認証、DNS認証)で提供しています。
SSL証明書は無料で提供されていますが、暗号強度などは一般的に販売されているSSL証明書と違いはありません。
Let’s EncryptのSSL証明書発行システムの大きな特徴は、ACME(Automated Certificate Management Environment)プロトコルと呼ばれるSSL証明書を自動発行する仕組みを利用している点です。
他の認証局とは異なり、認証してから数秒でSSL証明書が発行され、すぐにサーバーへデプロイできるという非常に高度なSSL証明書発行インフラを運用しています。
Let’s Encrypt(レッツエンクリプト)の発行するSSL証明書の有効期間は90日間です。
一般的な認証局の発行するSSL証明書は最大2年なので、それに比べると非常に短い期間しか利用できません。
多くのレンタルサーバーではLet’s Encryptが発行するSSL証明書の自動更新に対応しているため、エンドユーザーが更新の手間を考える必要はありません。
”無料”というメリットだけでなく、”更新の手間が掛からない”というメリットもあります。
実際にcertbotを利用してLet’s EncryptのSSL証明書を発行してみると、本当に一瞬でSSL証明書が発行されます。
Let’s Encrypt(レッツエンクリプト)運用時のコマンド
centos6.9
Let’s Encrypt(レッツエンクリプト)更新
/usr/bin/certbot-auto renew
Let’s Encrypt(レッツエンクリプト)の現在の状況確認
/usr/bin/certbot-auto certificates
Saving debug log to /var/log/letsencrypt/letsencrypt.log
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Found the following certs: Certificate Name: tk7.work-0001 Serial Number: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Domains: tk7.work Expiry Date: 2020-11-08 06:04:04+00:00 (VALID: 89 days) Certificate Path: /etc/letsencrypt/live/tk7.work-0001/fullchain.pem Private Key Path: /etc/letsencrypt/live/tk7.work-0001/privkey.pem Certificate Name: tk7.work Serial Number: 3f00ac88057acc43c1e3b90245c71d5c0c6 Domains: tk7.work Expiry Date: 2020-11-08 06:04:07+00:00 (VALID: 89 days) Certificate Path: /etc/letsencrypt/live/tk7.work/fullchain.pem Private Key Path: /etc/letsencrypt/live/tk7.work/privkey.pem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -外部からsslの証明書期限をチェックする
https://www.en-pc.jp/tech/checkssl.php
Let’s Encrypt(レッツエンクリプト)での、更新後はApacheの再起動は必須
service httpd restart
をしてないと、更新されないので注意
Let’s Encrypt(レッツエンクリプト)の自動化 cron設定
cron設定 crontab -e
毎月1日の午前4時に実行する
00 04 01 * * /usr/bin/certbot-auto renew && service httpd restart
Let’s Encrypt(レッツエンクリプト)期限確認
openssl x509 -in /etc/letsencrypt/live/tk7.work/fullchain.pem -noout -dates
を実行すると、以下が出ます。
notBefore=Aug 10 06:04:07 2020 GMT
notAfter=Nov 8 06:04:07 2020 GMT
notAfterがSSL証明書の期限日になります。