【问题标题】:How to get Chrome/browser to accept my SSL cert (signed by intermediate cert for my own CA)如何让 Chrome/浏览器接受我的 SSL 证书(由我自己的 CA 的中间证书签名)
【发布时间】:2020-04-21 04:45:13
【问题描述】:

我来自 DEV 背景,但正在努力提高我的安全/操作技能以变得更加灵活。

我已经按照this guide 建立了自己的本地证书颁发机构(尽管相当松散)。

我成功地为 test.mydomain.com 创建了一个根对(密钥和证书)、一个中间对和一个服务器对。

然后我将 nginx 配置为 Node.js Web API(由 Express FWIW 提供服务)的服务代理。 nginx 和 nodejs 服务都是容器化的,我只是使用 docker-compose 在本地运行它。我还添加了一个主机条目,以便我可以使用 test.mydomain.com 访问我的服务。最终我想在 Kubernetes 中实现 service-proxy/sidecar 模式(nginx 和(微)服务在同一个 pod 中运行),但现在我只是想让它在 docker 中工作。

这一切都在 HTTP 上工作,所以下一步是让它在 HTTPS 上工作(TLS 在 nginx 服务代理处终止,然后请求通过 HTTP 代理到 Node.js 服务)。它正在运行,但我的浏览器(在 Windows 中运行的 Chrome)无法接受我的证书。

我尝试了几种将证书导入 Windows 证书存储的组合,包括:

  • 将根证书导入受信任的根 CA 证书存储区
  • 将中间证书导入到中间 CA 证书存储中
  • 链接根证书和中间证书并导入到根 CA 证书存储区

但我无法让 Chrome 接受我的证书。

仅供参考 nginx 配置如下

ssl_certificate /etc/ssl/test.mydomain.com.cert.pem;
ssl_certificate_key /etc/ssl/private/test.mydomain.com.key.pem;

我应该为 nginx 中的ssl_certificate 设置链接服务器、中间证书和根证书吗?我应该将什么证书(或链接证书)导入到哪个证书存储?

我还注意到有一个ssl_trusted_certificate nginx 设置,我不确定是否应该使用它...

干杯, 瑞恩。

【问题讨论】:

  • 你知道 cert-bot 吗?如果您使用的是 Nginx 或 apache,则可以使用 cert-bot 而不是创建证书和 CSR,使用 certbot 可以轻松自动完成所有操作。这将生成证书并将其添加到 Nginx 块中。
  • 感谢@HarshManvar。我曾简要地查看过 cert-manager (我认为这有点相似)。在深入研究之前,我想让所有基础知识都能正常工作(实际上只是为了提高我的理解)......但它绝对在我想要研究的事情清单上......
  • 你在 kubernetes 中使用 cert-manager 吗?
  • 不,但我已经简要地阅读过它...来自 DEV 背景的很多概念让我感到困惑,我真的不知道从哪里开始。这是我尝试启动并运行内部/私有 CA 的部分原因,以便我对所有安全概念有更深入的了解。仅供参考,我工作的公司正在迁移到 K8s,我们可能希望使用 cert-manager/certbot 之类的东西来自动配置和管理 TLS 证书...
  • 哦,没问题,你可以按照这个例子很容易设置入口,证书管理器:digitalocean.com/community/tutorials/… 如果有任何问题,请告诉我。

标签: ssl nginx openssl ssl-certificate certificate-store


【解决方案1】:

好吧,我终于搞定了。有几件事...

我首先设法在 Firefox 中运行,但 Chrome 仍然失败。这是我需要的线索 - 事实证明,Chrome 要求证书包含一个或多个主题备用名称,而不仅仅是一个通用名称(Firefox 显然可以接受)。

在创建和签署证书请求时,我必须配置使用者备用名称。

其余的相当容易。

在 nginx 中,ssl_certificate 指向一个链式证书(服务器证书 + 中间证书)。

然后我必须将根证书导入本地计算机的受信任根 CA。

重启 chrome,瞧:

【讨论】:

    猜你喜欢
    • 2016-04-02
    • 2012-01-15
    • 2016-08-24
    • 1970-01-01
    • 2016-07-08
    • 2015-11-02
    • 2020-11-24
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多