tls zuul 和微服务用证书相互认证

tls mutual authentication between zuul and microservice with certificates

我有一个 zuul 代理充当边缘服务器,我的微服务是非 jvm 应用程序,我不使用 ribbon 或 eureka。这些微服务只能通过 https 访问,并且需要客户端证书才能与它们通信。 zuul 是否支持与下游证书的相互认证?如果是这样,我该如何在我的 zuul 服务器上进行设置。

如果您正在使用 Spring Cloud Zuul,您可以通过定义 CloseableHttpClient bean 来提供自己的 Http 客户端,如下所示。 (Edgware 版本支持)

@Bean
public CloseableHttpClient httpClient() throws Throwable {
    return HttpClients.custom()
           .......ssl context or sslsocketfactory settging.
           .build();
}

如果你提供了这种bean,Zuul在进行http请求的时候就会使用这种bean。因此,您可以定义自定义 SSL 上下文以支持客户端证书。您可以在 apache http 客户端中找到许多支持客户端证书的示例,例如 this or this.