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
修订了 2022 年 2 月 16 日 16:42:31 +1000