我正在尝试在使用 Play 框架(版本 2.5)作为后端框架并使用 Angular 作为前端的内部 Web 应用程序上实现 HTTPS,并且我已经按照 Play 框架文档使用 Keytool 创建了一个自签名证书:
https://www.playframework.com/documentation/2.5.x/CertificateGeneration .
然后我将“.crt”文件保存在 cacerts(java keystore )中,并在使用这些附加命令启动应用程序时提供 .jks:
-Dplay.server.https.keyStore.path="path-to-jks-file"<br/>
and -Dplay.server.https.keyStore.password="the-password-here"
但是在尝试向服务器发出请求后出现错误:
javax.net.ssl.SSLException: Received fatal alert: certificate_unknown (image below)
虽然之后会发生握手并且 HTTPS 工作正常。任何想法如何解决这个问题
最佳答案
我现在已经解决了这个问题。 Chrome 浏览器的问题是缺少“主题备用名称”,这是 Chrome 58+ 所必需的,这导致了 tls 握手期间的错误。将 SAN 属性添加到证书后,问题就消失了。 我发布此答案是为了帮助可能遇到相同问题的任何人...
关于java - 如何修复 java play 框架中自签名 TLS 证书的 'unknown_certificate' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56188804/