如何使用证书对 Ribbon 负载均衡器和 Zuul 代理进行身份验证?
How can I authenticate a Ribbon load balancer and Zuul proxy using a certificate?
我有一个 Spring 应用程序,它充当两个后端服务器的身份验证代理。用户将访问 Spring 应用程序,并在成功通过身份验证后被转发到后端。为防止未经事先身份验证的不需要的访问,后端服务器需要证书作为身份验证。
我的 Spring 应用程序使用 Netflix-Ribbon 作为负载均衡器,使用 Netflix-Zuul 作为用户请求的代理。如何配置它们以使用后端服务器上身份验证所需的客户端证书?
好的,我明白了。您可以将自己的 CloasableHttpClient 配置为 @Bean 并创建自定义 SSL 上下文。您可以通过 .loadKeyMaterial() 向服务器提供证书。 Zuul 然后将使用这些设置。
@Configuration
public class HttpClientConfig {
@Bean
public CloseableHttpClient httpClient() throws Throwable {
String keyPassphrase = "yourCertificatePassword";
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(new FileInputStream("Path/to/your/clientCert.pfx"), keyPassphrase.toCharArray());
SSLContext sslContext = SSLContexts.custom()
.loadKeyMaterial(keyStore, keyPassphrase.toCharArray())
.build();
return HttpClients.custom()
.setSSLContext(sslContext)
.build();
}
}
我有一个 Spring 应用程序,它充当两个后端服务器的身份验证代理。用户将访问 Spring 应用程序,并在成功通过身份验证后被转发到后端。为防止未经事先身份验证的不需要的访问,后端服务器需要证书作为身份验证。
我的 Spring 应用程序使用 Netflix-Ribbon 作为负载均衡器,使用 Netflix-Zuul 作为用户请求的代理。如何配置它们以使用后端服务器上身份验证所需的客户端证书?
好的,我明白了。您可以将自己的 CloasableHttpClient 配置为 @Bean 并创建自定义 SSL 上下文。您可以通过 .loadKeyMaterial() 向服务器提供证书。 Zuul 然后将使用这些设置。
@Configuration
public class HttpClientConfig {
@Bean
public CloseableHttpClient httpClient() throws Throwable {
String keyPassphrase = "yourCertificatePassword";
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(new FileInputStream("Path/to/your/clientCert.pfx"), keyPassphrase.toCharArray());
SSLContext sslContext = SSLContexts.custom()
.loadKeyMaterial(keyStore, keyPassphrase.toCharArray())
.build();
return HttpClients.custom()
.setSSLContext(sslContext)
.build();
}
}