SSL無料時代がやってきた
Let’s Encrypt
レッツエンクリプトは、通信業大手のシスコやアカマイなどがスポンサーを務める非営利団体Internet Security Research Group(ISRG)が、公共の利益のため、SSLを広く無料で利用できるよう、提供しているオープンプロジェクトです。
SEO的にもSSLは必須
Googleがすでにアナウンスしているとおり、サイトのURLをHTTPSで始まるようにすることはSEO的にも重要となります。もちろん全部のサイトがSSL化されてしまえば、意味のなくなることかもしれませんが、現段階では早めにSSL化するに越したことはありません。
タダより怖いものはない!?
Let’s Encryptをオススメする最大のポイントは何と言っても「無料」である。と、いうこと。大規模サイトならいざ知らず、中小規模のサイトでは、年間で何万円という費用がなくなるのはかなり大きいことです。
もちろんタダですので、それなりの(?)煩わしい部分もあります。
それは、SSLの有効期間が90日間だということです。
しかしこれはcronを設定して処理すればOKです。なので、デメリットと言えるようなデメリットはなく、ただただSSLが無料で利用できる。これを利用しない手はないです。
certbotをインストール(CentOS 6 系)
ダウンロード
Let’s Encryptを利用するための必須ツールです。以前はletsencryptという名称でしたが、certbotに変わりました。公式サイトに書いてあるとおり、wgetでダウンロードしましょう。
https://certbot.eff.org/
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
ホームディレクトリが散らかるのがイヤだという方は、/usr/local/srcあたりにダウンロードして、[ダウンロード先ディレクトリ]/certbot-autoにパスを通しましょう。
追記(2017/1/23):CentOS 7ではyumでインストールできるみたい
見出しのとおりなんですが、CentOS 7系では、普通にyumを使ってインストールできるようです。
$ sudo yum install -y certbot
証明書の取得からサーバー(Nginx)への設定
–standalone と –webroot
証明書作成コマンドを打つ際に–standaloneか、–webrootオプションを指定し、プラグインを選択する必要があります。違いは証明書作成の際にサーバーを停止する必要があるのかないのかぐらいです。すでにWebアプリケーションがあってからのSSL化の場合が多いと思いますので、–webrootプラグインを使用する例で説明していきます。
- standaloneプラグイン
- 証明書作成の際に、certbotに内蔵されているWebサーバーを使用します。80番ポートと443番ポートを使用するため、一旦稼働中のWebサーバーを停止させる必要があります。
- webrootプラグイン
- webサーバを停止することなく証明書の発行が可能。一緒に「-w」オプションを付与して、webサイトのドキュメントルートを指定する必要があります。
certonly
certonlyオプションを指定すると、Webサーバーに証明書をインストールすることなく、発行だけを行います。
Webサーバーへの設定は自身で行います。利用するWebサーバーによっては自動インストールされないこともあるようなので、certonlyにしておけば無難です。
以上のことから、下記のコマンドを入力します。
別の項で言及しますが、Python2.7がインストールされてなかったり、必要なPythonモジュール(私の場合はvirtualenvがないと言われました)がない場合は途中で作業が中断されますので、必要とされるモジュールをインストールしてもう一度certbotを動かしましょう。
certbot-auto certonly --webroot -w [ドキュメントルート] -d [ドメイン名]
メールアドレスの入力を求められますので、お使いのアドレスを入力してください。あとは、同意が求められるのでAgreeを選択してEnterを押すと証明書の作成が完了します。
証明書をサーバー(Nginx)にインストール
上のコマンドで作成された証明書は、
/etc/letsencrypt/live/[ドメイン名]
に保存されています。よって、Webサーバーの設定ファイルにこのパスを指定します。
server {
listen 443;
server_name ドメイン名;
ssl on;
ssl_certificate /etc/letsencrypt/live/[ドメイン名]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[ドメイン名]/privkey.pem;
}
Python2.7が必要
CentOS6系で使われているのはPython2.6
certbotはPython2.7で動いていますので、Python2.6が使われているcentOS6系では新たにインストールしないといけません。これは別にまとめてありますので、そちらをご覧ください。
SAKURAのVPSでCentOS6のPythonを2.7にアップデートする
要注意!yumはPythonで動いている!
パッケージマネージャーのyumはPythonで動いています。そのため、python2.7をインストールすると、yumのパスが書き換わっているため、これを元のPython2.6へと書き換える必要があります。
vi /usr/bin/yum
#!/usr/bin/python2.6
この辺も上記投稿にまとめてあります。
“SSLが無料で使えるCertbot(Let’s Encrypt)をNginxに投入した” への5件の返信
コメントは受け付けていません。