Java Eureka RestTemplate和SSL

Java Eureka RestTemplate和SSL,java,ssl,resttemplate,netflix-eureka,Java,Ssl,Resttemplate,Netflix Eureka,我已将我的eureka客户端和服务配置为使用SSL和自签名证书。创建密钥库并将证书从客户端导入服务器密钥库,反之亦然。但是现在当我尝试使用restTemplate时 @Bean RestTemplate restTemplate; 哪一个用来解决我的服务而不用麻烦使用底层框架它不能再这样做了?HTTP响应为302,仅限安全:/HTTPOnly 我试图手动配置restTemplate @Bean @LoadBalanced public RestTemplate restTemplate()

我已将我的eureka客户端和服务配置为使用SSL和自签名证书。创建密钥库并将证书从客户端导入服务器密钥库,反之亦然。但是现在当我尝试使用restTemplate时

@Bean
RestTemplate restTemplate; 
哪一个用来解决我的服务而不用麻烦使用底层框架它不能再这样做了?HTTP响应为302,仅限安全:/HTTPOnly

我试图手动配置restTemplate

@Bean
@LoadBalanced
public RestTemplate restTemplate() throws Exception {
        SSLContext sslContext = new SSLContextBuilder()
            .create()
            .loadKeyMaterial(ResourceUtils.getFile("classpath:client.jks"), allPassword.toCharArray(), allPassword.toCharArray())
            .loadTrustMaterial(ResourceUtils.getFile("classpath:client.jks"), allPassword.toCharArray())
            .build();

    HttpClient client = HttpClients.custom()
            .setSSLContext(sslContext)
            .build();

    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(client);
    return new RestTemplate(factory);
}
虽然restTemplate正在创建,但它现在似乎不知道我在Eureka框架中的服务

Caused by: java.net.UnknownHostException: my-service
是否有人为SSL配置了eureka客户机/服务,以及可以使用来自客户机jvm的rest服务的负载平衡rest模板

我用的是来自baeldung guy网站的文章

但是,它似乎不适用于eureka框架提供的restTemplate

谢谢,
马克。

非常感谢Misantorp指出服务试图重定向到/login上下文。似乎仅仅为HTTPs配置spring引导应用程序就足以触发一些spring安全性。我觉得这有点奇怪,因为我以前没有在里面


我启动了一些spring安全性,permittedAll(“/**”)并禁用了csrf,客户端再次成功地调用了该服务器

您说它在您不使用SSL时有效,但您收到的特定错误消息表示,
主机名
我的服务
未知(即无法解析为IP)。直接引用“抛出以指示无法确定主机的IP地址。”是的,当你在类中自动连接bean作为一个成员变量时,eureka框架会解析服务名my service,但是当我这样做时,模板的调用会返回一个320状态码,表示它应该重定向,主体是空的。这可能是一个愚蠢的问题,但是你现在连接到了吗?如果不是,我会尝试一下吗?如果您使用HTTPS进行连接,我不希望基于对SSL的更改进行重定向。另外,我希望找到的
302也包含
位置
标题,您看到了吗?
302
不一定包含正文,因为它希望客户端将请求重新发送到新的
位置
Hi Misantorp,谢谢您回复我。是的,我使用的网址是,你完全正确!非常感谢。重定向有一个指向实际机器上登录名的链接位置,即。我不知道它为什么会这样做,因为我还没有配置任何spring安全性来说它应该重定向?它是自动这样做的。但这是进步,感谢您花时间作出回应。