J2SE 1.4.x に付属している JCE (Java Cryptography Extension) プロバイダは RSA 暗号化をサポートしていません。通常、WS-Security で定義されている XML 暗号化は RSA 暗号化に基づいているため、WS-Security を使って SOAP メッセージを暗号化するには、RSA 暗号化をサポートする JCE プロバイダをダウンロードおよびインストールする必要があります。
RSA は RSA Data Security, Inc. が開発した公開鍵暗号化技術です。この略語は、この技術の開発者である Rivest、Shamir、および Adelman を表しています。
Java SDK Version 1.5 以上で Enterprise Server を実行している場合は、JCE プロバイダは正しく設定されています。Java SDK Version 1.4.x で Enterprise Server を実行している場合は、次のようにJCE プロバイダを JDK 環境の一部として静的に追加できます。
JCE プロバイダの JAR (Java ARchive) ファイルをダウンロードし、インストールします。
RSA 暗号化をサポートする JCE プロバイダのリストについては、http://java.sun.com/products/jce/javase_providers.html を参照してください。
JCE プロバイダの JAR ファイルを java-home/jre/lib/ext/ にコピーします。
Enterprise Server を停止します。
Enterprise Server を停止せずにこの手順の最後で再起動した場合、JCE プロバイダは Enterprise Server に認識されません。
任意のテキストエディタで java-home/jre/lib/security/java.security プロパティーファイルを編集します。このファイルに、前述の手順でダウンロードした JCE プロバイダを追加します。
java.security ファイルに、このプロバイダを追加する詳細手順が含まれています。基本的には、類似のプロパティーを持つ場所に次の形式の行を追加する必要があります。
security.provider.n=provider-class-name |
この例では、n は、Enterprise Server がセキュリティープロバイダを評価する際に使用する優先順位を示します。追加した JCE プロバイダには、n を 2 に設定します。
たとえば、The Legion of the Bouncy Castle JCE プロバイダをダウンロードした場合は、次のような行を追加します。
security.provider.2=org.bouncycastle.jce.provider. BouncyCastleProvider |
Sun セキュリティープロバイダが、値 1 の最高の優先順位に設定されていることを確認してください。
security.provider.1=sun.security.provider.Sun |
各レベルにセキュリティープロバイダがただ 1 つだけ設定されるように、ほかのセキュリティープロバイダのレベルを下位に調整します。
次に示す例は、必要な JCE プロバイダを提供し、既存のプロバイダを正しい位置に保持する java.security ファイルのサンプルです。
security.provider.1=sun.security.provider.Sun security.provider.2=org.bouncycastle.jce.provider. BouncyCastleProvider security.provider.3=com.sun.net.ssl.internal.ssl.Provider security.provider.4=com.sun.rsajca.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider |
ファイルを保存して、閉じます。
Enterprise Server を再起動します。