Как добавить Let's Encrypt key / cert в Payara Micro, используя загрузочный скрипт asadmin - PullRequest
1 голос
/ 29 мая 2019

Я успешно сгенерировал сертификат 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 к собственной установке работает нормально.

...