SSLの中間証明書が認識しない


iOS系からアクセスするとSSL警告が

iPhoneやiPadのサファリからサーバーのSSLページにアクセスした際に「サーバーの識別情報を検証できません」という警告が出るんだが、、、という相談をお客様から受けました。
もちろんプライベートSSLではなく、きちんと発行機関経由の証明書を使っているケースなのに、、です。
ssl

WindowsのIEやChrome経由では問題なし。
MacのサファリやChromeでも問題なし。
でもiOSのサファリFirefox(WinもMacも)では警告が表示。

調査

原因を調べるために以下の証明書チェッカーサイトを利用しました。
シマンテック・インストールチェッカー
ジオトラスト・インストールチェッカー

それらのチェックサイトを使って確認すると「中間証明書が認識されていない」とのこと。
ま、高い確率でそれが原因だとわかったものの、サーバーの設定をみると正しく中間証明書は設定されている、、、、でも認識していない状態でした。

Apache 2.x + mod_ssl + OpenSSL
CentOS 6.4
httpd:Apache 2.2.15
SSL:mod ssl

/etc/httpd/conf.d/ssl.confの設定内
SSLCertificateChainFile /etc/httpd/conf/ssl.crt/cacert.cer
…としたうえで、上記指定のディレクトリーに同名で置いているにも関わらず認識しない。
SSL発行機関のインストール手順をよくよく見ると「一部のバージョンにおいて、中間証明書が認識されない問題があるようです。認識されない場合はこちらの情報をご参考ください。」と(汗

その「一部のバージョン」にあたるのか(汗
そこに書かれていた手順通りにやると無事認識し、警告はでなくなりました。

行った手順

【1】中間証明書の二重書き

中間証明書の二重書き。(なんでよ?)
普通なら「—-BEGIN CERTIFICATE—– から —–END CERTIFICATE—–」までを1ファイルに1度書くだけですが、同じ文を2回書く。
以下のような感じ。
cacert2

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

ただし、こちらは実行しませんでした。
【1】の二重書きをした段階でhttpdを再起動して動作実験してみると成功したので。

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です