我有两个 SSL 端点,它们共享相同的 application.properties 和密钥存储文件。
我想让一个端点调用另一个,但收到错误 No name matching localhost found
如何调整此设置以允许一个微服务按照下面的预期调用其他微服务?
我尝试了以下解决方案但无济于事:
@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
这里的问题是我创建和实施证书的方式。我有 2 个单独的密钥库和证书;一个名为“server”,一个名为“localhost”。我将localhost证书添加到服务器keystore中,并将服务器keystore和证书应用到springboot应用/application.properties中。
您需要做的就是创建一个名为“localhost”的证书和密钥库,您必须使用它来申请应用程序/application.properties。
创建 localhost JKS 和证书后应该有什么
server.ssl.key-alias=localhost
server.ssl.key-password=asensitivesecret
server.ssl.key-store=classpath:localhost.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS
server.ssl.key-store-password=asensitivesecret