2016年5月9日月曜日

SSLVerifyClientで痛い目にあった話

SeekGeeksをMacのSafariで見ようとすると、エラーが起きて見れない(NSURLErrorDomain)状態になっていたのを昨日解消しました。
ちなみにChromeでも、証明書選択ダイアログが出て、「OK」を押すとエラー、「キャンセル」を押すと表示されるって状態になってました。。
事象は認識してたんですが、一度キャンセルを押すとChromeを再起動するまで同じダイアログが出ないので気付けず。。
ツイッターで教えて頂いて、ようやく対応することができました。
不具合のご連絡、誠にありがとうございました。(私信)

さて、今回の原因なんですが、SSLのコンフィグで余計な一文を書いてしまってたのが悪かったようです。。
SSLVerifyClient optional
これがダメで、ここでoptionalにしちゃうとクライアント証明書の検証を行ってしまう場合があるそうです。で、optionalなので検証が行われないパターンもあるらしく、それで気付くのが遅れてしまいました。
解決するにはどうすればいいかっていうと、この一文を消すだけ。デフォルトがnoneなので、余計なこと書かなきゃ発生しない事象だったようです。

お恥ずかしい話、SeekGeeksでSSLもmod_wsgiも初めて使ったので、コンフィグ周りどうすればいいかわからず、ググってSSL+mod_wsgiの設定っぽいやつ探してきてコピペして、ググりながら直して…っていうのを繰り返してたんですが、コピペ元がoptionalになってたのでそのままになってしまったようです。。

※初めてのSSLですが、セキュリティのレベルには気を付けたいと考えており、こちらのサイトでセキュリティレベルの検証を行っております。A+評価を取れているので、完全とは言い切れませんがひと通りの設定はできております。ユーザーの皆様にはご安心頂きたく存じます。

コンフィグコピペって言うと、どこぞのラノベだと年齢不詳上司からドライバーでも飛んできそうな感じでヒヤリとしました。。
他にも何かお気付きの点などございましたら、ツイッターでもメールでもSeekGeeksのフィードバックフォームからでも、ご連絡頂けましたら幸いです!
よろしくお願いいたします。

本当にツイッターやってて良かった!!