【问题标题】:Configuring HTTPS for Consul, gateway and microservice results in ZuulException: Forwarding error为 Consul、网关和微服务配置 HTTPS 导致 ZuulException: Forwarding error
【发布时间】:2019-12-24 15:35:21
【问题描述】:

情况

我实现了一个带有微服务网关、一个微服务应用和用于服务发现的 Consul 的 JHipster 微服务应用。只要我使用 HTTP,这一切都可以完美运行,但考虑在生产中使用未加密连接是不可行的选择。

因此我修改了所有配置文件以使用 TLS/HTTPS,如下所示:

网关/微服务,application-tls.yml:

server:
    ssl:
        key-store: classpath:config/tls/keystore.jks
        key-store-type: JKS
        key-alias: selfsigned
        key-store-password: password
        ciphers: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
        enabled-protocols: TLSv1.2
jhipster:
    http:
        version: V_2_0
spring:
    cloud:
        consul:
            discovery:
                scheme: https

网关和微服务 TLS 配置是相同的,除了密钥库的内容(它们都有自己的密钥对)。

问题

Consul 和两个 Spring Boot 应用程序启动时没有任何错误,并在 Consul 中正确注册。

但是,通过网络浏览器访问网关应用程序会导致网关应用程序出现以下错误:

图形界面

Http failure response for https://localhost:8080/<MICROSERVICE-NAME>/api/<RESOURCE-NAME>: 500 OK

堆栈跟踪

com.netflix.zuul.exception.ZuulException: Forwarding error
...
at de.<MY-ORG>.<MY-PROJECT>.gateway.security.jwt.JWTFilter.doFilter(JWTFilter.java:38)
...
Caused by: com.netflix.client.ClientException: null
...
Caused by: java.lang.RuntimeException: org.apache.http.NoHttpResponseException: <MY-IP>:8081 failed to respond

8081 是我的微服务应用的端口。

因此,无法访问微服务的 API,也无法使用任何功能(例如 CRUD)。

【问题讨论】:

    标签: java spring-boot microservices jhipster consul


    【解决方案1】:

    自己解决了。使用的是旧版本的 JHipster (5.8.2)。升级到 6.2.0 就成功了。

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 2016-05-24
      • 2017-08-08
      • 2021-07-24
      • 2020-07-24
      • 2018-12-10
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      相关资源
      最近更新 更多