ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

6.2.3 SSL

本製品では以下の通信をSSLで行うことができます。

WebブラウザとWebサーバ間の通信

設定方法については、「Interstage HTTP Server運用ガイド」を参照してください。

WebサーバコネクタとWebコンテナ間の通信

WebサーバをDMZ(DeMilitarized Zone:非武装地帯)のマシンで運用して、IJServerクラスタはFirewallを越えたイントラネット上のマシンで運用する場合にWebサーバコネクタとWebコンテナ間をSSLで通信することで盗聴/改ざん/なりすましなどの危険を回避し、情報のプライバシーを守ることができます。

WebサーバコネクタとWebコンテナ間の通信をSSLで行うには以下の設定が必要です。

キーストアの設定

キーストアの設定については、「IJServerクラスタで利用するキーストアの設定」を参照してください。

Webサーバコネクタ

Interstage管理コンソールまたはisj2eeadminコマンドを使用してコネクタとWebコンテナ間のSSLの使用を設定してください。
設定方法の詳細は、Interstage管理コンソールのヘルプを参照してください。

IJServerクラスタ

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クラスタのキーストアの設定

キーストアの設定については「IJServerクラスタで利用するキーストアの設定」を参照してください。

IJServerクラスタのIIOPリスナ活性化

Interstage Java EE管理コンソール、またはasadminコマンドのsetサブコマンドを使用して以下のIIOPリスナーを活性化してください。設定方法の詳細は、Interstage Java EE管理コンソールのヘルプ、または「11.1 asadmin」を参照してください。

  • クライアント証明書を使用しない場合
    SSL通信用のIIOPリスナー(SSL)

  • クライアント証明書を使用する場合
    SSL通信クライアント認証用のIIOPリスナー(SSL_MUTUALAUTH)

EJBアプリケーションの設定

SSLで通信するEJBアプリケーションのInterstage deployment descriptor (sun-ejb-jar.xml)にCSIv2設定を定義してください。定義詳細については、「4.2.3.3 Interstage EJB application deployment descriptor (sun-ejb-jar.xml)」を参照してください。

EJBクライアントをアプリケーションクライアントコンテナで実行した場合の定義

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>
EJBクライアントをIJServerクラスタで実行した場合の定義

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=キーストアファイル名
-Djavax.net.ssl.trustStore=トラストストアファイル名
-Djavax.net.ssl.keyStorePassword=キーストアのパスワード
-Djavax.net.ssl.trustStorePassword=トラストストアのパスワード

注) 初回設定時にはasadminコマンドのdelete-jvm-optionsサブコマンドを実行して、デフォルトで定義されている以下のJVMオプションを削除してください。

-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks
-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.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)は実際の運用では使用しないでください。