Gettig CertificateException: «Не найдено имя, соответствующее локальному хосту» в приложении Playframework java - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть 2 приложения, одно из которых находится в Spring Boot, а другое - в Playframework. Я пытаюсь использовать REST конечную точку приложения Spring Boot в приложении Playframework. Я получаю доступ к конечной точке REST, используя полученный сертификат. В моем игровом приложении я отключил проверку имени хоста, но все равно получаю эту ошибку. Ниже вы можете найти код и конфигурацию:

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

Конфигурация приложения Spring Boot

application.properties

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

application.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, значит, он работает. Я хочу оставить это как ложное и затем получить доступ к конечной точке.

Мне кажется, проблема в моей конфигурации, поэтому добавлена ​​только конфигурация. Если потребуется дополнительная информация, я также добавлю фрагменты кода.

1 Ответ

1 голос
/ 04 февраля 2020

Это проблема хранилища ключей, ваш клиент настроен так, что он проверяет имя хоста, используемое для метаданных в хранилище ключей. Таким образом, вы должны либо установить "Subject" CN на "localhost", либо добавить альтернативные имена субъекта с "localhost" в имени хоста.

Мне нравится https://keystore-explorer.org/ инструмент для создания хранилища ключей лучше всего, добавить SAN там легко. Keytool Java может сделать то же самое, но с "-ext san = dns: www.example.com"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...