自鯖Webサイトを常時SSL化した
ずっとやろうと思って放置し続けていたのだが、
コミケ冊子、今年やる事の一覧などに「常時SSL化対応」と書いていた筆者。
GoogleがSSLサイトの検索結果を優先すると公表したり、
世間一般の検索エンジン自体も常時SSL化してきているので、
『流石にそろそろ実装するか~』と重い腰を上げてやってみた。
ns-labの自鯖群は仮想含めて20台程動いており(2017年9月末現在)、
流石にこれ全台を切り替えるのはやりたくないので、
Internetに公開しているWebサーバのみ公的なSSL証明書に切り替えた。
全部を切り替えても良かったが、認証局のノウハウも貯めたいしオレオレは残す事に
そんでもって、結構悩んだのがワイルドカード証明書を購入するか、
Let’s Encryptでドメイン証明書で運用するかの2択。
ワイルドカード証明書を買っておくと、メールサーバとかもSSL対応出来るし美味しいのだが、
流石に年間1万払うのはしんどい事もあり、相当悩んだ結果Let’s Encryptにした。
ちなみに、Let’s Encryptも2018年にワイルドカード証明書の発行をスタートするらしいので、
発行スタートした際に改めて切り替えを検討する予定。
あと、Let’s Encryptを使う場合Certbotとかで証明書の自動更新をしておかないと、
証明書期限の関係で実運用が厳しいのだが、毎度お馴染みのperlでスクリプトを作成し、
証明書発行・ロードバランサへの転送・証明書適用の一連作業を全自動にしてみた。
………
ちゃんとしたSSL証明書を発行したなら、DNS CAAもやりたかったので、
ns-labのInternet向けDNSサーバにCAAレコードを追加。
CAAレコードにはLet’s Encryptとオレオレ認証局を追加した。
オレオレ認証局を追加するのは微妙な所もあるのだが、
実運用している場面もあるので問題なかろう。
………
ちなみに、SSL Reportを走らせて見たら『A+』の評価をゲット。
今回は本気で設計・脆弱性潰しを行いつつ、CAA対応とかオプションもやったので、
意図せずに高得点を取得出来たのかもしれない。