Menu Close
Settings Close

Language and Page Formatting Options

1.5.2. 使用 Elytron

1.5.2.1. 使用 Elytron subsystem 为应用程序启用单向 SSL/TLS

在 JBoss EAP 中,您可以使用 JBoss EAP 管理 CLI 或管理控制台为已部署的应用程序启用单向 SSL/TLS。

在管理 CLI 中,可以通过两种方式启用单向 SSL/TLS:

使用安全命令

security enable-ssl-http-server 命令可用于为已部署的应用程序启用单向 SSL/TLS。

示例:向导使用

security enable-ssl-http-server --interactive

Please provide required pieces of information to enable SSL:
Key-store file name (default default-server.keystore): keystore.jks
Password (blank generated): secret
What is your first and last name? [Unknown]: localhost
What is the name of your organizational unit? [Unknown]:
What is the name of your organization? [Unknown]:
What is the name of your City or Locality? [Unknown]:
What is the name of your State or Province? [Unknown]:
What is the two-letter country code for this unit? [Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct y/n [y]?
Validity (in days, blank default): 365
Alias (blank generated): localhost
Enable SSL Mutual Authentication y/n (blank n): n

SSL options:
key store file: keystore.jks
distinguished name: CN=localhost, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
password: secret
validity: 365
alias: localhost
Server keystore file keystore.jks, certificate file keystore.pem and keystore.csr file
will be generated in server configuration directory.
Do you confirm y/n: y

注意

执行命令后,管理 CLI 将重新加载服务器。

现在应用程序启用了单向 SSL/TLS。

使用 Elytron 子系统命令

在 JBoss EAP 中,您可以使用 elytron 子系统和 undertow 子系统来为已部署的应用程序启用单向 SSL/TLS。

  1. 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: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()
  2. 配置一个 key-manager,它引用您的 key-store

    /subsystem=elytron/key-manager=httpsKM:add(key-store=httpsKS,credential-reference={clear-text=secret})
    重要

    红帽没有指定上一命令中的 algorithm 属性,因为 Elytron 子系统使用 KeyManagerFactory.getDefaultAlgorithm() 来确定算法。但是,您可以指定 algorithm 属性。要指定 algorithm 属性,您需要知道您使用的 JDK 提供了哪些关键管理器算法。例如,使用 SunJSSE 的 JDK 提供了 PKIXSunX509 算法。

    在上一命令中,您可以指定 SunX509 作为密钥管理器算法属性。

  3. 配置引用您的 key-managerserver-ssl-context

    /subsystem=elytron/server-ssl-context=httpsSSC:add(key-manager=httpsKM, protocols=["TLSv1.2"])
    重要

    您需要确定您要支持的 SSL/TLS 协议。上面的示例命令使用 TLSv1.2。您可以使用 cipher-suite-filter 参数指定允许哪些密码套件,使用-cipher-suites-order 参数来遵循服务器密码套件顺序。use-cipher-suites-order 属性默认设置为 true。这与旧的 security 子系统行为不同,它默认为遵循客户端密码套件顺序。

    警告

    红帽建议显式禁用 SSLv2、SSLv3 和 TLSv1.0,以便在所有受影响的软件包中明确禁用 TLSv1.1 或 TLSv1.2。

  4. 检查并查看 https-listener 是否已配置为使用旧安全域进行 SSL 配置。

    /subsystem=undertow/server=default-server/https-listener=https:read-attribute(name=security-realm)
    {
        "outcome" => "success",
        "result" => "ApplicationRealm"
    }

    以上命令显示 https-listener 被配置为将 ApplicationRealm 传统安全 realm 用于其 SSL 配置。Undertow 无法同时引用传统的安全域和 Elytron 中的 ssl-context,因此您必须删除对旧安全域的引用。

    注意

    如果结果 未定义,则不需要在下一步中删除对安全域的引用。

  5. 删除对旧安全域的引用,并更新 https-listener 以使用 Elytron 中的 ssl-context

    注意

    https-listener 需要始终配置了 security-realmssl-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
  6. 重新加载服务器。

    reload

    现在应用程序启用了单向 SSL/TLS。

注意

您可以使用 disable-ssl-http-server 命令为已部署的应用程序禁用单向 SSL/TLS。

security disable-ssl-http-server

此命令不会删除 Elytron 资源。它将系统配置为使用 ApplicationRealm legacy security realm 进行其 SSL 配置。

使用管理控制台

您可以使用管理控制台中的 SSL 向导配置 undertow 子系统,为应用启用 SSL。

访问向导:

  1. 访问管理控制台。有关更多信息,请参阅 JBoss EAP 配置指南中的管理控制台部分。
  2. 导航到 ConfigurationSubsystemsWeb(Undertow)Server
  3. 单击要配置的服务器的名称。
  4. View
  5. 导航到 ListenerHTTPS Listener
  6. 选择要启用 SSL 的监听程序,然后点启用 SSL 以启动向导。

    向导可以帮助您在以下场景中启用 SSL:

    • 您需要创建证书存储并生成自签名证书。
    • 您需要从 Let 的加密证书颁发机构获取证书。
    • 您已将证书存储在文件系统中,但没有密钥存储配置。
    • 您已经拥有使用有效证书存储的密钥存储配置。

使用向导,您可以选择性地为 mutual 验证创建信任存储。