我来自 DEV 背景,但正在努力提高我的安全/操作技能以变得更加通用。
我已经按照本指南建立了自己的本地证书颁发机构(尽管相当松散)。
我成功地为 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;
我应该为ssl_certificate
nginx 中的设置链接服务器、中间证书和根证书吗?.. 我应该将什么证书(或链接证书)导入到哪个证书存储?
我还注意到有一个ssl_trusted_certificate
nginx 设置,我不确定是否应该使用它...
干杯,瑞恩。