31 アウトバウンド双方向SSL接続のクライアント証明書の指定

アウトバウンド双方向SSL接続を行う際、デフォルトでOracle WebLogic Serverはそのサーバー証明書を使用して、クライアントとしてアイデンティティを確立します。ただし、かわりに個別のクライアント証明書を指定して、アイデンティティを確立することもできます。この機能は、特にWebLogic Serverが双方向SSL接続を行うクライアントとして機能している場合に役立ちます。アウトバウンド双方向SSL接続を行う場合のクライアント証明書の指定方法を学習します。

アウトバウンド双方向SSL接続を指定するためにクライアント証明書を使用するには、次の項で説明するステップを実行します。

ノート:

WebLogic Serverのアイデンティティのクライアント証明書への切替えは、アウトバウンド双方向SSL接続を行う場合にのみサポートされます。WebLogic ServerがSSLサーバーとして機能するインバウンドSSL接続の場合、アイデンティティには常にサーバー証明書が使用されます。

IDキーストアへのクライアント証明書の追加

WebLogic Serverのアイデンティティ・キーストアにクライアント証明書を追加し、秘密キーおよびパブリック証明書が保存される別名の名前を定義します。このタスクは1回のみ実行する必要があります。構成ステップが完了すると、現在のWebLogic Serverインスタンスで、アウトバウンド双方向SSL接続を行うクライアント・アイデンティティはいつでも使用できるようになります。

クライアント証明書をアイデンティティ・キーストアに追加するには、次のステップを実行します。

  1. クライアント・キー・ペア(公開キーと関連する秘密キー)および秘密キーの別名を作成し、これをWebLogic Serverアイデンティティ・キーストアに保存します。これは、keytoolユーティリティを使用して行うことができます。
  2. 証明書署名リクエスト(CSR)を生成し、これを認証局(CA)に提出すると、認証局はCAの署名のあるクライアント証明書を返します。サーバー証明書と同じCAを使用し、両方の証明書が信頼性のある同じルートCAを持つようにすることをお薦めします。
  3. CA署名のあるクライアント証明書をアイデンティティ・キーストアに保存します(クライアント証明書がサーバー証明書と同じCAによって署名されている場合、ルートCA証明書はすでに信頼キーストアにあるため、これを保存するステップをスキップできます)。

アウトバウンド双方向SSL接続の開始

クライアント証明書を使用してアウトバウンド双方向SSL接続を開始するWLSTスクリプトの作成方法を学習します。

クライアント証明書を使用してアウトバウンド双方向SSL接続を開始するには、次の操作を行うWLSTスクリプトを作成します。

  1. WebLogic Serverインスタンスに接続します。
  2. SSLMBean.UseServerCerts属性をtrueに設定します。これで発信接続のサーバーIDが確立します。
  3. SSLMBean.UseClientCertForOutbound属性をtrueに設定することにより、クライアント証明書のIDに切り替えます。
  4. SSLMBean.ClientCertPrivateKeyPassPhrase属性を使用してクライアント証明書の秘密キー・パスワードを指定し、SSLMBean.ClientCertAlias属性を使用してクライアント証明書のキーストア別名を指定します。

例31-1 クライアントIDを使用してアウトバウンド双方向SSL接続を開始するWLSTスクリプトのサンプル

url="t3://localhost:7001"
adminUsername="weblogic"
adminPassword="password"
connect(adminUsername, adminPassword, url)
edit()
server=cmo.lookupServer('myserver')
cd('Servers')
cd('myserver')
startEdit()
cd('SSL')
cd('myserver')
ssl = server.getSSL()
ssl.setUseServerCerts(true)
ssl.setUseClientCertForOutbound(true)
ssl.setClientCertAlias("myClientCert")
ssl.setClientCertPrivateKeyPassPhrase("myClientCertPrivateKeyPassPhrase")
save()
activate()
disconnect()
exit()

例31-1は、WebLogic Serverに構成されたIDキーストアにあるクライアント証明書を使用して、アウトバウンド双方向SSL接続を開始するWLSTスクリプトを示します。

ノート:

明確にするために、このWLSTサンプル・スクリプトでは、ユーザー名およびパスワードをクリア・テキストで表示しています。通常はWLSTコマンドにクリア・テキストのパスワードを入力しないでください。特に、クリア・テキストのパスワードが含まれるWLSTスクリプトをディスクに保存することは避けてください。このような状況では、暗号化されたパスワードを渡すメカニズムをかわりに使用する必要があります。WebLogic Scripting Toolの理解WLSTのセキュリティに関する項を参照してください。

サーバーID証明書の使用の復元

アウトバウンドSSL接続用にサーバー・アイデンティティ証明書の使用を復元するには、SSLMBean.UseClientCertForOutbound属性をfalseに設定するWLSTコマンドを指定します。

次の点に注意してください。

  • SSLMBean.ClientCertPrivateKeyPassPhrase属性およびSSLMBean.ClientCertAlias属性の値は永続化され、次にクライアントIDを使用してアウトバウンド双方向SSL接続が行われるとき(次にSSLMBean.UseClientCertForOutbound属性がtrueに設定されるとき)に使用されます。

  • アウトバウンドSSL接続のクライアント証明書の指定に使用されるSSLMBean属性は、WebLogic Server管理コンソールからは使用できません。