gpt4 book ai didi

java - 获取证书异常 : "No name matching localhost found" in Playframework java application

转载 作者:行者123 更新时间:2023-12-02 09:02:38 25 4
gpt4 key购买 nike

我有 2 个应用程序,一个应用程序位于 Spring Boot 中,另一个应用程序位于 Playframework 中。我正在尝试在 Playframework 应用程序中使用 Spring Boot 应用程序的 REST 端点。我正在使用我获得的证书访问 REST 端点。在我的 Play 应用程序中,我已禁用主机名验证,但仍然收到此错误。您可以在下面找到代码和配置:

AsyncHttpClient-2-1, fatal error: 46: General SSLEngine problem
java.security.cert.CertificateException: No name matching localhost found

Spring Boot应用程序配置

应用程序属性

server.port=8085
server.ssl.key-alias=demo
server.ssl.key-password=changeit
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS
server.ssl.key-store=server.jks

enter image description here

Playframework 应用程序配置

应用程序.conf

play.ws.ssl.loose.acceptAnyCertificate = false
play.ws.ssl.loose.disableHostnameVerification = true

play.ws.ssl {
trustManager = {
stores = [
{ type = "PEM", path = "public.crt" }
]
}
}

play.ws.ssl.debug = {
all = false
ssl = true
certpath = true
}

如果我设置play.ws.ssl.loose.acceptAnyCertificate = true那么它就可以工作。我想将其保留为 false,然后访问终点。

我觉得我的配置有问题,这就是为什么只添加配置。如果需要更多信息,我也会添加代码片段。

最佳答案

这是一个 keystore 问题,您的客户端的配置方式是根据 keystore 中的元数据检查所使用的主机名。因此,您要么必须将“主题”CN 设置为“localhost”,要么添加主机名中包含“localhost”的主题备用名称。

我喜欢https://keystore-explorer.org/创建 keystore 的最佳工具,添加 SAN 很容易。 Java 的 keytool 可以做同样的事情,尽管使用“-ext san=dns:www.example.com”

关于java - 获取证书异常 : "No name matching localhost found" in Playframework java application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60056854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com