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

玻璃鱼v4

司寇旺
2023-03-14

我已经完成了在glassfish v4中添加SSL证书的步骤。我已经通过浏览器和java swing客户端验证了它的有效性(我在客户端使用apache的http客户端库)

什么不工作是管理控制台!由于成功导入SSL,我不能再连接到管理控制台,http://www.myhost.com:4848,我仍然得到登录屏幕,总是工作的管理员用户名/密码组合已停止工作。我也注意到当尝试部署一个网络应用程序从netbean的问题,但我还没有研究足够的东西,知道它是否是相同的问题。

以下是我添加ssl证书的步骤。这些步骤直接从glassfish v4安全指南p1-26到p1-29中获得。我确实添加了一个步骤来更改主密码,但我应该早点这么做,但我在这里包括它。出于隐私考虑,我在下面的步骤中省略或更改了某些文件夹名称,但除此之外,我已经从终端应用程序中复制了所有这些名称。

有人知道管理员出了什么问题吗?需要注意的一件事是,遵循glassfish的管理和安全指南,我可以将s1as别名改写。你会注意到,我在下面的步骤中使用证书时使用了这个别名

提前感谢您的帮助!

步骤1-停止服务器

/usr/home/myhost                                                                                                                                                                                                                                           
110 % glassfish4/bin/asadmin stop-domain domain1
Waiting for the domain to stop .
Command stop-domain executed successfully.

第2步-更新主密码

/usr/home/myhost
110 % glassfish4/bin/asadmin
Use "exit" to exit and "help" for online help.
asadmin> change-master-password domain1
Enter the current master password>
Enter the new master password>
Enter the new master password again>
Command change-master-password executed successfully.
asadmin> exit
Command multimode executed successfully.

步骤3-更改到keyfile目录

/usr/home/myhost
111 % cd glassfish4/glassfish/domains/domain1/config/

步骤4-从密钥库中删除s1as

/usr/home/myhost/glassfish4/glassfish/domains/domain1/config
113 % keytool -delete -alias s1as -keystore keystore.jks
Enter keystore password:

第5步-生成新密钥对

/usr/home/myhost/glassfish4/glassfish/domains/domain1/config
114 % keytool -genkey -alias s1as -keyalg RSA -keystore keystore.jks -keysize 2048
Enter keystore password:
What is your first and last name?
[Unknown]:  www.myhost-dev.com
What is the name of your organizational unit?
[Unknown]:  development
What is the name of your organization?
[Unknown]:  myhost, inc
What is the name of your City or Locality?
[Unknown]:  mycity
What is the name of your State or Province?
[Unknown]:  mystate
What is the two-letter country code for this unit?
[Unknown]:  us
Is CN=www.myhost-dev.com, OU=development, O="myhost, inc", L=mycity, ST=mystate, C=us correct?
Enter key password for <s1as>
(RETURN if same as keystore password): 

步骤6-生成证书签名请求(CSR)

/usr/home/myhost/glassfish4/glassfish/domains/domain1/config
115 % keytool -certreq -alias s1as -file toSymantec02.csr -keystore keystore.jks
Enter keystore password: 

第7步-向赛门铁克提交企业社会责任

步骤8-将中间和ssl证书从symantec复制到配置目录

第9步-导入中间证书

/usr/home/myhost/glassfish4/glassfish/domains/domain1/config
115 % keytool -import -trustcacerts -alias Intermediate -keystore keystore.jks -file IntermediateCA.crt
Enter keystore password:
Certificate was added to keystore

步骤10-导入ssl证书

/usr/home/myhost/glassfish4/glassfish/domains/domain1/config
116 % keytool -import -trustcacerts -alias s1as -keystore keystore.jks -file ssl_certificate.crt
Enter keystore password:
Certificate reply was installed in keystore

11.重启服务器

/usr/home/myhost
118 % glassfish4/bin/asadmin start-domain domain1
Enter master password (3) attempt(s) remain)>
Waiting for domain1 to start ...............................
Successfully started the domain : domain1
domain  Location: /usr/home/myhost/glassfish4/glassfish/domains/domain1
Log File:/usr/home/myhost/glassfish4/glassfish/domains/domain1/logs/server.log
Admin Port: 4848
Command start-domain executed successfully.

共有2个答案

羊禄
2023-03-14

非常感谢大家@cotfessi和@Mike,你们的帖子真的帮助我在Glassfish 4.1中安装了SSL证书。。。非常感谢!

我只想添加一些我必须做的额外步骤,这些是:

在第10步之后-导入ssl证书

  • 从密钥库导出别名s1as。jks

keytool-export-alias s1as-file server。cer——密钥库。jks

  • 从cacerts中删除别名s1as。jks

