Let's Encryptとは?安全性や発行・自動更新方法を紹介
常時HTTPS(SSL)化の動きは年々高まっていますが、常時HTTPS化には多額の費用がかかるために手を出せずにいるという方は多いのではないでしょうか。しかしLet's EncryptのSSLサーバー証明書であれば、無料で発行できるだけでなく、面倒な証明書の更新を自動化することが可能です。今回は、Let's EncryptのSSLサーバー証明書の種類やメリット、安全性を解説した上で、Let's Encryptのインストール方法と自動更新の設定方法を紹介します。
ハイブリッド型受講を可能に。医療団体に特化した研修管理システム。
https://manaable.com/
manaable(マナブル)は、利用ユーザー数25万人を突破した医療団体向け研修管理システムです。会員や研修から決済・受講・アンケートまで、研修管理に必要な機能を網羅。あらゆる業務の一元管理を可能にしたシステムだからこそ、お客様に合わせた革新的で最適な研修体制をご提供します。
目次
- Let's Encryptとは?
- Let's EncryptのSSLサーバー証明書の種類
- Let's Encryptのメリット
- Let's Encryptの安全性
- Let's Encryptの証明書インストール方法
- Let's Encryptの自動更新の設定方法
- まとめ
Let's Encryptとは?
Let's Encrypt(レッツ・エンクリプト)とは、アメリカ・カリフォルニア州の公益法人であるインターネット・セキュリティ・研究グループ (Internet Security Research Group; ISRG)が運営する無料のSSLサーバー証明書の認証局です。SSLサーバー証明書とは、WebサイトをHTTPSという暗号化通信を使って公開するSSL化を行い、加えてWebサイトの所有者の実在や信用を保証するための電子証明書を指します。
かつてはWebサイトをHTTPS化すること自体が特殊なケースであったため、SSLサーバー証明書の承認手続き・発行・更新などに費用が発生するのが一般的でした。しかし、近年のインターネットセキュリティへの市場の関心の高さから、主要Webブラウザの開発元がHTTPS通信を使ったWebサイト提供を原則基本とするようになりました。
そして、その動きを迅速に世界中に広めなければならないと公共の利益のために立ち上がったMozilla、電子フロンティア財団、ミシガン大学の有志によって、このLet's Encryptが誕生しました。その後、国際的なインターネット関連団体やインターネット大手各社からの支援を受けることとなります。
Let's Encryptは、このような経緯でインターネット業界全体からの支援で生まれた認証局ですので、主要Webブラウザのサポートも素早く、すでに豊富な導入事例があります。2020年6月3日時点で有効な証明書はおよそ1億3600万件でした。
Let's EncryptのSSLサーバー証明書の種類
Let's EncryptのSSLサーバー証明書の種類はドメイン認証です。
ドメイン認証とは?
ドメイン認証は、他のSSLサーバー証明書の種類と比較すると、認証にかかる手続きが容易な認証で、個人のWebサイトが取得することも可能です。ドメイン認証を取得していると、その証明を受けた個人・法人が、対象のWebサイトを確かに所有しているということを証明できます。
他のSSLサーバー証明書の種類
SSLサーバー証明書には、ドメイン認証の他に組織(OV)認証、EV認証があります。それぞれの認証とドメイン認証の違いを紹介します。
組織(OV)認証とは?
組織(OV)認証は、Webサイトのドメインを保有する組織の法的実在性を確認した上で発行される認証です。ドメイン認証は個人・法人問わず、発行対象者がWebサイトを所有していることを証明するのに対し、組織認証はドメイン認証に加えて、さらに発行対象者である法人が法的に実在していることも証明します。個人が取得することはできません。
EV認証とは?
EV認証は、SSLサーバー証明書の中で最も手続きが厳しい認証です。組織の法的実在性だけでなく物理的実在性の確認も含まれ、組織の創立から時間が経っていない企業は追加で調査が行われるなど、他の認証に比べて発行に時間を要します。
SSLサーバ証明書の暗号化強度の違い組織認証やEV認証に比べると、ドメイン認証はセキュリティ面が不安だと思う人もいるかもしれません。しかし上述の通り、これらの種類の違いは、発行対象者のどの属性まで保証するかという認証手続きの内容の違いです。暗号化の方法や強度は、Webサーバーの設定であるので、どの種類のSSLサーバー証明書を使おうと、実際の通信暗号化の手法や強度とは関係がありません。
Let's Encryptのメリット
Let's Encryptのメリットは主に3つあります。
1. 無料でSSLサーバー証明書を発行できる
これまでSSLサーバー証明書の発行には数千円〜数十万円の費用がかかることが一般的でしたが、Let's EncryptはSSLサーバー証明書を無料で発行できます。では、どうしてLet's Encryptは無料で提供し続けられるのでしょうか。その理由は3つあります。
公益法人として認められているから
まず1つ目は、Let's Encryptの運営法人が公益法人として認められているからです。運営法人であるインターネット・セキュリティ・研究グループは、カリフォルニア州の公益法人(パブリック・ベネフィット・コーポレーション:PBC)として登記されています。そのため、資金や利益を、株主や社員への配分ではなく公益目的である無料のSSLサーバー証明書の発行に使えます。
大手グローバル企業から出資を受けているから
2つ目は、その資金を多くの大手グローバル企業から出資してもらっているためです。出資している企業としては以下のような企業が挙げられます。
上記の他にも海外の大手企業やインターネット関連団体が数多く出資しています。ユーザーのセキュリティやプライバシーを守るための動きに世界が関心していることが分かります。
SSLサーバー証明書の発行・更新作業を自動化したから
また、Let's Encryptが無料でSSLサーバ証明書を発行できる3つ目の理由は、SSLサーバー証明書の認証局の立場からも負担になっていた証明書の発行・更新作業を自動化したからです。自動更新については後ほど紹介します。
2. SSLサーバー証明書の更新を自動化できる
Let's EncryptのSSLサーバー証明書は有効期限が90日間と他の証明書に比べて短いですが、SSLサーバー証明書の更新を自動化することができます。そのため、一度自動更新を設定してしまえば有効期限を気にすることも、面倒な更新作業を行うことも必要ありません。
3. ワイルドカードが発行できる
Let's Encryptは無料の証明書でありながら、ワイルドカードの発行ができます。ワイルドカードとは、サブドメインが同じWebサイトのSSLサーバー証明書をまとめて発行する仕組みです。
企業がWebサイト複数の異なるWebサイトを持っていることは多いです。しかしそれらのWebサイトはドメインがそれぞれ違うために、Webサイトの数だけSSLサーバー証明書を発行する必要があります。
しかしワイルドカードであれば、同じサブドメインを「*」(アスタリスク)で表記して登録するだけで、1通のSSLサーバー証明書だけで全てのサブドメインをSSL化できます。ワイルドカードを使用すると、有効期限の管理や更新の手続きが一括になり、Webサイトの全ページをSSL化する常時SSL化対応が容易にできます。
Let's Encryptの安全性
Let's Encryptの他のメリットとして、安全性についても紹介します。Let's EncryptのSSLサーバー証明書は無料で発行できるために、安全性に不安を感じる人もいるかもしれません。しかし、Let's Encryptは主に以下の3つの点において安全であるといえます。
1. 出資元が権威あるグローバルIT企業である
先ほど紹介したように、Let's Encryptは数多くの権威あるインターネット関連組織の支援によって成り立っています。そのため、最先端の現場が求める最新のアップデートが行われるだけでなく、急にバージョンアップがされなくなるといったリスクも低いと考えられます。
2. バージョン・情報を最新にできる
Let's Encryptは有効期限が短いために頻繁にバージョンや情報が更新され、最新になっているという特徴があります。先ほど紹介したように、一般的にLet's Encrypt以外が発行している証明書の有効期限は一般的に最大約2年(約27ヶ月)であるのに対し、Let's Encryptの発行する証明書の有効期限は90日間と短いです。
有効期限が短いことはデメリットのように見えますが、言い換えれば他の証明書は有効期限が切れるまでの1年間更新されることはほとんどないのに対して、Let's Encryptは頻繁に情報が更新され、アップデートにも即座に対応できるので、むしろ安全性はより高いと考えられます。
3. リスクを最小限に減らせる
Let's Encryptは1〜2個のコマンドを入力するだけですぐに証明書を発行・更新できるので、情報漏洩などの被害を最小限に抑えられます。つまり、もしもセキュリティに関わる何らかのトラブルで情報が漏洩してしまったり、誤ってSSLサーバー証明書を発行してしまっていても、迅速に証明書を入れ替えることができるということです。
逆に、認証手続きの複雑な証明書や有効期限の長い証明書だと、万一の際の対応に手間がかかってしまうので、Let's Encryptの証明書の方が被害を最小限にできるといえます。
Let's Encryptの証明書インストール方法
では、Let's EncryptのSSLサーバー証明書をインストールしてみましょう。Let's Encryptの証明書インストールをサポートしてくれるCertbot(サートボット)と呼ばれるツールを使用します。
1. Certbot公式サイトにアクセスする
Certbotの公式サイトを開き、下の画像の赤枠部分に自身の環境を入力すれば、Let's Encryptの証明書をインストールする際に必要なコマンドが確認できます。
2. Certbotをインストールする
それでは、実際にCertbotで自身の環境でのコマンドを調べてみましょう。今回は、以下の環境におけるLet's EncryptのSSLサーバー証明書の発行方法をCertbotに沿って紹介します。
- Software(Webサーバーソフト):Apache HTTP Server
- System(OS):CentOS/RHEL 8
SSLサーバー証明書を発行するために、まずは指示に従いながらCertbotをインストールしましょう。
1. サーバーマシンにSSH接続する
まず、証明書発行前のWebサイトのサーバーマシンにSSH接続します。
2. EPELリポジトリを有効にする
次に、Enterprise Linuxの追加パッケージであるEPELリポジトリを有効にします。EPELリポジトリを有効にする方法は、Fedora Wikiの説明を参照してください。
3. Certbotをインストールする
以下のコマンドを実行すると、Certbotをインストールできます。
- $ sudo dnf install certbot python-certbot-apache
3. Let's EncryptのSSLサーバー証明書を取得する
では、Certbotで以下のコマンドを実行し、SSLサーバー証明書を取得しましょう。途中いくつか質問が表示されるので、指示に従って回答を入力してください。
- $ sudo certbot --apache
ちなみに、以下のコマンドを選択すると、Apache HTTP Serverへの設定はせずに、SSLサーバー証明書の取得だけを行えます。
- $ sudo certbot certonly --apache
4. SSLサーバー証明書を確認する
SSLサーバー証明書が無事に発行できたかどうかは、アドレスバーの左にある南京錠マークをクリックすることで確認してください。確認方法の詳細は以下の関連記事を参照してください。
WebMedia参考記事
【EV認証とは】取得方法や企業認証との違い・確認方法を紹介
https://www.itra.co.jp/webmedia/what_is_ev_ssl.html
近年はWebサイトをSSL化する企業が増えています。SSLについて調べていくと、認証の厳格さによってSSLに必要なSSL...
5. リダイレクトの設定をする
SSLサーバー証明書を発行すると、ページのURLが「http://」から「https://」に変化します。そのため、ユーザーや検索エンジンがSSL化前の「http://」ページにアクセスしても「https://」ページに強制的に移動させるリダイレクトを設定する必要があります。リダイレクトの設定方法については以下の関連記事を参考にしてください。
WebMedia参考記事
Webサイトリニューアル後のSEO対策!301リダイレクトの基本と設定方法
https://www.itra.co.jp/webmedia/301-redirect.html
Webサイトをリニューアルした際にURLが変更されたとき、リダイレクトの設定を忘れていませんか?使わなくなったURLを残...
Let's Encryptの自動更新の設定方法
Let's Encryptがインストールできたら、先ほどメリットで紹介した自動更新の設定を行いましょう。今回は先ほどのインストール方法の際と同じく、WebサーバーソフトがApache、OSがCentOS/RHEL 8の環境における自動更新の設定方法をみていきます。
Certbotに表示されたコマンドを実行する
Let's Encryptの更新を自動化するために必要なコマンドは、先ほどインストールしたCertbotで確認できます。今回の環境の場合は、以下のようなコマンドが表示されました。
- $ echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
上記のコマンドを実行すると、毎日0時と12時に自動でSSLサーバー証明書を更新してくれます。
このコマンドは、Cronと呼ばれるコマンドを指定の時間で実行するスケジューラーにpython -c以下のPythonスクリプトと、certbot renew -q の自動更新コマンドを毎日0時と12時に実行するよう指示しています。
これでLet's EncryptのSSLサーバー証明書の自動化は完了です。ただし、SSLサーバー証明書をインストールしたからといって、Webサイトが100%安全になったわけではありません。特に信用が重要である法人サイトやネットサービスでは、証明書のインストール以上に高度なセキュリティ対策が必要となります。
自分ですべての設定を調べて行うことが不安な場合は、WebMediaを運営するITRA株式会社のように、Let's Encryptの導入実績も豊富なWeb制作会社に依頼することもおすすめです。
まとめ
今回は、Let's Encryptのメリットや安全性、インストール方法や自動更新の設定方法を紹介しました。Let's Encryptはアメリカを中心としたグローバルサービスであり、英語が共通語となっているような海外に比べると日本ではあまりメリットが知られていないのが現状です。
しかしWebMediaを運営するITRA株式会社では、数多くのLet's Encryptの導入経験があります。それは、ITRAの所属するIBJグループがWebの世界標準団体であるW3Cメンバーであることやインド支店でIT開発を行っていること、社内に英語に精通した技術者がいることから、ITRAには日本ではまだ広まっていないグローバルな最新のIT情報・手法を積極的に日本のお客様へご紹介しているためです。
またITRAのスタッフは、グループ会社である日本初のWeb専門のスクール、インターネット・アカデミーの講師経験があります。そのため、ITに関する難しい内容をわかりやすく噛み砕いて説明できる社員が数多く在籍していますので、最先端のグローバル企業として優良な海外のサービスを安心して導入していただけます。Let's Encryptの導入を検討の方は、お気軽にお問い合わせください。
この記事の著者
ITRA株式会社
官公庁や大手企業を中心とした大規模なWebサイトを総合的にプロデュースするWeb制作会社。デザインからシステム、サーバーまでWebサイトに関わるお客様の悩みを解決します。