当前位置: 首页 > 知识库问答 >
问题:

Glassfish 5服务器的HTTPS无法“开箱即用”

巫马承德
2023-03-14

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

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

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

我想迈克帮我解决了这个问题。谢谢-你迈克!这是我自己不会想出的解决办法。谢谢你把我从那个洞里救出来。

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

共有1个答案

巩才捷
2023-03-14

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

[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以下。

我在另一个答案中更详细地回答了这个问题,但是,如果您不喜欢降级Java的想法,您可以每晚使用最新的GlassFish 5.0.1,也可以切换到Payara 5,它源于GlassFish,在大多数情况下应该是一样的。

编辑:请注意,在进行其中一项更改后,您仍然需要添加一个安全例外,以便浏览器接受自签名证书,但页面应该不会出现任何进一步的问题;我自己用Java8U144验证了这一点

 类似资料:
  • 首先,我知道有很多类似的问题,但我所看到的似乎都不能解决我的设置(我发现的任何解决方案都不管用)。所以请容忍我。。。 我的服务器主机名是IP地址,而不是域名(即URL看起来像:) 我的服务器有一个真正的证书(即,没有自签名) 我的应用程序的plist条目字典为空(没有任何例外-出厂设置ATS) 这是生产代码,我不能禁用ATS(我也不认为我可以,因为例外只适用于显式域名,而不是IP地址) (iOS9

  • 我在CentOS上安装了apache服务器。我正在尝试添加SSL。我创建了证书和密钥,然后更新了具有以下配置: /etc/httpd/conf.d/ssl.conf文件 然后我更新了< code >/etc/httpd/conf/httpd . conf : /etc/httpd/conf/httpd.conf 然后我运行,一切正常 但是当我使用https访问我的网站时,它显示“此网页不可用”。我

  • 目标:通过使用AppEngine开发服务器减少开发反馈周期。对于我的使用,这必须作为公共HTTPS地址提供。应用程序引擎开发服务器仅支持HTTP。 如何做到这一点:使用ngrok将本地开发环境公开为https公共可用地址。 反向代理与nginx从https到超文本传输协议。 这似乎是可能的,但我的生活我没有得到配置工作。 我正在osx上使用应用程序引擎标准Java。 欢迎其他工作解决方案或想法。肯

  • 我有最困难的时候让我的webpack开发服务器代理到我的后端。 我使用Vue和webpack cli模板。 我的后端托管在docker容器中,可以在localhost:8443/foo上看到 我的devServer配置设置为: 正如我前面所说,当我将浏览器指向https://localhost:8443/foo 当我运行我的webpack服务器,并试图https://localhost:9000/

  • 问题内容: 我使用创建了server.key和server.csr文件。我使用startssl.com创建了一个SSL证书,该证书给了我一个证书文件。然后在我的node.js应用程序中读取密钥和证书文件: 但是,现在我收到来自应用程序的空响应,即“未收到数据”消息。是什么原因造成的?我对SSL以及它的工作原理还很陌生,因此非常感谢您提供任何帮助。 更多信息:我在我的VPS服务器(生产服务器)上生成

  • 配置HTTPS主机,必须在server配置块中打开SSL协议,还需要指定服务器端证书和密钥文件的位置: server { listen 443; server_name www.example.com; ssl on; ssl_certificate www.example.com.