Ssl 更改Payara/Glassfish服务器上的主密码
背景:我需要更改payara服务器主密码。根据文档,主密码必须与密钥库和信任库中的密码匹配,SSL证书才能正常工作。使我的网站在https而不是http上运行 我让Payara服务器运行在: 我试图更改PayarDomain主密码,但出现了一个非循环错误。 1.确保payara域未运行Ssl 更改Payara/Glassfish服务器上的主密码,ssl,glassfish,keystore,change-password,payara,Ssl,Glassfish,Keystore,Change Password,Payara,背景:我需要更改payara服务器主密码。根据文档,主密码必须与密钥库和信任库中的密码匹配,SSL证书才能正常工作。使我的网站在https而不是http上运行 我让Payara服务器运行在: 我试图更改PayarDomain主密码,但出现了一个非循环错误。 1.确保payara域未运行 - ./asadmin stop-domain --force=true payaradomain 当我运行这个命令时,域1被杀死然后被踢出docker容器: ./asadmin stop-domain --k
- ./asadmin stop-domain --force=true payaradomain
当我运行这个命令时,域1被杀死然后被踢出docker容器:
./asadmin stop-domain --kill=true payaradomain
执行此命令时:
./asadmin list-domains
答复:
domain1 running
payaradomain not running
Command list-domains executed successfully.
CLI306: Warning - The server located at /opt/payara41/glassfish/domains/payaradomain is not running.
然后尝试命令:
./asadmin stop-domain --force=true payaradomain
答复:
domain1 running
payaradomain not running
Command list-domains executed successfully.
CLI306: Warning - The server located at /opt/payara41/glassfish/domains/payaradomain is not running.
我对此很满意,但当我尝试时:
./asadmin change-master-password payaradomain
我得到的答复是:
Domain payaradomain at /opt/payara41/glassfish/domains/payaradomain is running. Stop it first.
我已附上下面的图片:请帮助
如果要在docker中配置Payara服务器,包括主密码,应通过扩展默认Payara docker映像来创建自己的docker映像。这是最简单的Dockerfile:
FROM payara/server-full
# specify a new master password "newpassword" instead of the default password "changeit"
RUN echo 'AS_ADMIN_MASTERPASSWORD=changeit\nAS_ADMIN_NEWMASTERPASSWORD=newpassword' >> /opt/masterpwdfile
# execute asadmin command to apply the new master password
RUN ${PAYARA_PATH}/bin/asadmin change-master-password --passwordfile=/opt/masterpwdfile payaradomain
然后,您可以使用以下工具构建自定义docker映像:
docker build -t my-payara/server-full .
docker run -t -i --entrypoint /bin/bash payara/server-full
然后运行my payara/server full
,而不是payara/server full
还要注意,对于默认的Payara docker映像,您应该指定Payara_DOMAIN变量来运行PayarDomain而不是domain1,例如:
docker run --env PAYARA_DOMAIN=payaradomain payara/server-full
上面的示例Dockerfile重新定义了此变量,以便在默认情况下使用PayarDomain,而无需在运行容器时指定它
更改主密码的替代方法
您也可以在不运行Payara服务器的情况下运行docker映像。相反,您可以先运行bashshell,在控制台中执行必要的命令,然后从shell运行服务器
为此,您可以运行docker映像,其中包含:
docker build -t my-payara/server-full .
docker run -t -i --entrypoint /bin/bash payara/server-full
这种方法的缺点是docker容器在前台运行,如果您重新启动它,那么payara服务器必须手动重新启动,因此它实际上仅用于测试目的。您收到消息说
PayarDomain
正在运行的原因是您启动了domain1
PayarDomain
和domain1
使用相同的端口,检查域是否正在运行,查看给定域的管理端口是否正在使用
为了更改主密码,您必须停止两个域,或者更改
PayarDomain
的管理端口,而不是在dockerfile中回显密码。更安全的做法是在生成期间复制包含密码的文件,并在生成完成时删除该文件。Hi@OndrejM,你的回答很有启发性。非常感谢你。我学到了很多。一直以来,我都试图在容器中实现配置,而不是在自定义构建的docker映像中应用解决方案。然后我可以继续并将以下内容添加到DockerFile中,就在您示例的最后一行下:add ca.crt:/etc/ssl/certs
下一行:运行更新ca证书
,如本示例所示:。。。建议在docker映像/构建中存储ssl证书吗?另一件事。我注意到docker java home的ssl证书的默认路径是/etc/ssl/certs
,但glassfish希望ssl证书位于:/opt/payara41/glassfish/domains/payaradomain/config/
如何处理这样一个令人困惑的实现?我刚刚了解到我需要阅读docker的秘密并了解这一点已使用docker完成。Payara/Glassfish不使用证书的默认位置,并希望在PayarDomain/config中使用您编写的证书。我在这里写了一篇关于向Payara添加证书的详细博文: