Я успешно сгенерировал сертификат Let's Encrypt для своего набора, используя автономный сервер certbot, но теперь я хочу переместить их в микроконтейнер payara для производства. Payara Micro позволяет мне помещать команды asadmin в скрипты pre / post, которые он запускает и запускает.
Во-первых, вот команда docker для создания контейнера:
docker run -p 8765:8090 \
--mount type=bind,src=$(pwd)/deployments,dst=/opt/payara/deployments \
--mount type=bind,src=$(pwd)/lib,dst=/opt/payara/lib \
--mount type=bind,src=$(pwd)/cert,dst=/opt/payara/cert \
--mount type=bind,src=$(pwd)/scripts,dst=/opt/payara/scripts \
--env-file payara.env \
--restart=always \
payara/micro:5.191 \
--prebootcommandfile /opt/payara/scripts/preboot.asadmin \
--addlibs /opt/payara/lib \
--deploy /opt/payara/deployments/MyApp.war \
--sslport 8090 \
--sslcert le_myapp \
--contextroot ROOT
Сценарий preboot.asadmin
имеет одну строку:
add-pkcs8 --domain_name production --destalias "le_myapp" --priv-key-path /opt/payara/cert/privkey.pem --cert-chain-path /etc/letsencrypt/opt/payara/cert/fullchain.pem
Конечно, регистрация сертификата завершается неудачно, и журнал не предоставляет никакой полезной информации о том, почему он не прошел:
[2019-05-29T16:41:48.329+0000] [] [WARNING] [] [fish.payara.boot.runtime.BootCommand] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1559148108329] [levelValue: 900] Boot Command add-pkcs8 failed Exception while executing command.
[2019-05-29T16:41:48.999+0000] [] [INFO] [] [fish.payara.boot.runtime.BootCommand] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1559148108999] [levelValue: 800] [[
Boot Command set returned with result SUCCESS : PlainTextActionReporterSUCCESSDescription: set AdminCommandnull
configs.config.server-config.network-config.network-listeners.network-listener.https-listener.port=8090
]]
[2019-05-29T16:41:49.042+0000] [] [INFO] [] [fish.payara.boot.runtime.BootCommand] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1559148109042] [levelValue: 800] [[
Boot Command set returned with result SUCCESS : PlainTextActionReporterSUCCESSDescription: set AdminCommandnull
configs.config.server-config.network-config.network-listeners.network-listener.https-listener.enabled=true
]]
[2019-05-29T16:41:49.114+0000] [] [INFO] [] [fish.payara.boot.runtime.BootCommand] [tid: _ThreadID=1 _ThreadName=main] [timeMillis: 1559148109114] [levelValue: 800] [[
Boot Command set returned with result SUCCESS : PlainTextActionReporterSUCCESSDescription: set AdminCommandnull
configs.config.server-config.network-config.protocols.protocol.https-listener.ssl.cert-nickname=le_myapp
]]
ОБНОВЛЕНИЕ 1:
Я подал проблему с payara / Payara / Issues / 4010 , потому что я думаю, что это проблема с командой в издании Micro. Если есть обновление для этой проблемы, я опубликую обновление здесь.
ОБНОВЛЕНИЕ 2:
Как предложено в проблеме с github, я удалил --domain_name production
из команды. Я даже попробовал немикро payara/server-web:5.192
. Ни один не работал. Применение той же команды asadmin к собственной установке работает нормально.