[英]“java.security.cert.CertificateException: No name matching localhost found” not able to resolve on Ubuntu 16.04 LTS
[英]Gettig CertificateException: "No name matching localhost found" in Playframework java application
我有 2 個應用程序,一個應用程序在Spring Boot
,另一個在Playframework
。 我正在嘗試在Playframework
應用程序中使用Spring Boot
應用程序的REST
端點。 我正在使用我獲得的證書訪問REST
端點。 在我的播放應用程序中,我禁用了主機名驗證,但仍然出現此錯誤。 您可以在下面找到代碼和配置:
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
Playframework 應用程序配置
應用程序配置文件
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,然后訪問終點。
我覺得問題出在我的配置上,這就是為什么只添加了配置。 如果需要更多信息,我也會添加代碼片段。
這是一個密鑰庫問題,您的客戶端配置為根據密鑰庫中的元數據檢查使用的主機名。 因此,您必須將“主題”CN 設置為“localhost”,或者在主機名中添加帶有“localhost”的主題備用名稱。
我喜歡https://keystore-explorer.org/最好的創建密鑰庫的工具,在那里添加 SAN 很容易。 Java 的 keytool 可以做同樣的事情,盡管使用“-ext san=dns:www.example.com”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.