Java 免费dyno的Heroku证书与之不匹配';乌尔河

Java 免费dyno的Heroku证书与之不匹配';乌尔河,java,heroku,spring-boot,ssl-certificate,netflix-zuul,Java,Heroku,Spring Boot,Ssl Certificate,Netflix Zuul,我正在微服务体系结构中构建一个应用程序。我正在使用Netflix的zuul、eureka和基于SpringApplication的微服务。整个项目将部署在Heroku使用免费帐户。因此,每个服务都是一个独立的应用程序,由Heroku通过https向公众提供服务 现在我已经成功地部署了eureka,然后部署了在eureka中注册的microservice,然后部署了在eureka中注册并从eureka获取路由的zuul。现在我面临着Heroku证书的问题。当我直接向microservice发送请求

我正在微服务体系结构中构建一个应用程序。我正在使用Netflix的zuul、eureka和基于SpringApplication的微服务。整个项目将部署在Heroku使用免费帐户。因此,每个服务都是一个独立的应用程序,由Heroku通过https向公众提供服务

现在我已经成功地部署了eureka,然后部署了在eureka中注册的microservice,然后部署了在eureka中注册并从eureka获取路由的zuul。现在我面临着Heroku证书的问题。当我直接向microservice发送请求时,就会得到响应。当我通过zuul发送请求时,我得到一个500错误。通过查看zuul日志,我发现:

Caused by: javax.net.ssl.SSLPeerUnverifiedException: Certificate for <ffa57931-eab7-425c-ab80-0ec6fe669a9d.prvt.dyno.rt.heroku.com> doesn't match any of the subject alternative names: [*.herokuapp.com, herokuapp.com]
原因:javax.net.ssl.SSLPeerUnverifiedException:的证书与任何主题备选名称不匹配:[*.herokuapp.com,herokuapp.com]

我找不到将ribbon配置为接受所有证书的解决方案。因此,问题是如何在不使用自定义ssl证书的情况下解决此问题

好的,我发现了一个问题。使用eureka REST API时,我已指定:

"hostname": "localhost".
这就是zuul试图将流量路由到
ffa57931-eab7-425c-ab80-0ec6fe669a9d.prvt.dyno.rt.heroku.com

相反,我应该使用:

"hostname": <heroku_appname>.herokuapp.com
“主机名”:.herokuapp.com

谢谢大家的评论。如果有人发现自己也遇到了同样的麻烦,希望它能有所帮助。

请求应该路由到的微服务地址“ffa57931-eab7-425c-ab80-0ec6fe669a9d.prvt.dyno.rt.heroku.com”的值来自哪里。它是从eureka获得的。这绝对不是真正的主机名(因为heroku.com仅用于heroku本身)。您确定没有错误地设置主机名吗?