首页 > 解决方案 > 如何修复 java play 框架中自签名 TLS 证书的“unknown_certificate”错误

问题描述

我正在尝试在使用 Play 框架(2.5 版)作为后端框架并使用 Angular 作为前端的内部 Web 应用程序上实现 HTTPS,并且我已经按照 Play 框架文档使用 Keytool 创建了一个自签名证书:

https://www.playframework.com/documentation/2.5.x/CertificateGeneration

然后我将“.crt”文件保存在 cacerts(java 密钥库)中,并在使用以下附加命令启动应用程序时提供 .jks:

-Dplay.server.https.keyStore.path="path-to-jks-file"
and -Dplay.server.https.keyStore.password="the-password-here"

但是在尝试向服务器发出请求后,出现错误:

javax.net.ssl.SSLException:收到致命警报:certificate_unknown(下图)

尽管在那之后发生了握手并且HTTPS正常工作。任何想法如何解决这个问题

链接到错误图像

标签: javasslplayframework

解决方案


我现在已经解决了这个问题。Chrome 浏览器的问题在于缺少“主题备用名称”,这是 Chrome 58+ 所必需的,并且在 tls 握手期间导致错误。将 SAN 属性添加到证书后,问题就消失了。我发布了这个答案来帮助任何可能有同样问题的人......


推荐阅读