6.5.2. X.509 クライアント証明書のユーザー認証の有効化

ここでは、JBoss EAP/Undertow および Red Hat Single Sign-On Server を設定して、X.509 クライアント証明書認証を有効にする方法を説明します。

JBoss EAP での相互 SSL の有効化

JBoss EAP で SSL を有効にする方法については、「SSL の有効化」を参照してください。

  • RHSSO_HOME/standalone/configuration/standalone.xml を開き、新しいレルムを追加します。
<security-realms>
    <security-realm name="ssl-realm">
        <server-identities>
            <ssl>
                <keystore path="servercert.jks"
                          relative-to="jboss.server.config.dir"
                          keystore-password="servercert password"/>
            </ssl>
        </server-identities>
        <authentication>
            <truststore path="truststore.jks"
                        relative-to="jboss.server.config.dir"
                        keystore-password="truststore password"/>
        </authentication>
    </security-realm>
</security-realms>
ssl/keystore
ssl 要素には、JKS キーストアからサーバーの公開鍵ペアを読み込む方法を定義する keystore 要素が含まれます。
ssl/keystore/path
JKS キーストアへのパス
ssl/keystore/relative-to
キーストアパスを起点としたパスを定義します
ssl/keystore/keystore-password
キーストアを開くためのパスワード
ssl/keystore/alias (オプション)
キーストアのエントリーのエイリアス。キーストアに複数のエントリーが含まれる場合にこれを設定します。
ssl/keystore/key-password (オプション)
秘密のキーパスワード (キーストアパスワードと異なる場合)。
authentication/truststore
トラストストアをロードして、インバウンド/ルーティング接続のリモート側に表示される証明書を検証する方法を定義します。通常、トラストストアには信頼される CA 証明書の集合が含まれます。
authentication/truststore/path
信頼される CA (認証局) の証明書を含む JKS キーストアへのパス
authentication/truststore/relative-to
トラストストアパスが相対するパスを定義します
authentication/truststore/keystore-password
トラストストアを開くパスワード
https リスナーの有効化

WildFly で HTTPS を有効にする方法については、「HTTPS リスナー」を参照してください。

  • 以下のように <https-listener> 要素を追加します。
<subsystem xmlns="urn:jboss:domain:undertow:10.0">
	....
    <server name="default-server">
	    <https-listener name="default"
                        socket-binding="https"
                        security-realm="ssl-realm"
                        verify-client="REQUESTED"/>
    </server>
</subsystem>
https-listener/security-realm
値は、前のセクションのレルムの名前に一致する必要があります。
https-listener/verify-client
REQUESTED に設定した場合、サーバーは必要に応じてクライアント証明書を要求します。属性を REQUIRED に設定すると、クライアント証明書が提供されない場合、サーバーが受信接続を拒否します。