Приложение Spring Boot вызывает другое приложение Spring Boot через HTTPS и получает ошибку проверки сертификата SSL: «проверка подписи не удалась» - PullRequest
0 голосов
/ 02 октября 2018

У меня есть два приложения Spring Boot, каждое из которых работает в своем собственном док-контейнере.

Одно из них - REST Client, а другое - REST API.

Когда клиент вызывает API (т. Е. GET https://localhost:8443/api/someResource), Я получаю следующую ошибку:

Причина: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: Ошибка проверки пути PKIX: java.security.cert.CertPathValidatorException:Сбой проверки подписи

Каждое приложение для весенней загрузки имеет свое собственное хранилище ключей и самозаверяющий сертификат, хранящийся в src / main / resources / keystore.p12

..Вот что у меня в файлах application.yml: следующие свойства:

server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: somethingsecure
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: client or server (depending which .yml file your looking at)

Я проверил это вне Docker и все работало нормально!Я просто экспортировал сертификат API из файла keystore.p12 и импортировал его в мой файл JRA cacerts.

Как видно из моего файла REST Client Docker, я делаю там то же самое:

FROM openjdk:8-jdk-alpine
EXPOSE 8443
WORKDIR /usr/src/app
COPY client.jar client.jar
COPY server.crt server.crt
RUN keytool -v -import -noprompt -alias server -file server.crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "client.jar"]

Я включил отладку SSL и вижу следующее:

trustStore is: /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/cacerts
trustStore type is : jks
trustStore provider is : 
init truststore

...

adding as trusted cert:
  Subject: CN=localhost, OU=Development, O=Microgen, L=Fleet, ST=Hampshire, C=UK
  Issuer:  CN=localhost, OU=Development, O=Microgen, L=Fleet, ST=Hampshire, C=UK
  Algorithm: RSA; Serial number: 0x4c1fbbc3
  Valid from Mon Apr 16 09:49:33 GMT 2018 until Tue Apr 16 09:49:33 GMT 2019

Есть идеи?

Спасибо,

Бен

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Мне удалось выяснить это сегодня утром.Сертификат сервера был просто поврежден, и после восстановления это сработало.

0 голосов
/ 03 октября 2018

Я не эксперт, но при экспорте сертификата и импорте мне интересно, совпадает ли цепочка сертификатов в вашем новом местоположении с местоположением, из которого вы его взяли.

Вот ссылка, которая может дать некоторое представлениев разделе «Причина»

https://confluence.atlassian.com/kb/connecting-to-ssl-services-802171215.html

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