本製品では以下の通信をSSLで行うことができます。
WebブラウザとWebサーバ間の通信
設定方法については、「Interstage HTTP Server運用ガイド」を参照してください。
WebサーバコネクタとWebコンテナ間の通信
WebサーバをDMZ(DeMilitarized Zone:非武装地帯)のマシンで運用して、IJServerクラスタはFirewallを越えたイントラネット上のマシンで運用する場合にWebサーバコネクタとWebコンテナ間をSSLで通信することで盗聴/改ざん/なりすましなどの危険を回避し、情報のプライバシーを守ることができます。
WebサーバコネクタとWebコンテナ間の通信をSSLで行うには以下の設定が必要です。
キーストアの設定については、「IJServerクラスタで利用するキーストアの設定」を参照してください。
Interstage管理コンソールまたはisj2eeadminコマンドを使用してコネクタとWebコンテナ間のSSLの使用を設定してください。
設定方法の詳細は、Interstage管理コンソールのヘルプを参照してください。
Interstage Java EE管理コンソールまたはasadminコマンドのsetサブコマンドを使用してHTTPリスナーのセキュリティ機能を有効にします。
設定方法の詳細は、Interstage Java EE管理コンソールのヘルプおよび「11.1.4 定義項目参照/更新」と「11.18.3.2 configs.config.http-serviceの定義項目」のsecurity-enabled(セキュリティ)を参照してください。
Interstage Java EE管理コンソールまたはasadminコマンドのcreate-sslサブコマンドを使用してコネクタとWebコンテナ間のSSLの使用を設定してください。
設定方法の詳細は、Interstage Java EE管理コンソールのヘルプを参照してください。
注意
WebサーバコネクタとWebコンテナ間の通信における注意事項
IJServerクラスタでサポートしているプロトコルバージョンおよび暗号化方式は以下のとおりです。
プロトコルバージョン
SSL 3.0
TLS 1.0
暗号化方式
TLS_RSA_WITH_AES_128_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_WITH_NULL_SHA
SSL_RSA_WITH_NULL_MD5
WebサービスクライアントとWebサービス間の通信
Webサービスクライアント側では、WebサービスのエンドポイントのURLを「https」で指定していれば、JSSE(Secure Socket Extension)の設定にしたがってSSLで安全化されたWebサービスを呼出しが行われます。利用する証明書などはキーストア・トラストストアの設定で指定可能です。Webサービスクライアントを実行するコンテナに対してキーストア・トラストストアの設定を行ってください。詳細は、「アプリケーションクライアントコンテナで利用するキーストアの設定」または「IJServerクラスタで利用するキーストアの設定」を参照してください。
Webサービス側の設定では、Webアプリケーションに対する設定と同様に、Webサーバに対して設定します。詳細は、「WebブラウザとWebサーバ間の通信」に従ってください。なお、WebサービスのエンドポイントのURLについては「4.1.2 Webサービスアプリケーションの開発」を参照してください。
クライアントとEJBコンテナ間の通信(未サポート)
EJBクライアントとEJBアプリケーション間のIIOP通信の場合は、SSLで通信することで盗聴/改ざん/なりすましなどの危険を回避し、情報のプライバシーを守ることができます。CSIv2 level 0の機能範囲を使用できます。
EJBクライアントとEJBコンテナ間のIIOP通信をSSLで行うには以下の設定が必要です。なお、IJServerクラスタのハートビート(Heartbeat)が有効な場合は、IIOP通信をSSLで行うことができません。IIOP通信をSSLで行う場合は、ハートビート(Heartbeat)を無効にしてください。
キーストアの設定については「IJServerクラスタで利用するキーストアの設定」を参照してください。
Interstage Java EE管理コンソール、またはasadminコマンドのsetサブコマンドを使用して以下のIIOPリスナーを活性化してください。設定方法の詳細は、Interstage Java EE管理コンソールのヘルプ、または「11.1 asadmin」を参照してください。
クライアント証明書を使用しない場合
SSL通信用のIIOPリスナー(SSL)
クライアント証明書を使用する場合
SSL通信クライアント認証用のIIOPリスナー(SSL_MUTUALAUTH)
SSLで通信するEJBアプリケーションのInterstage deployment descriptor (sun-ejb-jar.xml)にCSIv2設定を定義してください。定義詳細については、「4.2.3.3 Interstage EJB application deployment descriptor (sun-ejb-jar.xml)」を参照してください。
Java EEアプリケーションクライアントとEJBアプリケーションとのIIOP通信をSSLで行う場合、「アプリケーションクライアントコンテナで利用するキーストアの設定」を参照してキーストアを設定してください。
また、クライアント証明書を利用する場合は、Interstage deployment descriptor (sun-acc.xml)ファイルに、クライアント証明書のニックネームを設定してください。詳細については、「4.2.3 Interstage deployment descriptor」を参照してください。
注意
ネーミングサービスに対する接続は、SSL通信の対象となりません。
そのため、Interstage deployment descriptor(sun-acc.xml)ファイルに指定するIIOPリスナーのポート番号には、IIOPリスナー(orb-listener-1)のポート番号を指定してください。IIOPリスナー(SSL)やIIOPリスナー(SSL_MUTUALAUTH)のポート番号を指定してもIIOP通信をSSLで行うことはできません。
キーストア作成時に、クライアント証明書のニックネームに英大文字を含めた場合でも、Interstage deployment descriptor(sun-acc.xml)ファイルに指定するニックネームには英大文字は使用せず、英大文字は英小文字に変換して指定してください。英大文字を指定した場合、IIOP通信をSSLで行うことができません。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE client-container SYSTEM "file:{Your installed server root}/lib/dtds/sun-application-client-container_1_0.dtd"> <client-container> <target-server name="server1" address="myhost" port="33700"> <security> <ssl cert-nickname="<クライアント証明書のニックネーム>"/> <cert-db path="ignored" password="ignored"/> </security> </target-server> </client-container>
ServletやEJBアプリケーションと他プロセスで運用しているEJBアプリケーションとのIIOP通信をSSLで行う場合、asadminコマンドのcreate-sslサブコマンドを使用してSSLの使用を設定してください。詳細については、「11.1 asadmin」を参照してください。
IJServerクラスタで利用するキーストアの設定
キーストアにはJDKのkeytoolで作成したキーストア、またはInterstage証明書環境を使用できます。
Interstage Java EE管理コンソール、またはasadminコマンドのcreate-jvm-optionsサブコマンドを使用してJVMオプションに以下を設定してください。 (注)
-Djavax.net.ssl.keyStore=キーストアファイル名 |
注) 初回設定時にはasadminコマンドのdelete-jvm-optionsサブコマンドを実行して、デフォルトで定義されている以下のJVMオプションを削除してください。
-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks |
また、Interstage Java EE管理コンソール、またはasadminコマンドのsetサブコマンドを使用して、サイト証明書のニックネームをInterstage証明書環境(またはJDKのkeytoolで作成したキーストア)に作成したサイト証明書のニックネームに変更してください。
なお、ニックネームの変更は、IJServerクラスタ内でセキュリティ機能が有効であるすべてのリスナーに対して実施する必要があります。
Interstage証明書環境を使用する場合は、キーストアファイル名、トラストストアファイル名に以下を指定してください。
C:\Interstage\etc\security\env\keystore\.keystore
/etc/opt/FJSVisscs/security/env/keystore/.keystore
Interstage証明書環境の構築方法については、「セキュリティシステム運用ガイド」の「SSLによる暗号化通信」を参照してください。
アプリケーションクライアントコンテナで利用するキーストアの設定
キーストアにはJDKのkeytoolで作成したキーストア、またはInterstage証明書環境を使用できます。
VMARGS環境変数に、以下を設定してください。
set VMARGS=-Djavax.net.ssl.trustStore=トラストストアファイル名 -Djavax.net.ssl.trustStorePassword=トラストストアのパスワード
VMARGS="-Djavax.net.ssl.trustStore=トラストストアファイル名 -Djavax.net.ssl.trustStorePassword=トラストストアのパスワード"
export VMARGS
VMARGS環境変数に、以下を設定してください。
set VMARGS=-Djavax.net.ssl.keyStore=キーストアファイル名 -Djavax.net.ssl.trustStore=トラストストアファイル名 -Djavax.net.ssl.keyStorePassword=キーストアのパスワード -Djavax.net.ssl.trustStorePassword=トラストストアパスワード
VMARGS="-Djavax.net.ssl.keyStore=キーストアファイル名 -Djavax.net.ssl.trustStore=トラストストアファイル名 -Djavax.net.ssl.keyStorePassword=キーストアのパスワード -Djavax.net.ssl.trustStorePassword=トラストストアパスワード"
export VMARGS
注意
キーストアの設定における注意事項
Interstage証明書環境を使用する場合は登録しているすべての認証局証明書が使用されます。
キーストアおよびトラストストアには、IJServerクラスタまたはアプリケーションクライアントコンテナからアクセス可能なユーザ、グループによるアクセス制限を設定してください。
IIOPリスナーのサイト証明書のニックネームには、英大文字は指定できません。
Interstage証明書環境(またはJDKのkeytoolで作成したキーストア)作成時、サイト証明書のニックネームに英大文字を含めた場合でも、IIOPリスナーには英大文字は使用せず、英大文字は英小文字に変換して指定してください。英大文字を指定した場合、IIOP通信をSSLで行うことができません。
例) Interstage証明書環境作成時に、サイト証明書のニックネームにSiteCertと指定した場合、IIOPリスナーのサイト証明書のニックネームにはsitecertと指定します。
JDKのkeytoolでキーストアを作成する場合、非公開鍵のパスワードには、キーストアのパスワードと同じものを指定してください。
デフォルトで設定されているキーストアに登録済みの自己証明書(s1as)は実際の運用では使用しないでください。