N1 Service Provisioning System 4.1 は、自己署名付き証明書をサポートします。 次の 2 種類のキーストアがあります。
プライベートキーストア – アプリケーションが別のアプリケーションに接続するとき自身の認証用として使用する公開鍵 - 非公開鍵のペアが格納される
トラストキーストア – このキーストアが信頼し、アプリケーションへの接続を許可する、その他のアプリケーションの自己署名付き証明書内の公開鍵が格納される
クライアントサーバー認証で SSL を有効にした場合、各アプリケーションに、SSL が使用する 2 つのキーストアを構成する必要があります。2 つのキーストアのうち 1 つは、ほかのアプリケーションに対する自身の認証用、もう 1 つはほかのアプリケーションの認証用です。
サーバー認証だけで SSL を有効にした場合、SSL サーバーとして機能するアプリケーションにはプライベートキーストア、SSL クライアントとして機能するアプリケーションにはトラスト (パブリック) キーストアが必要になります。 パブリックキーストアは、Java Secure Sockets Extension (JSSE) v1.0.3 によって提供される独自の JKS フォーマットです。
両方のキーストアに、同一のパスワードを指定する必要があります。
たとえば、SSL を使って、SSL クライアントであるアプリケーション A と、SSL サーバーであるアプリケーション B を接続する場合について考えてみましょう。 どちらのアプリケーションも、サーバー認証を要求する暗号群を使用するように構成されています。 アプリケーション B のプライベートキーストアには公開鍵 - 非公開鍵のペア、アプリケーション A のトラストキーストアにはアプリケーション B の公開鍵が格納されていなければなりません。 アプリケーション A からアプリケーション B への接続を試みると、アプリケーション B はアプリケーション A に公開鍵を送信します。アプリケーション A は、この鍵と、トラストキーストア内の鍵を照合します。
アプリケーション B がクライアント認証を要求する場合、アプリケーション A のプライベートキーストアには公開鍵 - 非公開鍵のペア、アプリケーション B のトラストキーストアにはアプリケーション A の公開鍵が格納されていなければなりません。 アプリケーション A によって認証されたあと、アプリケーション B はアプリケーション A の公開鍵とトラストキーストア内の公開鍵を照合できます。