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
- 添加所有可用的密码
- 删除所有 Diffie-Hellman 密码
- 保存
之后我们的应用程序可以再次在任何浏览器中打开。我希望它可以帮助某人。
对于管理员:
Configurations > server-config > Service HTTP > Listeners HTTP > admin-listner > SSL
- 添加所有可用的密码
- 删除所有 Diffie-Hellman 密码
- 保存
- 重启
编辑: 与 whitelist here 相比,将成为新白名单一部分的其余密码是:
白名单
- TLS_RSA_WITH_AES_128_CBC_SHA
- 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。
在我工作的公司中,我们有一台带有 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
- 添加所有可用的密码
- 删除所有 Diffie-Hellman 密码
- 保存
之后我们的应用程序可以再次在任何浏览器中打开。我希望它可以帮助某人。
对于管理员:
Configurations > server-config > Service HTTP > Listeners HTTP > admin-listner > SSL
- 添加所有可用的密码
- 删除所有 Diffie-Hellman 密码
- 保存
- 重启
编辑: 与 whitelist here 相比,将成为新白名单一部分的其余密码是:
白名单
- TLS_RSA_WITH_AES_128_CBC_SHA
- 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。