なんでやりたいのか
(もうすこし真面目に書きます・・・)
そもそも、やりたいことはTLS1.0/1.1をやめるサイトが増えている中、クライアントにはどんな画面が帰るんだろうか・・・ という疑問がスタートです。みんなやっているので、それを見ればいいんですが、やりたがりーなので。
ブラウザにTLS1.*の縛りを入れる
Google先生からIE、Safari、CromeでそれぞれTLS1.0/1.1をやめる方法が出てくるも、自分の環境ではその画面にたどり着けず。FireFoxだとかなり自由に操作できるってことで、FireFoxさんに犠牲になってもらいました。
about:config
とすると、詳細設定画面に飛べるので、
security.tls.version.max 1
security.tls.version.min 1
つまり、TLSの最高〜最低1.*ですって縛りを入れます。
ブラウザはTLS1.0/1.1でしかアクセスできなくなったはずなので、お試しでJCBのサイトにアクセス。以下のようなエラーMSGが表示されて門前払いされました(成功ですね!)。
実験用のApache
Amazon Linux上のApacheはSSL化済み。TLSはALLにしているので!マークはつくものの接続は可能。
(この警告は、自己証明書を使っているため出力されているもの)
南京錠に「!」がついている。ちなみに、インスタンスは落としてるので、このIPには何もいません。
(ネギネギうるさいのは、Nginxを触ってた時のサンプルページなので気にしないで。。。 ネギは美味しい)
ApacheでTLS1.2のみ許容に変更する。
触るのは ssl.conf
旧)SSLProtocol all -SSLv3
新)SSLProtocol -all +TLSv1.2
それで、もう一度アクセス。
先ほど!であっても表示されたページが表示すらできなくなった。
(注意がいるのが、コンテンツ変更していないと、キャッシュクリアしないとサイトが”見えた”風になるので・・・)
ログ上はどうなってる
で、その時のログはどうなっているんだよって気になりまして・・・ログを確認して見ました。
[ssl:warn] [pid 3752] AH01909: (省略) server certificate does NOT include an ID which matches the server name
TLS1.*縛りでアクセスして怒られた時のエラー。。(ちょっとなにエラーなのかは調べ中)
(IPアドレス) TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 "GET / HTTP/1.1" 110
TLS1.2が使える状態でアクセスが成功した時のログ。使用したCipherSuiteが出てくるっぽい。
まとめ
Apacheおじさんのデビュー戦ですけど、枯れた領域ですが勉強することが多いです。TLS1.*縛りで有名企業のHPにアクセスしてみると、いろいろバラツキがあって「へぇー」って思いました。