老若男女の皆様初めまして。
映画大好き下っ端新米ツチノコのshirokumaと申します。
ツチノコなのにshirokumaです。ʕ゚ᴥ゚ʔ <ガオー!!
ところで皆さん『ターミネーター:新起動/ジェニシス』は見ましたか?
これから見る方はぜひターミネーター1と2を予め見ることをオススメします!
あ、watakenさん!僕が読んでるライトノベルはこちらですよ!
さて、本題ですが今回の記事はSSLに関するお話です。
shirokumaは主にDMMサービスの運用を担当しているのですが、
サービス運用を行う上でSSLの更新は必須の定期業務です。
サービスの運用を行っているエンジニアの方であれば皆さん一度は経験があると思います。
そんなSSLについて総務省から以下の様な発表がありました。
http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/enduser/security01/12.html
SHA-1からSHA-2への移行についての発表です。
SHA-1からSHA-2への移行にて最も影響を受けるものはフィーチャーフォン(ガラケー)だと思われます。
なので、各キャリア様からも以下の様なお知らせが出ております。
NTTdocomo様
https://www.nttdocomo.co.jp/info/notice/pages/150715_00.html
KDDI様
http://www.kddi.com/important-news/20150715/
SoftBank様
http://www.softbank.jp/mobile/info/personal/news/support/20150715a/
一部のフィーチャーフォン端末ではSHA-2に対応できていない実情があります。
この辺りは各社の運用を行っているエンジニアが頭を悩ましているかと思います。
shirokumaもその一人です。タスケテ!
さらには、先日シマンテック様よりこんな発表がありました。
以前は必須となっていたクロスルート証明書の設定が今後はサーバの用途に合わせて有無を選ぶ事になりそうです。
そんな紆余曲折を辿りそうなSSLの中間証明書についてのナレッジご紹介致します。
SSL証明書の更新業務はshirokumaの様にエンジニアとして日が浅い人間が実施する機会が多いかもしれません。
そんな人達の助けになれば幸いです!
事の発端はshirokumaがSSL更新作業を行った後の中間証明書の正常性を確認をしている時でした。
弊社では確認手段としてmodern.IEのXP環境にてIE6のブラウザで階層構造を確認していました。
これは以下の二点を踏まえてshirokumaが決めた運用となります。
- 最近のブラウザでは中間証明書をキャッシュする機能があるので確実な確認手段として不適切である。(初期のIE6にはキャッシュ機能はありません)
- 実際にユーザーが見るのはブラウザを使うのだからできるだけブラウザで行いたい。
弊社では中間証明書を適用する際はクロスルートを証明書込みのものを利用しているのでXP環境では4階層に見えるはずです。
ʕ゚ᴥ゚ʔ 「さて、証明書更新も終わったし今日の晩ご飯何しようかなぁ・・・・・・・・ん?」
三階層になってるうううううううううううううううううううう!?!?!?!?!?!?!?!?!?
ええ。焦りましたよ。そりゃもう。
設定した箇所や手順を見直しても特に間違っている点はありません。
試しにテストページをフィーチャーフォンで開いて見たところ正常に開けました。
ʕ゚ᴥ゚ʔ 「クロスルートが適用されているのに3階層で見える・・・・?」
ʕ゚ᴥ。ʔ 「ルート証明書が自己証明しているように見え・・・・る・・・・?」
青狸に助けを求める眼鏡少年の如き勢いでシマンテックカスタマーサポートに連絡を取りました。
すると以下の様な事を懇切丁寧に教えてもらえました。
※シマンテックカスタマーサポート様、本当にありがとうございます。
Q : そもそもブラウザで見る事ができる『4階層』と『3階層』って何が違うの?
A: 違いは『VeriSign Class 3 Public Primary Certification Authority – G5』(通称:G5証明書)がOS/ブラウザにインポートされているかどうかで変わります。G5証明書はシマンテック(旧:ベリサイン)のルート証明書です。ルートのG5証明書はブラウザの階層チェーンには表示されない仕様なので、『G5証明書がブラウザにインポートされていれば3階層』『G5証明書がインポートされていなければ4階層』といった形で表示されます。
詳細を以下の表にまとめてみました。
Q : G5証明書がインポートされていない環境って?
A: 最近のブラウザではPC/スマフォ問わずにG5証明書が予めインポートされています。ですがwindowsXPのSP2以前やフィーチャーフォンの一部端末はG5証明書がインポートされておらず、『VeriSign Class 3 Public Primary CA』(通称:G1証明書)がインポートされています。G1証明書は直接G3証明書をチェーンする事ができないので必ずG5証明書が必要となります。
Q : G5証明書って二種類あるの?
A: 非常にややこしいのですが、『VeriSign Class 3 Public Primary Certification Authority – G5』は全く同じ名前でルート証明書とクロスルート証明書がそれぞれ存在します。なので、証明書のChainを確認する際は表示されている『VeriSign Class 3 Public Primary Certification Authority – G5』がルート証明書なのかクロスルート証明書なのかを必ず確認してください。
※shirokumaがXP環境で確認した際に自己証明されていると見えたものはG5ルート証明書がG5クロスルート証明書を証明していた結果です。ややこしいですね。
—–
SSLは普段業者から発行されたものを手順に従って適用していたので深く調べた事が無かったのですが、シマンテックカスタマーサポートに問い合わせて色々聞いてみると奥が深かったです。
頂いた情報を元に弊社のXP環境で3階層に見えた理由を調べてみると……..
ʕ゚ᴥ゚ʔ 「あ、WindowsUpdateでIE6がSP3にバージョンアップしてる」
※IE6のSP3以降は『VeriSign Class 3 Public Primary Certification Authority – G5』がインポートされています。
「環境変わってるじゃねぇか!」と言われました。しょうもない理由で申し訳ありません・・・・・orz
—-
今後のSSL証明書更新後の中間証明書確認方法について
カスタマーサポートの方からお話を聞いた結果以下の方法が現在のbestと考えております
■対象SSLがインターネットから参照できる場合
Symantec SSL Toolboxを初めとしたインターネット上の確認ツールを使うのがbestかと思います。ただし使用する際はツールがどういった条件(確認する際に使用するルート証明書等)についてよく確認してから使用してください。ちなみにSymantec SSL Toolboxは『VeriSign Class 3 Public Primary Certification Authority – G5』のルート証明書を前提で確認するとの事です。
■対象SSLがインターネットから参照できない場合
Linux環境にて以下の様なopensslコマンドを実行してChain情報を確認する方法がbestかと思います。
# openssl s_client -connect example.dmm.com:443 -showcerts |
一先ずこのポリシーで今後は確認をしたいと考えています。
もっと良い方法をご存知の方が居ましたら教えて頂ければと思います!!
—-
ついでに聞けたこと
『VeriSign Class 3 Public Primary Certification Authority – G5』がインポートされているブラウザにてサーバ証明書が設定されたページにアクセスすると中間証明書が設定されていないor間違って設定されていたとしてもブラウザが自動で中間証明書(G3証明書)をダウンロードしてChainしてくれる機能があるそうです。すごい!
※推奨はされていません。必ず正しい中間証明書を設定しましょう