【发布时间】:2018-06-10 02:27:10
【问题描述】:
我对此有点初学者,所以我正在寻找更多的解释而不是快速修复。
我正在尝试通过 HTTPS 部署 Spring Boot 应用程序(为了好玩/测试,永远不会将其投入生产)。我首先创建了一个证书颁发机构(根和中介),然后为我的应用程序创建一个证书(将通过 localhost 访问)并使用中间 CA 签署此证书。我使用this 教程来做到这一点。
然后我使用this 答案将我新创建的本地主机证书导入密钥库,然后由应用程序部署。通过 Chrome 访问时,我遇到了两个问题;
缺少主题备用名称。此站点的证书不包含包含域名或 IP 地址的主题备用名称扩展。
证书错误。网站的证书链存在问题 (net::ERR_CERT_AUTHORITY_INVALID)。
现在如果我对问题的理解是正确的,我需要做以下事情;
SAN 是某种证书扩展,它继承了与域名匹配的通用名称。我需要将此扩展注入到我的本地主机证书中。我的问题是我不确定我必须在哪里执行此操作。是在创建证书时吗?
我不确定为什么会这样。一方面,我觉得这种情况总会发生,因为我的 CA 是我创建的,而不是已建立的 CA,但从我在网上看到的情况来看,这可以解决,但我不明白如何解决。我刚刚将我的 localhost 证书注入到密钥库中。我还需要注入中间证书吗?
另外,我对上面的教程有疑问。 server_cert 和 usr_cert 有什么区别(在签署服务器和客户端证书部分)。该证书是服务器的证书,但它将处理用户身份验证。在那种情况下,我需要使用 server_cert 对吗?
【问题讨论】:
-
我设法通过向我的 server_cert 扩展添加一个扩展来解决主题备用名称问题(感谢此资源;alexanderzeitler.com/articles/…
标签: java spring ssl https ssl-certificate