JPRSのドメイン型SSL証明書の中間CA証明書の切り替えに伴う案内
https://jprs.jp/pubcert/info/notice/20200805-certificate-reissue.html
に気付かずにいたため、 提供していたサービスでSSL証明書が失効してしまうという事態になり、緊急対応しました。さくらインターネットでSSL証明書を発行しているのですが私が契約者でないため上記の案内に関するメールが届いていませんでした。単に以前の証明書が失効したのだから同じドメインで再発行すればいいのかと思い再発行の申し込みをすると、ドメインが重複しているためSSL証明書を新規に発行できないとのこと。既存のものが失効しているのだからキャンセルしてくれるものだと思いましたが、どうやら期限までに再発行手続きをする必要があったようです。サポートセンターからの案内でなんとか再発行することが出来ました。新規申し込みについてはキャンセルしてもらいました。(キャンセル料は発生しなかったようです。)
さて、利用者にとってはそんなことはどうでもよくとにかく使えるようにしろとの話なので、SSL設定の更新中は http から https への遷移は行わないようにしました。https だとセキュリティエラーがでてアクセスできないためです。ただ、私の環境ではchromeではダメでしたがedgeを使うとなぜかアクセスできました。とはいっても放っておいたらいずれはブラウザに関係なくhttps接続できなくなるはずです。SSL証明書再発行のため認証テキストを指定のディレクトリに配置して認証局に確認してもらう必要があります。この時 httpからhttps 遷移させたままだと確認してもらえないので注意してください。こちらで設定したとおり該当ドメインが aaa.example.co.jp だとすると関連するconfファイルで
# RewriteCond %{HTTP_HOST} !^aaa.example.co.jp\$ [NC]
# RewriteRule ^/(.*)\$ http://aaa.example.co.jp/\$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)\$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
となってる部分のコメントアウトを逆にすれば https 遷移しなくなります。
調べてみると中間CA証明書が失効してSSL障害が発生することは最近よくあるようで、例えば
が参考になりました。また、最近はセキュリティ強化の観点からSSL証明書は単年で更新する必要があるようです。(以前は2年契約できていたのですがもうできません。)個人で使う分にはSSL無しでも問題ないでしょうが、サービスとして提供する場合はSSLは必須なのでこれからは更新期限を忘れないようスケジューリングしていきたいと思います。