【问题标题】:Glassfish 5 Server's HTTPS Not Working "Out of the Box"Glassfish 5 服务器的 HTTPS 无法“开箱即用”
【发布时间】:2018-05-20 17:45:01
【问题描述】:

我正在阅读本教程页面:https://javaee.github.io/tutorial/security-intro006.html,这说明我应该能够通过访问以下 URL 查看 SSL 版本的主页 (index.html):https://localhost:8181。但是,当我将浏览器指向该地址时,我会收到一个错误,如图 1 所示。

我感觉第一次配置这个可能需要几个小时。有没有人可以帮助我在 Glassfish 中的环回地址上配置 HTTPS 的教程?

我在管理控制台上找到了文档链接,运行在端口 4848 上,但这很难理解。快速入门指南不涉及这方面。我的意思是管理控制台上也有一个快速入门指南,但不包括配置 HTTPS。

图 1:HTTPS/SSL 页面不工作 - glassfish v5

已修复 我认为迈克帮助我解决了这个问题。谢谢你,迈克!那是我自己不会想出的解决方案。谢谢你把我从那个洞里救了出来。

但是,当我现在通过我的环回地址https://localhost:8181 访问这个安全网址时,我实际上看到的是网页,而不是图 1 中所示的错误页面。但是,在 URL 中通过协议有一条红线以及解释连接不安全的文字。 如何确保连接安全?

图 2:Glassfish HTTPS 主页工作但不安全

【问题讨论】:

    标签: ssl glassfish tls1.2


    【解决方案1】:

    如果您查看日志,您可能会在尝试访问安全页面后看到如下内容:

    [2018-05-21T14:34:31.982+0100] [glassfish 5.0] [WARNING] [] [org.glassfish.grizzly.filterchain.DefaultFilterChain] [tid: _ThreadID=100 _ThreadName=http-listener-2(2)] [timeMillis: 1526909671982] [levelValue: 900] [[
      GRIZZLY0013: Exception during FilterChain execution
    java.lang.NoClassDefFoundError: sun/security/ssl/SupportedEllipticCurvesExtension
            at sun.security.ssl.HelloExtensions.<init>(HelloExtensions.java:82)
            at sun.security.ssl.HandshakeMessage$ClientHello.<init>(HandshakeMessage.java:362)
            at sun.security.ssl.ServerHandshaker.processMessage(ServerHandshaker.java:223)
            at sun.security.ssl.Handshaker.processLoop(Handshaker.java:984)
    

    解决方案是将您的 Java 版本降级到低于 8u161 的版本

    I answered this in more detail in another answer 但是,如果您不喜欢降级 Java 的想法,您可以使用 the latest GlassFish 5.0.1 nightlyswitch to Payara 5, which is derived from GlassFish,并且在大多数情况下应该可以正常工作。

    编辑:请注意,在进行其中一项更改后,您仍需要添加安全例外,以便您的浏览器接受自签名证书,但该页面应该没有其他问题;我自己用 Java 8u144 验证了这一点

    【讨论】:

    • 迈克,谢谢你的帮助。这似乎可行,但 URL 中的 https 有一条红线。我没想到红线和显示连接不安全的文字。请在我的问题中查看此屏幕截图。我将把图片贴在那里,因为我不能在 cmets 中。我降级到 Java jdk 1.8.0_152,顺便说一句。
    • 迈克,有什么办法保证连接安全吗?截至目前,地址中有上述通过协议的红线,以及带有红色三角形的“不安全”字样,所述三角形内有一个感叹号。
    • 您需要让浏览器信任 GlassFish 附带的演示证书(坏主意)或为您的域获取有效的 SSL 证书(好主意)。 LetsEncrypt 是最好/最简单的方法(因为它是免费的)。完成后,您可以按照以下说明操作:blog.payara.fish/…
    • 哇,再次感谢 Mike 对这个问题的帮助。
    • 本页介绍了一种为 localhost 创建证书的更简单方法:letsencrypt.org/docs/certificates-for-localhost
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多