我已经完成了在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.
非常感谢大家@cotfessi和@Mike,你们的帖子真的帮助我在Glassfish 4.1中安装了SSL证书。。。非常感谢!
我只想添加一些我必须做的额外步骤,这些是:
在第10步之后-导入ssl证书
keytool-export-alias s1as-file server。cer——密钥库。jks
keytool-delete-alias s1as-keystore-cacerts。jks
keytool-import-v-trustcacerts-alias s1as-keystore cacerts。文件服务器。cer
稍后继续执行步骤11-重启服务器
我还想添加一些信息,这些信息可能对在GoDaddy购买SSL证书的人有用。。。
我还想推荐这篇文章,它帮助我将HTTP流量重定向到HTTPS,而无需对Glassfish(仅限于我的web应用程序)进行额外配置:如何使用Glassfish v4将HTTP重定向到HTTPS
问题几乎可以肯定是s1as证书的区分名称(DN
)已经更改,但是安全管理主体尚未更新。
有一个asadmin命令(enable secure admin principal
),允许您手动更新该命令,但您也可以再次运行enable secure admin
(即使已启用安全管理)。此命令将调用与前一个相同的代码,并将安全管理主体替换为管理员证书别名(s1as)中的正确主体。
然后,您需要重新启动GlassFish以使更改生效,但随后您将能够登录到管理控制台。
根本原因是管理控制台本质上是在登录时执行双向SSL,因此您的用户名和密码将为您(管理用户)进行验证,然后管理控制台本身将使用DN
作为用户ID进行验证将s1as密钥用作密码。这是因为管理控制台通过REST与DAS通信,需要将自己标识为受信任的客户端。
希望所有这些背景都有帮助,但是TL;DR如下:
启用安全管理
问题内容: 我正在下载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生成的默认文件。令人困惑的是…当我试图在没有侦听器