GF3 (JDK 6) 如何配置安全协议以删除过时的密码

GF3 (JDK 6) how to config security protocol to remove obsolete cryptography

在我工作的公司中,我们有一台带有 CAS 的服务器 GF 3.1.1 (JDK 6),它可以对另一个系统中的用户进行身份验证。在上次更新 Firefox (v. 39x) 后,我们从浏览器中获取了以下信息:

mydomain.com SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange handshake message.

如果不 this workaround 或使用其他浏览器,则无法访问该站点。 在 chrome 中,我可以正常访问,但如果我查看连接属性,它会显示:

Your connection is encrypted with obsolete cryptography.

The connection uses TLS 1.0.

The connection is encrypted using AES_128_CBC, with SHA1 for message authentication an DHE_RSA as the key exchange mechanism.

我不能配置我们客户的所有浏览器,也不能说他们只使用 chrome。也许将来 chrome 也可以这样做。所以我的解决方案是正确配置服务器。问题是我不知道该怎么做。

我在 GF 中找到我可以在 Configurations > server-config > Network Config > Protocols > http-listner-2 > SSL 中进行配置

然后我发现here一个推荐使用的一些密码的黑名单和白名单。我试着把所有黑色的都去掉,把所有的都变成白色。但我仍然有问题。我认为此列表可能已过时。

感谢任何帮助。

终于。我找到了解决办法。 我搜索了很多,我可以找到一个解决方案,所以我尝试一个一个地测试一个密码。所以,去工作(我并不是说那是正确的方法)。我必须这样做:

在:

Configurations > server-config > Network Config > Protocols > http-listner-2 > SSL

  1. 添加所有可用的密码
  2. 删除所有 Diffie-Hellman 密码
  3. 保存

之后我们的应用程序可以再次在任何浏览器中打开。我希望它可以帮助某人。

对于管理员:

Configurations > server-config > Service HTTP > Listeners HTTP > admin-listner > SSL

  1. 添加所有可用的密码
  2. 删除所有 Diffie-Hellman 密码
  3. 保存
  4. 重启

编辑:whitelist here 相比,将成为新白名单一部分的其余密码是:

白名单

  1. TLS_RSA_WITH_AES_128_CBC_SHA
  2. SSL_RSA_WITH_3DES_EDE_CBC_SHA

谢谢,Sertage,成功了!

不过,还需要固定管理端口的协议(通常为4848)。 (当然,它也应该使用 HTTPS!)

但是,在 GF 3.1.2.2 中,协议 'admin-listener' 似乎有点指向协议 'sec-admin-listener',并且没有 'SSL' 选项卡。更改协议 'admin-listener' 的 SSL 参数会导致一条错误消息,显示 'Could not apply changes. No Configuration found for configs.config.server-config.network-config.protocols.protocol.admin-listener.ssl'。关于如何配置管理端口有什么建议吗?

我刚刚在使用 Chrome 和管理控制台时也遇到了这个问题。我绕过它的方法是删除侦听器的当前 ssl 证书,然后使用带有 --ssl3tlsciphers 选项的一组特定密码重新创建它。对我来说是管理员监听器,所以我首先删除了当前的默认证书:

asadmin delete-ssl --type http-listener admin-listener

然后我使用以下命令重新创建了它:

asadmin create-ssl --type http-listener --certname s1as --ssl3tlsciphers SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV,SSL_RSA_WITH_NULL_MD5,SSL_RSA_WITH_NULL_SHA,SSL_DH_anon_WITH_RC4_128_MD5,TLS_DH_anon_WITH_AES_128_CBC_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,SSL_DH_anon_WITH_DES_CBC_SHA,SSL_DH_anon_EXPORT_WITH_RC4_40_MD5,SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA    admin-listener

我注意到仅删除默认证书并不会删除 domain.xml 文件中对它的所有引用。我一直无法找到正确的方法来做到这一点。我只是反复试验。另一种方法是修改 domain.xml 文件,其中定义了侦听器的 ssl 元素并添加属性 "ssl3-tls-ciphers":

<ssl ssl3-tls-ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_RSA_WITH_DES_CBC_SHA,SSL_RSA_EXPORT_WITH_RC4_40_MD5,SSL_RSA_EXPORT_WITH_DES40_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV,SSL_RSA_WITH_NULL_MD5,SSL_RSA_WITH_NULL_SHA,SSL_DH_anon_WITH_RC4_128_MD5,TLS_DH_anon_WITH_AES_128_CBC_SHA,SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,SSL_DH_anon_WITH_DES_CBC_SHA,SSL_DH_anon_EXPORT_WITH_RC4_40_MD5,SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA" classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl" cert-nickname="s1as"></ssl>

这两种方法都需要重新启动 glassfish。