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

时间:2017-05-24 13:27:59

标签: ssl ssl-certificate .net-core redhat root-certificate

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

在这个星座中,我在调用此服务时遇到ssl-errors(ssl无效),因此我需要在docker-container中安装这个root-certificate,或者以某种方式在.net-core应用程序中使用root-certificate

如何做到这一点?有没有最好的做法来处理这种情况? .net-core会访问rhel-system上正确的密钥库吗?

1 个答案:

答案 0 :(得分:8)

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

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

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

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

    RUN update-ca-certificates