RestTemplate 是否默认启用 https
Is RestTemplate by default https enabled
如果仅使用默认值 RestTemplate
(仅使用 new RestTemplate()
)并使用带有 https 的 url 传递它,这是否意味着连接正在使用 TLS?
TestRequest request = getTestRequest();
RestTemplate r = new RestTemplate();
String url = "https://FQDN/path/resource";
ResponseEntity<String> resp = r.postForEntity(url, request, String.class);
System.out.println("resp - " + resp.getBody());
我试过类似下面的方法,调用成功。实际上,如果我将 url 更改为 http,调用将不起作用。但是,在从某个地方学习使用 https 后,我感到困惑,它必须使用诸如安全 RestTemplate 之类的东西(并设置一些 TLS 配置设置)。但从我的测试来看,似乎通过使用默认的 RestTemplate(并使用 https url 传递它),它已经可以工作了。
默认情况下,Rest 模板未启用 https。您需要明确地进行配置。
由于服务器配置,它可能适用于您的情况。服务器有一个名为 属性
server.ssl.client-auth:需要。
如果它设置为“want”,则客户端不需要向服务器出示证书来验证其身份。如果客户端未向服务器出示证书,服务器将跳过验证,而在 需要 的情况下,客户端需要向服务器出示其证书。
是的,RestTemplate
可以直接连接到 HTTPS 端点。如果你需要mTLS where the client also authenticates itself, you need to .
如果仅使用默认值 RestTemplate
(仅使用 new RestTemplate()
)并使用带有 https 的 url 传递它,这是否意味着连接正在使用 TLS?
TestRequest request = getTestRequest();
RestTemplate r = new RestTemplate();
String url = "https://FQDN/path/resource";
ResponseEntity<String> resp = r.postForEntity(url, request, String.class);
System.out.println("resp - " + resp.getBody());
我试过类似下面的方法,调用成功。实际上,如果我将 url 更改为 http,调用将不起作用。但是,在从某个地方学习使用 https 后,我感到困惑,它必须使用诸如安全 RestTemplate 之类的东西(并设置一些 TLS 配置设置)。但从我的测试来看,似乎通过使用默认的 RestTemplate(并使用 https url 传递它),它已经可以工作了。
默认情况下,Rest 模板未启用 https。您需要明确地进行配置。 由于服务器配置,它可能适用于您的情况。服务器有一个名为 属性 server.ssl.client-auth:需要。 如果它设置为“want”,则客户端不需要向服务器出示证书来验证其身份。如果客户端未向服务器出示证书,服务器将跳过验证,而在 需要 的情况下,客户端需要向服务器出示其证书。
是的,RestTemplate
可以直接连接到 HTTPS 端点。如果你需要mTLS where the client also authenticates itself, you need to