Как включить HTTPS на Tomcat в Docker-контейнере? - PullRequest
0 голосов
/ 23 января 2019

Я новичок в Tomcat и Docker, и застрял, пытаясь включить https на моем сайте. Сначала на сервере, а не в любом контейнере:

а) Я создал CSR

б) Приобретен коммерческий сертификат SSL

в) Поместить сертификаты в папку на сервере / etc / docker / certs

d) Затем создал мои контейнеры Docker с конфигурацией ниже

Я могу использовать команду docker exec -it <container-id> sh для навигации по своему контейнеру. Я могу редактировать server.xml и web.xml, но я понимаю, что должен установить сертификаты на уровне ОС вне контейнера, если я хочу, чтобы конфигурация https сохранялась после отдельных контейнеров. Другими словами, я должен иметь возможность удалить контейнер и создать другой, не переустанавливая ssl.

Как я могу это сделать? Есть идеи?. Заранее спасибо! Ниже приведены мои конфигурации:

1.Database

docker run -d --name=example-db --restart=always --net=example-net --mount type=volume,src=mydbdata,target=/example-db --hostname=example-db -e POSTGRES_DB=mydb -e POSTGRES_USER=myuser -e POSTGRES_PASSWORD=secret myapp/db

2.Application

docker run -d --name=example-app --restart=always --mount type=volume,src=mydata,target=/example-app -p 80:8080 --net=example-net -e DB_HOST=example-db -e DB_NAME=mydb -e DB_USER=myuser -e DB_PASSWORD=secret myapp/myapp

Еще раз спасибо за вашу помощь. Art

1 Ответ

0 голосов
/ 07 марта 2019

Вы можете отобразить внешние сертификаты в контейнер в docker run раз, используя bind mounts . Предполагая, что ваши сертификаты находятся в /etc/docker/certs на хосте, и вы хотите, чтобы они были в /etc/ssl/certs в контейнере, затем добавьте любое из следующего:

-v /etc/docker/certs:/etc/ssl/certs:ro

или

--mount type=bind,src=/etc/docker/certs,dst=/etc/ssl/certs,readonly

В этом случае ваша конфигурация Tomcat будет использовать /etc/ssl/certs в качестве пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...