Linux (RHEL 7.1) 上 DotNet Core 中的受信任根证书

Trusted Root Certificates in DotNet Core on Linux (RHEL 7.1)

我目前正在将 .net-core web-api 部署到 rhel 7.1 上的 docker 容器。 一切都按预期工作,但我需要从我的应用程序通过 https 调用其他服务,并且这些主机使用由自我维护的根证书签名的证书。

在这个星座中,我在调用此服务时遇到 ssl 错误(ssl 无效),因此我需要在 docker 容器中安装此根证书或以某种方式使用根证书.net-core 应用程序。

如何做到这一点?是否有处理这种情况的最佳做法? .net-core 会访问 rhel 系统上正确的密钥库吗?

由于 .NET Core 在 linux 上使用 OpenSSL,您需要在容器中设置 linux 环境,以便 OpenSSL 获取证书。

这是通过(+ Dockerfile 示例)完成的:

  1. 正在将证书 .crt 文件复制到 update-ca-certificates 将扫描受信任证书的位置 - 例如/usr/local/share/ca-certificates/ 或 RHEL /etc/pki/ca-trust/source/anchors/:

     COPY myca.crt /usr/local/share/ca-certificates/
    
  2. 正在调用update-ca-certificates:

     RUN update-ca-certificates