我有两个ssl端点,它们共享相同的application.properties和密钥存储文件。
我想让一个端点呼叫另一个端点,但出现了一个错误 No name matching localhost found
我如何调整它以允许一个微服务按如下所示调用其他微服务?
我尝试了以下方法,但没有成功:
javax.net.ssl.hostnameverifier()
创建了localhost证书并将其添加到密钥库
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
public class submitapplicationcontroller {
@Bean
public WebClient.Builder getWebClientBuilder(){
return WebClient.builder();
}
@Autowired private WebClient.Builder webClientBuilder;
@PostMapping("/submitapplication")
public String submitapplication() {
/*** Returns Error Found Below ***/
String response = webClientBuilder.build()
.post()
.uri("https://localhost:8080/validateaddress")
.retrieve()
.bodyToMono(String.class)
.block();
return response;
}
}
javax.net.ssl.SSLHandshakeException: No name matching localhost found
at java.base/sun.security.ssl.Alert.createSSLException
Error has been observed at the following site(s):
|_ checkpoint ⇢ Request to POST https://localhost:8080/v1/validateaddress
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
public class validateaddresscontroller {
@PostMapping("/validateaddress")
public String validateaddress() {
return "response";
}
}
server.ssl.key-alias=server
server.ssl.key-password=asensitivesecret
server.ssl.key-store=classpath:server.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS
server.ssl.key-store-password=asensitivesecret
1条答案
按热度按时间vuv7lop31#
这里的问题是我创建和实现证书的方式。我有两个独立的密钥库和证书;一个名为“服务器”,一个名为“本地主机”。我将localhost证书添加到服务器密钥库,并将服务器密钥库和证书应用到springboot应用程序/application.properties。
您需要做的是只创建一个名为“localhost”的证书和密钥库,并且必须使用它来应用于application/application.properties。
创建localhost jks和证书之后应该拥有什么
注意:我不相信你真的需要创建一个名为“localhost”的jks,只是证书。我只是为了测试而做的。