無料でSSL証明書!

Let's Encrypt

Let’s Encrypt

追記(重要):let’s encrypt が facebookアプリでエラー!?

ブログ書くならやっぱり暗号化しないとね!

ってことで、以前から取得してみたかった無料のSSL証明書を発行してみようと思います!

ちなみに、さくらインターネットのブログを参考にしています。
ぶっちゃけ、そっちを見てもよいかと。

参考サイト:Let’s EncryptのSSL証明書で、安全なウェブサイトを公開

前提

Let’s Encryptでは外部からアクセスできるドメインを指定する必要があります。

そのため、DNSの設定などは早めに完了しておくようにしましょう。

証明書の発行

実行するコマンドはたったのこれだけ

curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto
chmod 700 /usr/bin/certbot-auto
certbot-auto certonly --webroot -w /var/www/blog/webroot -d example.com --email example@example.com

ちょっと説明すると

curlでエージェントのインストール

Let’s Encryptではサーバーにエージェントをインストールすることで、SSLの発行と更新を自動化しています

エージェントはLet’s Encryptで公開されていているのでcurlやwgetなどで取得します。

成功した時のメッセージ、取得し忘れた><

chmodでパーミッション設定

root権限のみ参照・更新・実行権限を付与しています。

更新時にもエージェントを実行する必要があるので実行権限の付与をお忘れなく。

certbot-auto エージェント実行

certbot-autoの初回実行時にはいろいろとライブラリをインストールする必要が出てきます。
メッセージに従って、yes だの agreeだのしておきましょう。

パラメータの説明をしておくと・・・

certonly 証明書を取得または更新するが、インストールしない・・・らしい
これとは別にrunというのがあり、こちらはインストールするらしいのだが、さくらのぶろぐでは発行のみだったので、当ブログでもこちらを採用。
–webroot 「外部からアクセスすることで、サーバーの存在を確認する方法」を指定
-w ドキュメントルートをしてい。
ここで指定したパスの配下に確認用のファイルが設置される
-d ドメイン名
–email 証明書の期限切れなどの通知を受け取るメールアドレス。
とのことなのだが、helpにはのってないなぁ・・・
とりあえずエラーにはならないので、さくらに倣って指定しておく

このほかにもいくつかパラメータがあるので、興味がある人は–helpで確認しましょう。

Webサーバーの設定

* 2017年11月21日 nginxの設定を追記

バーチャルホストのSSL証明書の部分に下記3行を追記して再起動。

Apacheの設定

※apache2.2

SSLCACertificateFile    /etc/letsencrypt/live/example.com/chain.pem
SSLCertificateFile      /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt/live/example.com/privkey.pem

nginxの設定

ssl_certificate にcert.pemの記述を紹介しているサイトを良く拝見しますが、中間証明書について調べていたらこんな情報があったため、fullchain.pemを記述しています。

NginxでLet’s Encryptを使うためのメモ書き | work.log

ssl_certificate            /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key        /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate    /etc/letsencrypt/live/example.com/chain.pem;

cronの設定

cronには下記のとおり設定

  50   3    */10 *    *    bash /var/www/blog/bin/update_ssl.sh >>/var/www/blog/logs/cli-debug.log 2>&1

update_ssl.shの中身は下記のとおり

#!/bin/bash
certbot-auto renew --post-hook "/etc/init.d/httpd restart"

シェアする

  • このエントリーをはてなブックマークに追加

フォローする