java - 如何修复 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正常工作。任何想法如何解决这个问题
解决方案
我现在已经解决了这个问题。Chrome 浏览器的问题在于缺少“主题备用名称”,这是 Chrome 58+ 所必需的,并且在 tls 握手期间导致错误。将 SAN 属性添加到证书后,问题就消失了。我发布了这个答案来帮助任何可能有同样问题的人......
推荐阅读
- java - SpringBoot - Register a bean before @Component's get scanned
- python - 用户不存在,也没有重定向到 django 项目中创建的租户
- coinbase-api - coinbase-api 有什么 Swagger 吗?
- sparql - 维基数据示例和子类
- php - 集成 Apple Pay 时,如何将 Stripe 的 javascript paymentRequest 与 PHP 处理服务器端混合使用
- iis - 强制在 IIS 中出现内部服务器错误
- python - UWSGI 不会将应用程序标准输出重定向到标准输出,仅重定向到文件
- reactjs - 在 redux 操作函数中获取和调度
- ios - 在球体 ARKit Swift 4 上添加照片
- c# - WPF 命令绑定到静态视图模型