如何在docker映像中添加CA根证书?

我在Ubuntu 14.04的Docker 1.13.1容器中运行ASP.NET Core 1.1 Web API。

当代码尝试从HTTPS服务器检索某些数据时,出现此证书身份验证错误:

 An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates

at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)

at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)

HTTPS服务器是内部的,具有由公司CA签名的证书,因此请注意,我可能需要注册内部CA。

到目前为止,我已找到有关该错误的所有信息,并且Docker谈到了使Docker本身运行,连接到存储库等。我的Docker工作正常,并且Web

API在容器外部的Ubuntu服务器上运行没有问题。

1)我需要在Docker映像中添加CA根证书吗?

2)如果是,该怎么办?

3)如果没有,我该如何解决?

回答:

任务本身并不特定于docker,因为您也需要在普通系统上添加该CA。在askubuntu社区上有一个有关如何执行此操作的答案。

因此,在Dockerfile中,您将执行以下操作(如果您以root以外的用户身份运行容器,请不要忘记chmod):

ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt

RUN chmod 644 /usr/local/share/ca-certificates/foo.crt && update-ca-certificates

以上是 如何在docker映像中添加CA根证书? 的全部内容, 来源链接: utcz.com/qa/430031.html

回到顶部