無料のSSLサーバ証明書 Let’s Encrypt でサイトをHTTPSにする

Pocket

GoogleがSEOの優遇措置としてサイトSSL化を公表してから大分経ちますが、HTTPSで運用されているサイトやブログはそんなに増えていない印象です。

サイトをHTTPSで運用するにはSSLサーバ証明書が必要ですが、これには費用が発生します。しかも結構高い。個人でブログを運営している人などには費用が発生する時点で躊躇われる点ではないでしょうか。

この記事で紹介するLet's Encryptは一部制限がありますが無料で使用することができます。


ちなみに以下が記事作成時(2016/09/17)のSSLサーバ証明書(1年)を取り扱っている会社の価格比較です。

ドメイン認証 企業認証 EV認証
Symantec(旧ベリトランス) 取扱なし 81,000 円 162,000 円
Cybertrust 取扱なし 75,000 円 150,000 円
GeoTrust 31,300 円 55,000 円 115,200 円
GlobalSign 34,800 円 59,800 円 128,000 円
ラピッドSSL(GeoTrust) 4,300 円 取扱なし 取扱なし

個人であれば、企業認証やEV認証は必要ありませんが、ドメイン認証だとしてもどこも高いです・・・。唯一、GeoTrust社のラピッドSSLであれば個人でも購入できるかなという金額で、サーバのホスティング業者によっては値引きもしています。

そこで、今回紹介するLet's Encryptです。Let’s Encryptを運営しているISROは「ISROの使命は、インターネット通信の安全を確保するため、経済、技術、教育に関する障壁を低くすることです。」という理念のもと活動しています。

ISRG’s mission is to reduce financial, technological, and education barriers to secure communication over the Internet.

Let’s Encrypt Internet Security Research Group (ISRG)

Let’s Encryptは無料で使用することができますが、SSLサーバ証明書の取得および証明書には以下の制限があります。

  • ドメインを取得していること
  • サイトが公開されていること
  • サーバのroot権限が必要なこと
  • 現時点ではLinux/BSD系のサーバのみサポートしていること
  • ドメイン認証型のみの提供であること
  • 1週間で発行できる証明書はサブドメインを含め20個までであること

他にもいくつかありますので、英語のページですが詳細はRate Limitsを参照ください。

Let’s Encryptの準備

Let’s Encryptには様々なサードパーティ製のインストーラがありますが、公式標準の方法で行います。
また、以下の方法はOSを選ばず、Apache HTTPDNginxをソースからインストールした場合でも有効です。

epel-releasecertbotyumでインストールします。

Let’s Encryptで証明書を生成

Let’s Encryptを使用して証明書を作っていきます。
以下のコマンド実行すると、証明書を作成するための画面が表示されます。

証明書をウェブで使用するか、スタンドアローンで使用するかを確認されるので、1webrootを指定してOKを押します。
上下キーで1、2を選択でき、左右キーでOK、Cancel、More Infoを選択できます。OK等を選択する場合はエンターキーを押します。
lets_encrypt_install_01

次の画面で、使用するドメイン名をカンマまたはスペース区切りで入力し、OKを押します。
lets_encrypt_install_02

新規で証明書を作成するので、1のEnter a new webrootのままで、OKを押します。
lets_encrypt_install_03

ディレクトリが表示されますので、ドキュメントルートを入力します。
lets_encrypt_install_04

これが完了すると、/etc/letsencrypt/live/{ドメイン名}/ディレクトリに秘密鍵と公開鍵が作成されます。

Let’s Encryptで生成した証明書の適応

Apache HTTPD の場合
chain.pemprivkey.pemを使用します。
fullchain.pemprivkey.pemを使用します。
どうもchain.pemだと、Androidで「プライバシーが保護されません」というエラーが発生するようなので、fullchain.pemを使用します。
Nginx の場合
fullchain.pemprivkey.pemを使用します。

Let’s Encryptで生成した証明書の更新

以下のコマンドを実行すると、証明書を一括で更新することができます。

初回の登録が完了したら、このコマンドをcrontab/etc/crontabに登録すれば自動的に証明書が更新されます。

まとめ

以上でLet’s Encryptを使用してSSLサーバ証明書を作成し、サイトをHTTPSで公開することができます。

個人でブロクを公開している人や、私と同じような技術屋、フリーランスの方で費用のない顧客に対して提案できればいいかなと思います:)

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です