我目前正在将一个.net-core web-api部署到rhel 7.1上的docker容器中。 一切都按预期工作,但从我的应用程序,我需要通过https调用其他服务,这些主机使用由自我维护的根证书签名的证书。
在这个星座中,我在调用此服务时遇到ssl-errors(ssl无效),因此我需要在docker-container中安装这个root-certificate,或者以某种方式在.net-core应用程序中使用root-certificate
如何做到这一点?有没有最好的做法来处理这种情况? .net-core会访问rhel-system上正确的密钥库吗?
答案 0 :(得分:8)
由于.NET Core在linux上使用OpenSSL,因此您需要在容器中设置Linux环境,以便OpenSSL获取证书。
这是通过(+ Dockerfile示例)完成的:
将证书.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/
调用update-ca-certificates
:
RUN update-ca-certificates