さくらのVPSでCentOS7のサーバーを構築する 番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する

SSL/TLSサーバー証明書を取得する場合は、個人向けの格安プランでもある程度(1000~2000円/年くらい?)は取得費用がかかります。しかし、「Let’s Encrypt」では、SSL/TLSサーバー証明書を無料で取得することができます。

もくじ

  • 番外編…IPアドレスベースSSL
  • 番外編…SNI SSL
  • 番外編…Apache再起動時に秘密鍵のパスフレーズ入力をサボる方法
  • 番外編…「Let’s Encrypt」でSSL/TLSサーバー証明書を無料で取得する
    • 「Let’s Encrypt」とは?
    • サーバー側の下準備
    • 証明書取得作業

「Let’s Encrypt」とは?

Let’s Encrypt」は、無料かつ迅速にSSL/TLSサーバー証明書を取得することができるサービスです。証明書の有効期間は90日と短いものの(更新は可能)、無料でSSL/TLSによる安全な通信を行うことができるようになるので、一考の価値はあります。必要な費用は寄付等で賄っているようです。

サーバー側の下準備

Let’s EncryptでSSL/TLS証明書を発行する場合は、サーバーに「Certbot」というプログラムを導入する必要があります。これがLet’s Encryptとの通信を行い、ドメインの認証が完了次第、証明書を発行します。この辺の仕組みは「ACMEプロトコル」に支えられているので、興味がある人は各自ググってみてください。それでは、以下のコマンドでCertbotをインストールしてください。今回は汎用性重視(WEBサーバーソフトウェアの種類にかかわらず使えるようにする…証明書を発行するだけ)で作業を行います。

また、既に済ませているとは思いますが、サーバー側でHTTPとHTTPSの通信を許可し、HTTPS化するWEBサイトのドメイン名及びドキュメントルートを確定させてください。また、HTTPS化するWEBサイトに対して.htaccessなどでアクセス規制を敷いている場合は、それを一時的に解除してください。

証明書取得作業

インストールが完了したら、証明書取得作業に入ります。以下、secure.example.netはHTTPS通信を導入するドメイン名です。


Let’s Encryptでは、秘密鍵や証明書は基本的に/etc/letsencrypt/archive/secure.example.net以下に生成され、それらの名前は証明書の更新時に書き換わります(連番管理されている)。ですが、/etc/letsencrypt/live/secure.example.netには証明書類本体へのシンボリックリンク(Windowsでいうところのショートカットみたいなもの)があるので、Apacheなどで設定を行うときには、名前が変わらないシンボリックリンクの方を指定するようにします。なお、Let’s Encryptで生成される秘密鍵にパスフレーズは設定されていないので、Apache等を再起動する時にパスフレーズを入力することはありません。

/etc/letsencrypt/live/secure.example.netには、以下のようなファイル(証明書類本体へのシンボリックリンク)があるので、Apacheなどで設定する場合にはこちらを指定します。

  • cert.pem …SSL/TLSサーバー証明書
  • chain.pem …中間CA証明書
  • fullchain.pem …cert.pemとchain.pemが一緒になったファイル
  • privkey.pem …秘密鍵

証明書の更新も同様の手順で行えます。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

Bitcoin:

Monacoin:

Litecoin: