Клиент Eureka Discovery добавляет самоподписанные сертификаты

У меня есть несколько сервисов при весенней загрузке, которые самостоятельно регистрируются на сервере eureka.

Эти сервисы отлично работают на http. Однако, когда я использую https, регистрация клиента завершается ошибкой из-за проверки SSL.

Как я могу добавить свой самоподписанный файл jks в DiscoveryClient, чтобы доверять сертификатам https?

Редактировать

Мой файл application.yml

    spring:
  application:
    name: docker-prototype-user-profile

server:
  port: 8301
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: https://localhost:8761/eureka/
  instance:
    hostname: localhost

Мой файл application.properties

server.ssl.key-store=classpath:keypair.jks
server.ssl.key-store-password=123456
server.ssl.key-password=123456

Здесь файл jks такой же, как и на сервере eureka. Я использую один и тот же ключ для https во всех службах. Поскольку файл jks содержит открытый и закрытый ключ, здесь он используется для двух целей. 1-й - предоставить закрытый ключ для https этой службы. Во-вторых, я хочу использовать это как сертификат в клиенте eureka discovery.

keytool -genkeypair \
   -keystore keypair.jks \
  -dname "CN=OLEKSIYS-W3T, OU=Sun Java System Application Server, O=Sun Microsystems, L=Santa Clara, ST=California, C=US" \
  -keypass 123456 \
  -storepass 123456 \
  -keyalg RSA \
  -keysize 2048 \
  -alias default \
  -ext SAN=DNS:localhost,DNS:docker-prototype,DNS:docker-prototype-authentication,DNS:docker-prototype-eureka-server,DNS:docker-prototype-post-management,DNS:docker-prototype-secure-service,DNS:docker-prototype-user-management,DNS:docker-prototype-user-profile,DNS:docker-prototype-zuul-gateway \
  -validity 9999

пара ключей создается с помощью вышеуказанной команды


person M. Waseem Ullah Khan    schedule 31.07.2018    source источник
comment
Не могли бы вы поделиться файлом конфигурации клиента   -  person Swarit Agarwal    schedule 31.07.2018
comment
Я добавил файл конфигурации.   -  person M. Waseem Ullah Khan    schedule 01.08.2018
comment
RestTemplate отлично работает с пользовательским HttpClient, но DiscoveryClient использует свой собственный HttpClient. Я попытался внедрить sslContext, используя stackoverflow.com/a/49988212/8019011, но это вызывает исключение со следующим сообщением Создание экземпляра Bean через заводской метод не удался; вложенным исключением является org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [com.netflix.discovery.EurekaClient]: фабричный метод «eurekaClient» вызвал исключение; вложенным исключением является java.lang.RuntimeException: не удалось инициализировать DiscoveryClient!   -  person M. Waseem Ullah Khan    schedule 01.08.2018