SSL/TLSに関する設定について説明します。
証明書のニックネーム
Launcherで使用する証明書を対応するキーストアの別名で指定します。JDKのkeytoolを使用してキーストアにサーバー証明書を設定する場合、keytool -genkeypairの-aliasに指定した別名を証明書のニックネームとして設定してください。設定の詳細については「7.1.5 ネットワーク設定の定義項目」-「SSL/TLS」のcert-nickname属性を参照してください。
プロトコルバージョン
SSL/TLSのプロトコルバージョンの有効/無効を設定により変更可能です。設定の詳細については、「7.1.5 ネットワーク設定の定義項目」-「SSL/TLS」のtls12-enabled、tls13-enabled属性を参照してください。
暗号化方式
SSLのサーバー、クライアント間でコネクション確立時に選択される暗号化方式のリストを設定します。設定の詳細については、「7.1.5 ネットワーク設定の定義項目」-「SSL/TLS」のssl3-tls-ciphers属性を参照してください。
クライアント認証
クライアント認証では、SSLのサーバーがクライアントから送信された証明書を使って、クライアントの本人確認を行います。
動作の詳細については、「7.1.5 ネットワーク設定の定義項目」-「SSL/TLS」のclient-auth属性を参照してください。
SSL/TLS通信に使用する証明書を変更するには、使用する証明書の別名をdomain.xmlの以下の要素のcert-nickname属性に指定します。詳細については「7.1.5 ネットワーク設定の定義項目」を参照してください。
/domain/configs/config/network-config/protocols/protocol/ssl
例
SSL/TLS通信に使用する証明書を「s1as」から「custom-cert」に変更する場合、cert-nickname属性を以下のように変更します。
変更前
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" ssl3-enabled="false" cert-nickname="s1as"></ssl>
変更後
<ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" ssl3-enabled="false" cert-nickname="custom-cert"></ssl>
キーストア/トラストストアを変更するには、以下のシステムプロパティを設定します。
プロパティ | 説明 |
---|---|
javax.net.ssl.keyStore | キーストアへのパス |
javax.net.ssl.keystorePassword | キーストアのパスワード |
javax.net.ssl.trustStore | トラストストアへのパス |
javax.net.ssl.trustStorePassword | トラストストアのパスワード |
キーストア/トラストストアへのパスを指定しなかった場合、デフォルトのキーストア/トラストストアが使用されます。キーストア/トラストストアのパスワードを指定しなかった場合、デフォルトのパスワード「changeit」が使用されます。
キーストア/トラストストアに関するこれらのシステムプロパティを設定するには、domain.xmlの以下の要素にJVMオプションを指定します。詳細については「7.1.8 Java VMの定義項目」を参照してください。
/domain/configs/config/java-config/jvm-options
例
SSL/TLS通信にユーザー定義のキーストア(${user.dir}/custom-keystore.jks)とトラストストア(${user.dir}/custom-cacerts.jks)を使用する場合、値を以下のように変更します。
変更前
<jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options> <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
変更後
<jvm-options>-Djavax.net.ssl.keyStore=${user.dir}/custom-keystore.jks</jvm-options> <jvm-options>-Djavax.net.ssl.trustStore=${user.dir}/custom-cacerts.jks</jvm-options>
パスワード「password」のキーストアおよびトラストストアを使用する場合、加えて以下の要素を指定します。
<jvm-options>-Djavax.net.ssl.keyStorePassword=password</jvm-options> <jvm-options>-Djavax.net.ssl.trustStorePassword=password</jvm-options>
注意
キーストアおよびトラストストアには、暗号化、復号化、デジタル署名に使用する鍵が含まれるため、パスワードをdomain.xmlに記載する場合はファイルの取扱いに注意する必要があります。