巷で話題の「常時SSL」。なんでも、SEOに効果があるとかないとか。
つい最近 (2016年4月) に Let’s Encrypt という無料のSSL/TLS証明書発行サービスが開始されたこともあり、常時SSLに対する敷居は格段に低くなったと感じています。
そこで、当ブログ最初の記事として WordPress を常時SSL化した方法とつまずいた点についてまとめていこうと思います。
対象環境
今回作業を行った環境は以下のようになってます。
環境が違えばやることも微妙に変わってくるので、ご自身の環境に合わせて調整してください。
- ServersMan@VPS Entry プラン CentOS 7 (64bit) シンプルセット
- Apache 2.4.6
- WordPress 4.7
Let’s Encrypt について
Let’s Encrypt は総合ポータルサイトにて下記のように説明されています。
Let’s Encrypt は、認証局(CA)として「SSL/TLSサーバ証明書」を無料で発行するとともに、証明書の発行・インストール・更新のプロセスを自動化することにより、TLS や HTTPS(TLSプロトコルによって提供されるセキュアな接続の上でのHTTP通信)を普及させることを目的としているプロジェクトです。
非営利団体の ISRG (Internet Security Research Group) が運営しており、シスコ(Cisco Systems)、Akamai、電子フロンティア財団(Electronic Frontier Foundation)、モジラ財団(Mozilla Foundation)などの大手企業・団体が、ISRG のスポンサーとして Let’s Encrypt を支援しています。
なんというかもう本当にありがとうございます。
でも、こんな風に思われる方がいるかもしれません。
「無料でSSL証明書が発行されるなら、有償でSSL証明書を契約する必要ないじゃん」
ところがそんなことはないんです。
SSL証明書にはいくつかの種類があり、ドメインが存在していることを証明するだけのものから、そのドメインを所持している組織が実在していることを証明するものまであります。
この Let’s Encrypt を通して取得できるSSL証明書はあくまでドメインの存在証明しかできないので、企業のホームページなんかに利用するには向かないんです。
そういった場合には組織まで含めて証明してくれるSSL証明書をちゃんと契約して適用する必要があります。
SSL証明書の取得
さっそくSSL証明書の取得をしていきます。
まずは証明書取得に必要なパッケージを yum でインストールしていきます。
yum install -y certbot
無事インストールできたら、証明書を取得します。
この際80番ポートと443番ポートを使用するため、一度 Apache は止める必要があります。
service httpd stop
その後証明書の取得をします。
( blog.kurage.click
の部分はご自身のドメインに変更してください)
certbot certonly --standalone -d blog.kurage.click
途中メールアドレスの入力や規約への承諾がありますが、見ればわかると思います。
完了したらちゃんと証明書が出来上がっているか確認しましょう。
ls /etc/letsencrypt/live/blog.kurage.click cert.pem chain.pem fullchain.pem privkey.pem
リストに表示されればOKです。
Apache への適用
無事証明書が出来上がっていることが確認できたら、Apache に設定してあげましょう。
vi /etc/httpd/conf.d/ssl.conf
■ /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/letsencrypt/live/blog.kurage.click/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/blog.kurage.click/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/blog.kurage.click/chain.pem
ついでに、全てのページが https で表示されるよう設定もしておきましょう。
■ /etc/httpd/conf.d/wordpress.conf (または対応するファイル)
ServerName blog.kurage.click; Redirect "/" "https://blog.kurage.click/" DocumentRoot /var/www/wordpress
ちなみに、いろいろなところで rewrite を設定して強制的に https に飛ばす方法方法が紹介されていましたが、私の環境ではうまくいきませんでした。
Apache のバージョンの問題なのか、はたまた設定の仕方が間違っていたのか・・・。
設定が完了したら Apache を起動します。
service httpd start
ブラウザから http でアクセスして、https にリダイレクトされればおしまいです。
おわりに
この先お問い合わせフォームだったりログインが必要なページだったりを設置することも見越して先にSSL対応を行いましたが、思ったよりもすんなり導入することができました。
無料のSSL/TLS証明書発行サービス、これを機に導入してみてはいかがでしょうか。
コメント