A.5. Elytron クライアント側の一方向 SSL サンプル

サーバー SSL コンテキストの設定後、可能な場合は設定をテストすることが重要です。Elytron クライアント SSL コンテキストは設定ファイルに配置して、その後に管理 CLI から実行できます。これにより、サーバー設定の機能的なテストが可能になります。以下の手順は、サーバー側の設定が完了し、必要に応じてサーバーがリロードされていることを前提としています。

  1. サーバーキーストアが既に存在する場合は次のステップに移行します。それ以外の場合はサーバーキーストアを作成します。

    $ keytool -genkeypair -alias localhost -keyalg RSA -keysize 1024 -validity 365 -keystore server.keystore.jks -dname "CN=localhost" -keypass secret -storepass secret
  2. サーバー証明書がすでにエクスポートされている場合は次のステップに移行します。エクスポートしていない場合はサーバー証明書をエクスポートします。

    $ keytool -exportcert  -keystore server.keystore.jks -alias localhost -keypass secret -storepass secret -file server.cer
  3. サーバーの証明書をクライアントのトラストストアにインポートします。

    $ keytool -importcert -keystore client.truststore.jks -storepass secret -alias localhost -trustcacerts -file server.cer
  4. example-security.xml 内でクライアント側の SSL コンテキストを定義します。この設定ファイルには、アウトバウンド接続の認証および SSL 設定を定義する Elytron authentication-client が含まれます。以下のファイルは、クライアント SSL コンテキストとキーストアの定義を示しています。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <configuration>
        <authentication-client xmlns="urn:elytron:client:1.2">
            <key-stores>
                <key-store name="clientStore" type="jks" >
                    <file name="/path/to/client.truststore.jks"/>
                    <key-store-clear-password password="secret" />
                </key-store>
            </key-stores>
            <ssl-contexts>
                <ssl-context name="client-SSL-context">
                    <trust-store key-store-name="clientStore" />
                </ssl-context>
            </ssl-contexts>
            <ssl-context-rules>
                <rule use-ssl-context="client-SSL-context" />
            </ssl-context-rules>
        </authentication-client>
    </configuration>
  5. 管理 CLI を使用して、新しく作成されたファイルを参照し、サーバーへのアクセスを試行します。以下のコマンドは管理インターフェースにアクセスし、whoami コマンドを実行します。

    $ EAP_HOME/bin/jboss-cli.sh -c --controller=remote+https://127.0.0.1:9993 -Dwildfly.config.url=/path/to/example-security.xml :whoami