WebサーバでSSLを利用するには、適切なサーバ証明書をインストールする必要がある。しかしサーバ証明書の取得やインストールには複雑な手順と設定が必要なため、インストールに失敗する可能性は否定できない。サーバ証明書のエラーの原因を調べたり、あるいは正常なインストールがなされたことを確認したりするには、証明書の発行元が提供しているSSLチェック・ツールを利用するのが手軽で便利である。
例えば個人情報の登録を必要とするWebサイトでは、盗聴やなりすましなどの攻撃を防ぐため、SSLによる通信路の暗号化が求められる。それにはWebサーバの出所を証明するデジタル証明書(以下、サーバ証明書)を証明機関(CA)から取得し、サーバにインストールする必要がある。
ただ、この作業は設定項目も多ければ手順もそれなりに複雑なので、どこかで失敗する可能性は否定できない。もしサーバ証明書の取得やインストールに失敗すると、SSLを必要とするWebページをユーザーが閲覧した際にエラーが表示されてしまう。SSLを必要とするような、信頼を求められるサイトでこのようなエラーはあってはならないものだろう。
SSLの証明書に絡むエラーが発覚したら、もちろんその原因を速やかに究明する必要がある。またサイトの立ち上げ時には、サーバ証明書が正しくインストールされているか確認する必要もある。
そんなときには、証明書を発行している企業(以下、証明書ベンダ)が提供しているSSLインストレーション・チェック・ツール(以下、SSLチェック・ツール)を利用すると、手軽で便利だ。本稿では各社のツールを紹介し、その使い方を説明しよう。
Internet ExplorerなどのWebブラウザでも、サーバ証明書に関わるエラーの原因を探ることは可能だ。サーバ証明書に絡むエラーが発生したとき、たいていのWebブラウザはその原因と思われる事項を表示するし、取得したサーバ証明書の内容も確認できる。
ただ、Webブラウザによっては、「中間証明書」がサーバにインストールされているかどうか確認できないことがある。中間証明書とは、対象サーバとルート証明機関との信頼の連鎖の途中に入る別の証明機関のための証明書である。中間証明機関が存在する場合、サーバ証明書を発行するのは中間証明機関の役割だ。そのためサーバ証明書と同じく、中間証明書もサーバに正しくインストールする必要があり、チェックすべき対象の1つである。
そのほかにも確実にチェックできない可能性はある。例えば、サイトのテスト中に(コストのかかる)公的な証明書ではなく自己発行の証明書を利用している際には、自己発行の証明書そのものをクライアントPCにインポートしておくことで、Webブラウザのエラー表示を回避することがよくある。しかし本稼働時にうっかり自己発行の証明書を置き換えず、かつテストに利用したクライアントPCを検証テストに用いると、そのままテストにパスしてしまう恐れがある。
こうしたことから、Webブラウザ自体の機能でサーバ証明書のインストールの正常性を判定するのは、あまりお勧めできない。証明書の発行元が提供するSSLチェック・ツールはWebアプリケーションなので、チェックに利用するWebブラウザやOSの仕様や設定の影響を受けにくい分、確実である。
証明書ベンダによっては、サーバにSSL用のサーバ証明書が正しくインストールされているか、ユーザー・レベルで確認するためのチェック・ツールを提供している。それらはいずれもWebアプリケーションであり、Webブラウザとインターネット接続環境があれば簡単に実行できる(ツールによってはJavaランタイムも必要)。
書ベンダ | チェック・ツールのURL | 備考 |
---|---|---|
Comodo | http://comodo.jp/navi/sslchecker#checkbox | 日本語表記。有効期限をチェックするツールであり、中間証明書は確認できない |
DigiCert | http://www.digicert.com/help/ | |
GeoTrust | https://knowledge.geotrust.com/support/ knowledge-base/index?page=content&id=SO9557 |
実体はVeriSignと共通。Javaランタイムが必要 |
GlobalSign | http://www.globalsign.com/support/healthcheck/ index.php?showcerts=yes |
執筆時点では一時的にサービスを停止していた |
Go Daddy | http://support.godaddy.com/help/6015/ using-the-ssl-installation-tool (ヘルプのページ) |
アカウント管理ツールへのログインが必要。 |
RapidSSL | https://knowledge.rapidssl.com/support/ ssl-certificate-support/index?page=content& id=SO9556 |
実体はVeriSignと共通。Javaランタイムが必要 |
Thawte | https://search.thawte.com/support/ ssl-digital-certificates/index?page=content& id=SO9555 |
実体はVeriSignと共通。Javaランタイムが必要 |
VeriSign | https://knowledge.verisign.com/support/ ssl-certificates-support/index?page=content& id=AR1130 |
Javaランタイムが必要 |
証明書ベンダが提供しているSSLチェック・ツールの例 いずれもWebブラウザから簡単に実行できる。ただし、Comodoのツール以外は英語表記である。 |
GeoTrustとRapidSSL、Thawte、VeriSignが提供しているツール(いずれも実体はVeriSign製)は、これらのベンダ以外が発行した証明書はチェックできない(エラーが発生する)。これら以外のツールでは、試した限りでは発行元のベンダが異なる場合でもエラーなしで実行できたが、やはり対象の証明書を発行したベンダのツールの方が安心して使えるのはいうまでもないことだろう。
本稿では、GeoTrustが発行した証明書と同社のツールを例にとりあげてみる。といっても、どのツールでも操作方法はほぼ共通で、チェック対象のサーバのドメイン名(FQDN)とSSL(WebサーバなのでHTTPS)のリッスン・ポート番号(デフォルトでは443)という2つのパラメータを指定するだけで済む。ただし、FQDNで指定するサーバはインターネットからアクセスできる必要がある。
なお、GeoTrustとThawte、RapidSSL、VeriSignの各ツールを実行するには、Javaランタイムが必要だ。事前にJavaランタイムをインストールして、利用するWebブラウザでJava アプレットを実行できるようにしておくこと。
GeoTrust製チェック・ツールのページをWebブラウザで開いたら、ページ真ん中付近に表示される「Enter your Web Server's domain name」にチェック対象のサーバのFQDNを指定する。またSSLのリッスン・ポートがデフォルトの443以外の場合は、「Enter your port (443 is default for SSL)」にそのポート番号を指定する。そして[Test this Web Server]ボタンをクリックして、その下に結果が表示されるのを待つ。
サーバ証明書が正しくインストールされていた場合は、[Status]欄に「Successful」と表示される。そのときの詳細結果の出力例を以下に記す。
taiyoseikatsu.com is successfully secured by an SSL certificate.
The following certificates are correctly installed:
------Certificate 1------ ……(1)
--Issued To--
Organization: taiyoseikatsu.com
Organizational Unit: Domain Control Validated - QuickSSL(R) Premium
Organizational Unit 2: See www.geotrust.com/resources/cps (c)12
Organizational Unit 3: **********
Common Name: taiyoseikatsu.com
Country: JP
--Issued By-- ……(2)
Organization: GeoTrust Inc.
Organizational Unit: Domain Validated SSL
Common Name: GeoTrust DV SSL CA
Country: US
Valid from Tue Jan 03 06:54:25 JST 2012 to
Sun Feb 03 21:41:35 JST 2013 ……(3)
Serial Number (hex): *****
-------------------------
------Certificate 2------ ……(4)
--Issued To--
Organization: GeoTrust Inc.
Organizational Unit: Domain Validated SSL
Common Name: GeoTrust DV SSL CA
Country: US
--Issued By-- ……(5)
Organization: GeoTrust Inc.
Common Name: GeoTrust Global CA
Country: US
Valid from Sat Feb 27 06:32:31 JST 2010 to
Wed Feb 26 06:32:31 JST 2020
Serial Number (hex): *****
他のSSLチェック・ツールでリッスン・ポートの指定欄がなく、かつサーバが443番以外でリッスンしている場合は、サーバのFQDNを指定する欄に「<FQDN>:<ポート番号>」という形式で指定してみよう。
サーバ証明書のインストールに失敗していた場合に、SSLチェック・ツールがどのようなエラーを発するか、GeoTrust製ツールで調べてみた(RapidSSL/Thawte/VeriSignの各ツールと共通)。いずれの場合でも[Status]欄には「Successful」ではなく警告やエラーの概要が表示される(背景色は、警告だと黄色で、エラーでは赤色)。
■サーバに接続できなかった場合
■指定したFQDNと証明書のCommon Nameが一致しなかった場合
■サーバ証明書の有効期限が切れていた場合
■中間証明書が見つからなかった場合
■自己発行の証明書がインストールされていた場合
もし詳細結果にサーバ証明書の[発行者](Issuer)という欄があれば、チェックした証明書が自己発行かどうかを簡単に判定できる。発行者がCommon Nameと一致する場合、それは自己発行の証明書である。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.