Я пытаюсь включить SSL для своего приложения Spring Cloud. Сейчас он состоит из нескольких сервисов, Eureka и Zuul (No Ribbon или Feighn). Я нашел несколько подсказок, как включить SSL для Eureka, но не смог заставить его работать. На стороне Zuul я не нашел никакой информации, кроме этой: Zuul Поддержка SSL, которая фактически запрещает использование случайного порта: (server.port = 0). Мой application.yml приложения:
server:
port: 0
ssl:
key-store: classpath:keystore.jks
key-store-password: password
key-password: password
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
eureka:
instance:
leaseRenewalIntervalInSeconds: 10
metadataMap:
instanceId: ${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${server.port}}}
client:
registryFetchIntervalSeconds: 5
logging:
level:
com.netflix.discovery: 'OFF'
Сервер Eureka application.yml:
server:
port: 8761
ssl:
key-store: classpath:keystore.jks
key-store-password: password
key-password: password
eureka:
instance:
hostname: localhost
securePort: ${server.port}
securePortEnabled: true
nonSecurePortEnabled: false
secureVirtualHostName: ${spring.application.name}
homePageUrl: https://${eureka.instance.hostname}:${server.port}/
statusPageUrl: https://${eureka.instance.hostname}:${server.port}/admin/info
metadataMap:
hostname : ${eureka.instance.hostname}
securePort: ${server.port}
server:
waitTimeInMsWhenSyncEmpty: 0
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
Я не уверен, что мне нужно добавить в Zuul application.yml, чтобы разрешить SSL, поэтому я его пропускаю.
Когда я запускаю Eureka и свое приложение, я получаю повторяющиеся исключения:
2015-07-19 12:46:42.527 INFO 7972 --- [pool-7-thread-1] o.a.http.impl.client.DefaultHttpClient : I/O exception (org.apache.http.NoHttpResponseException) caught when processing request to {}->http://localhost:8761: The target server failed to respond
2015-07-19 12:46:42.527 INFO 7972 --- [pool-7-thread-1] o.a.http.impl.client.DefaultHttpClient : Retrying request to {}->http://localhost:8761
Я также получаю 404 для команды curl:
curl -k -i -X ПОЛУЧИТЬ https://localhost:8761/eureka
Зуул не запускается, потому что не может подключиться к Эврике.
Я почти уверен, что помещаю конфигурации в неправильные файлы application.yml (и я до сих пор не знаю, как настроить Zuul).
Мне интересно, есть ли где-нибудь документация, в которой рассказывается, как включить SSL для всех компонентов Netflix.
http://${eureka.instance.hostname}:${server.port}/eureka/
. Это должно быть имя хоста сервера eureka, а не экземпляр, на котором запущен клиент eureka (каковы свойстваeureka.instance.*
). - person spencergibb   schedule 09.09.2015