1.4.2. 使用 Elytron
1.4.2.1. 使用 Elytron 子系统为应用启用单向 SSL/TLS 复制链接链接已复制到粘贴板!
在 JBoss EAP 中,您可以使用 JBoss EAP 管理 CLI 或管理控制台为已部署的应用启用单向 SSL/TLS。
在管理 CLI 中,可通过两种方式启用单向 SSL/TLS:
- 使用 security 命令.
-
使用
elytron
子系统命令.
使用安全命令
security enable-ssl-http-server
命令可用于为已部署的应用启用单向 SSL/TLS。
示例:向导使用
执行命令后,管理 CLI 将重新加载服务器。
现在应用程序启用了单向 SSL/TLS。
使用 Elytron 子系统命令
在 JBoss EAP 中,您可以使用 elytron
子系统和 undertow
子系统,为已部署的应用启用单向 SSL/TLS。
在 JBoss EAP
中配置密钥存储.
/subsystem=elytron/key-store=httpsKS:add(path=/path/to/keystore.jks, credential-reference={clear-text=secret}, type=JKS)
/subsystem=elytron/key-store=httpsKS:add(path=/path/to/keystore.jks, credential-reference={clear-text=secret}, type=JKS)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果密钥存储文件尚不存在,使用以下命令来生成示例密钥对:
/subsystem=elytron/key-store=httpsKS:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost") /subsystem=elytron/key-store=httpsKS:store()
/subsystem=elytron/key-store=httpsKS:generate-key-pair(alias=localhost,algorithm=RSA,key-size=1024,validity=365,credential-reference={clear-text=secret},distinguished-name="CN=localhost") /subsystem=elytron/key-store=httpsKS:store()
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置一个
key-manager
,以引用您的密钥存储
。/subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS, algorithm="SunX509", credential-reference={clear-text=secret})
/subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS, algorithm="SunX509", credential-reference={clear-text=secret})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您需要了解您使用的 JDK 提供了哪些关键管理器算法。例如,使用 SunJSSE 的 JDK 提供
PKIX
和SunX509
算法。上面的示例命令将
SunX509
用于密钥管理器算法。配置引用您的
key
。-manager 的 server-ssl-
context/subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM, protocols=["TLSv1.2"])
/subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM, protocols=["TLSv1.2"])
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您需要确定您要支持的 SSL/TLS 协议。上面的示例命令使用
TLSv1.2
。您可以使用cipher-suite-filter
参数指定允许哪些密码套件,以及使用-cipher-suites-order
参数来执行服务器密码套件顺序。使用-cipher-suites-order
属性默认设置为true
。这与旧的安全
子系统行为不同,后者默认为遵从客户端密码套件顺序。警告红帽建议显式禁用 SSLv2、SSLv3 和 TLSv1.0,以便在所有受影响的软件包中明确禁用 TLSv1.1 或 TLSv1.2。
检查并查看
https-listener
是否配置为使用传统安全域进行其 SSL 配置。/subsystem=undertow/server=default-server/https-listener=https:read-attribute(name=security-realm) { "outcome" => "success", "result" => "ApplicationRealm" }
/subsystem=undertow/server=default-server/https-listener=https:read-attribute(name=security-realm) { "outcome" => "success", "result" => "ApplicationRealm" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上命令显示
https-listener
已配置为使用ApplicationRealm
传统安全域进行 SSL 配置。Undertow 无法同时引用 Elytron 中的传统安全域和ssl-context
,因此您必须删除对旧安全域的引用。注意如果未定义
结果,则无需在下一步中移除对安全域的引用。移除对传统安全域的引用,并将
https-listener
更新为从 Elytron 使用ssl-context
。注意HTTPS-listener
必须始终配置security-realm
orssl-context
。在两种配置之间更改时,命令必须以单批形式执行,如下所示:batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC) run-batch
batch /subsystem=undertow/server=default-server/https-listener=https:undefine-attribute(name=security-realm) /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=ssl-context, value=httpsSSC) run-batch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新加载服务器:
reload
reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在应用程序启用了单向 SSL/TLS。
您可以使用 disable- ssl-http-server 命令为已部署的应用程序禁用
单向 SSL/TLS。
security disable-ssl-http-server
security disable-ssl-http-server
此命令不会删除 Elytron 资源。它将系统配置为使用 ApplicationRealm
传统安全域进行 SSL 配置。
使用管理控制台
您可以使用管理控制台中的 SSL 向导配置 undertow
子系统,为应用启用 SSL。
访问向导:
- 访问管理控制台。如需更多信息,请参见《JBoss EAP 配置指南 https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.3/html-single/configuration_guide/#management_console_overview 》中的管理控制台部分。
-
导航到 Configuration
Subsystems Web(Undertow) Server。 - 单击要配置的服务器的名称。
- 单击 View。
-
导航到 Listener
HTTPS Listener。 选择要为其启用 SSL 的监听程序,然后单击 Enable SSL 以启动向导。
向导会引导您完成以下场景以启用 SSL:
- 您需要创建证书存储并生成自签名证书。
- 您需要从 Let 的加密认证机构获得证书。
- 您已在文件系统中拥有证书存储,但没有密钥存储配置。
- 您已有使用有效证书存储的密钥存储配置。
使用向导时,您可以选择为相互身份验证创建一个信任存储。