masahirorの気まま記録簿

個人的な出来事や意見、生活などの記録を思うままにブログに記録

中間証明書が認識されない

Apache+Mod_ssl環境において、ベリサインのSSL証明書で「ベリサイン マネージドPKI for SSL発行」を使用して、中間証明書に「セキュア・サーバID中間CA証明書(2048bit)」を利用している場合に、FireFox3.5およびauで証明書が正しく認識されない問題が発生。
下記中間証明書を、ベリサインに掲載された手順で何度設定してもうまくいかず。

日本ベリサイン 中間CA証明書|リポジトリ|日本ベリサイン
https://www.verisign.co.jp/repository/intermediate.html

IE6〜8、FireFox3.6では問題なし。ドコモ・ソフトバンクでは警告が出つつも、元々証明書エラーでもページが見れる仕様なのでとりあえず利用する分には使える状態。

FireFox3.5では「sec_error_unknown_issuer」と表示され、ページが表示できない。
auは元々自己証明書や証明書が不正な場合、httpsページが表示されない。




しかし、正しい証明書を設定しているはずなのになぜ・・・と検索してみたら、いくつか同様の事例と解決策が見つかった。

Firefox3+SSLで、sec_error_unknown_issuerの場合 » TECH Matari
http://tech.ironhearts.com/blog/archives/154
[グローバルサインの SSL 証明書で「Web サイトが未知の認証局により認証されています」がでる問題: Su-Jine の独り言]
http://blog.su-jine.net/archives/2007/12/_ssl_web.html


んで今回はこれらの方法の中で、同じ中間証明書方式の「グローバルサイン」に掲載されているFAQの方法で解決した。

Apacheで中間証明書を設定したが認識されない。|SSLサーバ証明書ならグローバルサイン
http://yjp.globalsign.com/support/index.php?action=artikel&cat=13&id=219&artlang=ja

上記の2番のみで解決。

confファイルで、中間証明書の設定をの外にも記載

記載例:  SSLCertificateChainFileの行を2回記載しています。

SSLCertificateChainFile /etc/httpd/conf/ssl.crt/dvcacert.cer

DocumentRoot "/var/www/html"
ServerName ssl.globalsign.com

SSLEngine on
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/dvcacert.cer
SSLCertificateFile /etc/httpd/conf/ssl.crt/ssl.globalsign.com.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/ssl.globalsign.com.key


まあこれで解決できたのはいいが、、、ベリサインでの問題をグローバルサインのFAQで解決できたことはビジネス上問題があって、お客さんに理由の説明がつかないんだよねぇ。
ベリサインにこの手順が載っていれば「環境によって発生する事象なので、メーカーの手順に沿って追加設定をしました」と説明できお客さんにも納得してもらえるのだが、他社のやり方で解決したなら「別の原因なんじゃないの?」「作業漏れでは」って突っ込まれて、うちが悪いみたいになるし。




ネットで結構事象が報告されていながら、ベリサインに問い合わせると「掲載している(一般的な)設定通りにすれば問題は起こらない」との回答しかもらえなかったって話が検索した限りではブログ等で書かれていた。
ベリサインも「なぜそうなるか」までは調査しないまでも、グローバルサインのように解決策ぐらいはサイトにも掲載してもらえんだろうか。