Tech Racho エンジニアの「?」を「!」に。
  • インフラ
  • 開発

RapidSSLを使うとAndroidで証明書エラーが出た場合

みんな大好き、安くて速いRapidSSL!
ところで、最近になってAndroidで以下のような警告が出たことはありませんか?



期限やドメインの設定(wwwの有無など)は問題ありません。

RapidSSLに限った話では無いのですが、暗号の2010年問題といわれるように、RSAの1024ビットは廃止され、発行されるSSL証明書も2010年頃から順次2048ビットのものに入れ替わっています。

それに伴い、互換性などの理由から(ググったりVeriSignのサイトを探すとたくさん情報が出てきます)、たいていの場合、今まで不要だった中間証明書のインストールが必須になりました。

たとえばRapidSSLで証明書を発行した場合、以下のように中間証明書がついてきます。
これは公開されているものと同じです。
というか、ここをよく読めばAndroid2.2以前ではルート証明書入れろと書いてあるんですけど、更新だと見落としますよね;;

SSLサーバ証明書発行通知

**********************************************************
このメールは、ジオトラスト社より自動的に送信されています。
お問い合わせはヘルプデスクよりお願い致します。
このメールに返信頂きましても対応致しかねますのでご注意下さい。
**********************************************************

この度はRapid-SSL.jpをご利用頂き有難うございました。
ご注文いただきましたSSLサーバ証明書の発行が完了いたしましたのでご連絡申し上げます。証明書は、このメールの末尾に表示されていますのでお客様サーバへインストールしてご利用下さい。また、中間証明書のインストールもお忘れになりませんようご注意下さい。

(省略)

==========================
SSLサーバ証明書:

-----BEGIN CERTIFICATE-----
ここがサーバ証明書
-----END CERTIFICATE-----

--------------------------
SSLサーバ証明書のご利用には以下の中間証明書のインストールが必要です。

中間証明書(INTERMEDIATE CA):
---------------------------------------

-----BEGIN CERTIFICATE-----
ここが中間証明書
-----END CERTIFICATE-----

この設定を忘れる人はあまりいないと思うのですが(設定しないとPCでも警告が出ます)、これだけでは、Android2.2以前の端末で冒頭のエラーが発生します。
(IS03, IS05, SC-02Bなどで発生を確認しました)

Android端末でも警告が出ないようにするには、RapidSSLの中間証明書に加えて、上位のGeoTrustのルート証明書をサーバにインストールする必要があります。

中間証明書が複数階層の場合のインストール方法
GeoTrustのルート証明書
RapidSSLでの設定方法

要するに、SSLCACertificateFile(またはSSLCertificateChainFile)で指定したCA証明書の末尾に、GeoTrustの証明書をくっつけてやる必要があります。

これで、Androidでも警告が出なくなりました!
特に既存サイトを更新する際など、「今まで見られていたのに急にエラーになった!」といったクレームにならないように注意が必要ですね。

GingerBreadしか持っていない人は見落としがちなのでご注意を。

ところで、「RapidSSL」で検索すると「安いSSLで大丈夫ですか?VeriSign」の広告が出るのは露骨ですね・・・


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。