【问题标题】:Right way to configure Glassfish SSL certificate nickname?配置 Glassfish SSL 证书昵称的正确方法?
【发布时间】:2015-03-26 12:13:11
【问题描述】:

Glassfish 允许通过其管理控制台设置 SSL 证书昵称,如下图所示:

但几乎网络上的每个教程都提到有必要将所有出现的默认 SSL 昵称 (s1as) 替换为 domain.xml 文件中将使用的昵称(即mydomain.com)。

那么设置证书昵称的正确方法是什么?

【问题讨论】:

标签: java ssl glassfish glassfish-4 glassfish-4.1


【解决方案1】:

管理控制台很可能只是在更新 domain.xml 文件。无论哪种情况,最好尽量避免修改 domain.xml 文件。 GF4 的安全指南中没有官方建议,唯一提到的证书昵称是:

如果您在启用 SSL 的 GlassFish Server 上启用安全管理员 安装,安全管理员使用现有值 作为安全管理员的 DAS 管理员别名。

https://glassfish.java.net/docs/4.0/security-guide.pdf

从功能的角度来看,实际上并没有必要更改昵称。当您将您的密钥/证书导入到密钥库时,您可以使用相同的名称来替换现有的证书,这是完全有效的。


编辑:要使用asadmin 命令更改别名,您可以使用enable-secure-admin--instancealias myNewAlias--adminalias myOtherNewAlias(或两者)。

adminalias 的默认值为s1asinstancealias 的默认值为glassfish-instance

【讨论】:

  • 它不起作用;在我用默认的s1as 替换我的证书之后;我无法登录到 Admin Console,得到了j_security_check 页面并在服务器日志中发现了这个异常:ssl_handshake
  • 这是因为 GlassFish 同时存在密钥库和信任库,并且管理控制台有效地使用 2 路 SSL 身份验证进行初始登录。如果您更改 s1as 证书,您还需要更改 glassfish-instance 证书,即将根证书导入 truststore.jks 并将服务器链导入 keystore.jks。如果你不熟悉它可能会很棘手。
  • 我已经添加了一些进一步的解释。如果您想了解更多信息,请查看我在答案中链接的官方指南,并查看第 5-4 节(第 80 页)
  • 我按照您编写的步骤将s1asglassfish-instance 证书替换为我的域证书。 SSL 现在可以工作,但我仍然无法登录到管理控制台。我从local-password 文件中获取我的管理员密码并登录到管理控制台。然后我更改了管理员密码,但我仍然无法使用新密码登录管理控制台。
  • 您可能需要使用新证书的正确专有名称更新secure-admin-principal。幸运的是,当您运行asadmin enable-secure-admin 时,GF 会检查这是否需要并为您填写正确的值。是否已启用安全管理员并不重要,它仍然可以工作。如果您愿意,您可以在 domain.xmlstandalone.xml 文件之前和之后检查 secure-admin-principal 并查看它是否得到更新。 HTH。
【解决方案2】:

http-listener-2 是在端口 8181 上启用了 ssl 的默认 http 侦听器(glassfish 或 payara),如果您在下面的命令中为其创建了另一个更改。

asadmin set "configs.config.server-config.network-config.protocols.protocol.http-listener-2.ssl.cert-nickname=yourNickName"

【讨论】:

    猜你喜欢
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2020-03-09
    • 2013-08-16
    • 2020-04-24
    • 2019-03-13
    相关资源
    最近更新 更多