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 示例)完成的:
正在将证书 .crt
文件复制到 update-ca-certificates
将扫描受信任证书的位置 - 例如/usr/local/share/ca-certificates/
或 RHEL /etc/pki/ca-trust/source/anchors/
:
COPY myca.crt /usr/local/share/ca-certificates/
正在调用update-ca-certificates
:
RUN update-ca-certificates
我目前正在将 .net-core web-api 部署到 rhel 7.1 上的 docker 容器。 一切都按预期工作,但我需要从我的应用程序通过 https 调用其他服务,并且这些主机使用由自我维护的根证书签名的证书。
在这个星座中,我在调用此服务时遇到 ssl 错误(ssl 无效),因此我需要在 docker 容器中安装此根证书或以某种方式使用根证书.net-core 应用程序。
如何做到这一点?是否有处理这种情况的最佳做法? .net-core 会访问 rhel 系统上正确的密钥库吗?
由于 .NET Core 在 linux 上使用 OpenSSL,您需要在容器中设置 linux 环境,以便 OpenSSL 获取证书。
这是通过(+ Dockerfile 示例)完成的:
正在将证书
.crt
文件复制到update-ca-certificates
将扫描受信任证书的位置 - 例如/usr/local/share/ca-certificates/
或 RHEL/etc/pki/ca-trust/source/anchors/
:COPY myca.crt /usr/local/share/ca-certificates/
正在调用
update-ca-certificates
:RUN update-ca-certificates