keytool-delete-alias s1as-keystore-cacerts。jks

  • 将别名s1as导入cacerts。jks正在使用服务器。cer

keytool-import-v-trustcacerts-alias s1as-keystore cacerts。文件服务器。cer

稍后继续执行步骤11-重启服务器

我还想添加一些信息,这些信息可能对在GoDaddy购买SSL证书的人有用。。。

  • 嗯,我买了SSL在GoDa和我必须发送给他们我的(CSR)如@cottfessi描述在步骤6和步骤7,所以我收到和电子邮件与一些说明下载的zip与证书,所以当我去下载它我发现他们有一个列表选项的形式,说服务器类型,它有多个选项,如Apache,Tomcat,IIS...和其他,所以我选择了另一个选项,并下载了zip,当我提取它我注意到有2文件,一个名为4a0BlaBlaBlaBla8.crt(Bla仅用于示例目的),其中只包含一个带有---BEGIN/END CERTIFICATE---的部分,另一个具有类似gd_bundle-g2-g1.crt的名称,其中包含3个---BEGIN/END CERTIFICATE---部分,所以我使用4a0BlaBlaBlaBla8.crt作为我的ssl_certificate.crt和gd_bundle-g2-g1.crt作为我的Intermedia ateCA. crt。我想分享这个,因为它可能会让戈达德的用户有点困惑(我想...)

我还想推荐这篇文章,它帮助我将HTTP流量重定向到HTTPS,而无需对Glassfish(仅限于我的web应用程序)进行额外配置:如何使用Glassfish v4将HTTP重定向到HTTPS

隆宏爽
2023-03-14

问题几乎可以肯定是s1as证书的区分名称(DN)已经更改,但是安全管理主体尚未更新。

有一个asadmin命令(enable secure admin principal),允许您手动更新该命令,但您也可以再次运行enable secure admin(即使已启用安全管理)。此命令将调用与前一个相同的代码,并将安全管理主体替换为管理员证书别名(s1as)中的正确主体。

然后,您需要重新启动GlassFish以使更改生效,但随后您将能够登录到管理控制台。

根本原因是管理控制台本质上是在登录时执行双向SSL,因此您的用户名和密码将为您(管理用户)进行验证,然后管理控制台本身将使用DN作为用户ID进行验证将s1as密钥用作密码。这是因为管理控制台通过REST与DAS通信,需要将自己标识为受信任的客户端。

希望所有这些背景都有帮助,但是TL;DR如下:

  1. 再次运行启用安全管理
  2. 重新启动域
 类似资料:
  • 问题内容: 我正在下载Java EE,似乎有许多不同的下载选项。我不确定应该选择哪一个。Java EE似乎与GlassFish打包在一起。谁能告诉我这是什么,它对我有什么好处? 其次,如果我只是想玩转并了解Java EE,那么对我来说下载的是什么?列出选项的链接在下面… Java EE下载选项 问题答案: 首先,将近五年前它被称为Java EE。首字母缩略词J2EE仍指5.0之前的旧Java EE

  • 我将mysql驱动程序放入glassfish/admin1/lib,我在尝试与GlassFish 3.1.2建立连接时收到此错误 为SimpleCRUD_ConnectionPool Ping连接池失败。类名错误或未为:com设置类路径。mysql。jdbc。jdbc2。可选择的MysqlDataSource请检查服务器。记录更多细节。 野兔配置: 池名称:SimpleCRUD_Connectio

  • 这是我在尝试更改主密码时看到的。。。我尝试了几乎所有字符、数字、特殊字符的组合/home/larry$/home/glassfish/bin/asadmin更改主密码--savemasterpassword=true输入当前主密码

  • 我编写了一个maven应用程序,应该在Glassfish 4上运行。 标准应用程序配置如下所示: 现在的问题是,生成Json的资源应该使用jackson 2.3注释。但我的玻璃鱼用了一些鳕鱼。。。提供json的包。科德豪斯是杰克逊的旧版本。我想使用fasterxml中的新注释,它提供了@JsonIdentityInfo注释。 我想我可以通过写以下内容来解决我的问题: 但是没有效果。现在Glassf

  • 我想在Glassfish中使用Jenkins的这些批处理命令部署一个WAR。:

  • 我试图在Netbeans中运行一个非常基本的servlet ContextListener程序。我已经很好地编码了它,但是在最后时刻,当我试图执行它的时候,程序的输出标签给了我如下所示的错误.. 这是我的ContextListener.java档案 这是网络.xml Netbeans没有显示任何语法错误。servlet文件是Netbeans IDE生成的默认文件。令人困惑的是…当我试图在没有侦听器