9

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

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

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

4

1 回答 1

15

由于 .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
    
于 2017-05-24T13:40:50.540 回答