【发布时间】: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