簡體   English   中英

Gettig CertificateException:Playframework java 應用程序中的“找不到與本地主機匹配的名稱”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM