Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssl 更改Payara/Glassfish服务器上的主密码_Ssl_Glassfish_Keystore_Change Password_Payara - Fatal编程技术网

Ssl 更改Payara/Glassfish服务器上的主密码

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

背景:我需要更改payara服务器主密码。根据文档,主密码必须与密钥库和信任库中的密码匹配,SSL证书才能正常工作。使我的网站在https而不是http上运行

我让Payara服务器运行在:

我试图更改PayarDomain主密码,但出现了一个非循环错误。 1.确保payara域未运行

- ./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添加证书的详细博文: