A.6. Elytron 客户端方双向示例
配置服务器 SSL 上下文后,如果可能,务必要测试配置。Elytron 客户端 SSL 上下文可以放在配置文件中,然后从管理 CLI 执行,从而能够测试服务器配置。这些步骤假定已完成服务器端配置,并且服务器已重新加载(如有必要)。
如果服务器和客户端密钥存储已存在,则继续下一步;否则,创建服务器和客户端密钥存储。
$ keytool -genkeypair -alias localhost -keyalg RSA -keysize 1024 -validity 365 -keystore server.keystore.jks -dname "CN=localhost" -keypass secret -storepass secret $ keytool -genkeypair -alias client -keyalg RSA -keysize 1024 -validity 365 -keystore client.keystore.jks -dname "CN=client" -keypass secret -storepass secret
如果已经导出了服务器和客户端证书,则继续下一步;否则,导出服务器和客户端证书。
$ keytool -exportcert -keystore server.keystore.jks -alias localhost -keypass secret -storepass secret -file server.cer $ keytool -exportcert -keystore client.keystore.jks -alias client -keypass secret -storepass secret -file client.cer
将服务器证书导入到客户端的信任存储中。
$ keytool -importcert -keystore client.truststore.jks -storepass secret -alias localhost -trustcacerts -file server.cer
将客户端证书导入到服务器的信任存储中。
$ keytool -importcert -keystore server.truststore.jks -storepass secret -alias client -trustcacerts -file client.cer
在
example-security.xml
中定义客户端 SSL 上下文。此配置文件包含一个 Elytronauthentication-client
,它定义了用于出站连接的身份验证和 SSL 配置。以下 文件演示了定义客户端 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> <key-store name="clientKeyStore" type="jks" > <file name="/path/to/client.keystore.jks"/> <key-store-clear-password password="secret" /> </key-store> <ssl-contexts> <ssl-context name="client-SSL-context"> <trust-store key-store-name="clientStore" /> <key-store-ssl-certificate key-store-name="clientKeyStore" alias="client"> <key-store-clear-password password="secret" /> </key-store-ssl-certificate> </ssl-context> </ssl-contexts> <ssl-context-rules> <rule use-ssl-context="client-SSL-context" /> </ssl-context-rules> </authentication-client> </configuration>
使用管理 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
更新于 2024-02-09