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

Change Master Password on Payara/Glassfish Server

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

我在 Docker Container through the guide 中获得了 Payara-Server 运行ning:

我试图更改 payaradomain 主密码,但出现非循环错误。 1. 确保 payara-domain 不是 运行ning.

- ./asadmin stop-domain --force=true payaradomain

当我 运行 这个命令时,domain1 反而被杀死了。 & 然后踢出 docker 容器:

./asadmin stop-domain --kill=true payaradomain

当我执行这条命令时:

./asadmin list-domains

回复:

domain1 running
payaradomain not running
Command list-domains executed successfully.

然后尝试命令:

./asadmin stop-domain --force=true payaradomain

回复:

 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 .

然后 运行 my-payara/server-full 而不是 payara/server-full.

另请注意,使用默认的 Payara docker 图像,您应该将 PAYARA_DOMAIN 变量指定为 运行 payaradomain 而不是 domain1,例如:

docker run --env PAYARA_DOMAIN=payaradomain payara/server-full

上面的示例 Dockerfile 重新定义了这个变量,因此默认使用 payaradomain,而不需要在 运行 连接容器时指定它。

更改主密码的替代方法

您 cn 或者 运行 docker 图像没有 运行ning Payara 服务器。相反,您可以先 运行 bash shell 在控制台和 运行 服务器中执行必要的命令 shell.

为此,您需要 运行 docker 图像:

docker run -t -i --entrypoint /bin/bash payara/server-full

这种方法的缺点是 docker 容器 运行 在前台,如果您重新启动它,则必须手动重新启动 payara 服务器,因此它实际上仅用于测试目的。

您收到 payaradomain 消息的原因是 运行 是因为您已经开始 domain1payaradomaindomain1 使用相同的端口,检查域是否 运行 会查看给定域的管理端口是否正在使用。

要更改主密码,您必须停止两个域或更改 payaradomain 的管理端口。

与其在 dockerfile 中回显密码,不如在构建期间复制包含密码的文件并在构建完成后删除该文件更安全。