2011.01.17
 

iで証明書を使用する

Question

IBM i サーバーで FTPS (FTP over SSL) クライアントを動作させて銀行取引しています。銀行側で必要な (VeriSign 発行の) SSL 証明書を取得し、PC にインストールして、エクスポートし、IFS フォルダーにコピーしました。

さて、私には FTPS に命を吹き込むという使命があります。DCM に入る方法と、どこに行って証明書を *SYSTEM ストアにインポートするかはわかりましたが、相変わらずエラーが出ます。エラーは証明書の検証中に発生しました。証明書の発行者が証明書ストアにいないか、発行者が有効でないのかもしれません。

認証局 (CA) はすべて有効になっていて、リストされている VeriSign CA もすべて確認しました。検索中に PKCS #12 について何か言っているのを見た気がするのですが、IE から鍵をエクスポートする場合は、そのオプションは使用できません。FTPS が受け取る証明書タイプは DER、Base-64、PKCS #7 だけです。この 3 つすべて試しましたが、その都度同じエラー・メッセージが出ます。何がいけないのでしょうか。

Answer

おそらく、紛失しているルートまたは証明書チェーンにある中間 CA 証明書を読み込む必要があるでしょう。トラステッド CA のチェーン一式を SSL して、証明書が本物であることを確認してください。

例えば、私はシティバンクであると主張する証明書を作成できるでしょう。あなたが私の個人サイトに接続すると、私は本当にシティバンクですと宣言すれば、あなたは私を信用するはずです。この状態で、あなたをだますのを阻止できるとしたら、それは何でしょうか。

答えは CA です。私は自分がシティバンクであると言うことはできますが、VeriSign や Thawte (あるいはその他の CA) に、自分がシティバンクであることを保証させることはできません。SSL ハンドシェーク中に保証作業が行なわれます。この段階で、要求された CA によって片方がもう片方の証明書を検証します。私はあなたに自分がシティバンクと思わせることはできません。それはSSL が特別な仕事をして、記録にある CA で私の証明書を確認するからです。

SSL を使用している各システムには CA 証明書がインストールされています。別のコンピューターから証明書を受け取ると、デジタル証明書は、マシンにすでにキャッシュされている CA 証明書に対して暗号化されて検証されます。これにより、私の証明書が実際に CA により署名されたかどうか (偽造が不可能と思われるよう、暗号化されて) 証明または反証されます。トラステッド CA の署名がサーバーの SSL 証明書 (VeriSign からの証明書など) で要求された署名と一致すると、サーバーの ID が確認されます。

証明書は階層型です。VeriSign のような会社は、ブラウザー、証明書マネージャー、また他の SSL 環境にインストールされたマスター (つまり、ルート) 証明書を 1 つ持ちます。このルート CA 証明書は、署名されたものが本当にその署名者からのものか確認します。しかし、Verisign が実際に 1 つのマスター証明書で、すべての証明書を 1 つ 1 つ直接署名するのは実用的でないため、Verisign は中間証明書を発行します。

Verisign のルート証明書で署名された中間証明書は、ルート証明書として信頼できるとみなされます。中間証明書は、信頼のチェーンを確立します。クライアント証明書 (あなたの証明書) は中間証明書によって署名されます。それでも自分の証明書を信頼できます。つまり、VeriSign で署名されていると確認できますが、リモート・コンピューターがこれを行う場合は、自分の証明書と中間証明書の両方をダウンロードする必要があります。証明書が中間証明書により署名され、中間証明書がルート証明書により署名されたことが証明されれば、有効ということです。

したがって、中間証明書とクライアント証明書両方をデジタル証明書マネージャーにインストールしておく必要があります。これは、ルート証明書がすでにインストールされていることが前提です。インストールされていない場合は、ルート証明書もインストールする必要があります。

ページトップ

ボタン