SSL рукопожатие не работает на Docker-контейнере

Другой слой косвенности:

for i in $(eval echo {1..$END}); do
    ∶
0
задан Sagar P. Ghagare 16 January 2019 в 04:17
поделиться

2 ответа

Можете ли вы запустить

docker logs <container name> -f

и получить информацию о том, что является результатом попытки SSL-рукопожатия?

Вероятно, вам нужен сертификат SSL в вашем контейнере для подключения к серверу с SSL. Вы можете добавить сертификат к своему образу из вашего Dockerfile:

FROM openjdk:8-jre-alpine
COPY target/app.jar /opt/spring-cloud/lib/
COPY certs/ssl.cer $JAVA_HOME/lib/security
RUN \
  cd $JAVA_HOME/lib/security \
  && keytool -keystore cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias edlscert -file edls.cer
ENTRYPOINT ["/usr/bin/java"]
CMD ["-jar", "/opt/spring-cloud/lib/app.jar"]
VOLUME /var/lib/spring-cloud/config-repo
EXPOSE 9101

Однако у этого подхода есть ограничения, и лучшим решением, вероятно, является предоставление .cer во время развертывания как часть docker-compose file. В любом случае вам понадобится сертификат для связи с внешним сервисом по SSL / HTTPS.

0
ответ дан MikeBFromPDX 16 January 2019 в 04:17
поделиться

Я решил свою проблему, установив значение параметра docker-compose.yml network_mode на host.

docker-compose.yml:

version: '3'
services:
  server:
    restart: always
    build:
      context: .
      dockerfile: dockerfiles/ServerDockerfile
    volumes:
      - .:/sp  # mount repo dir to container for development
    ports:
      - "8090:8090"
    network_mode: "host"
0
ответ дан Šarūnas Ažna 16 January 2019 в 04:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: