如何在Docker镜像中添加CA根证书?
问题描述:
我在Ubuntu 14.04的Docker 1.13.1容器中运行ASP.NET Core 1.1 Web API。如何在Docker镜像中添加CA根证书?
当代码试图从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本身运行,连接到repos等。我的Docker工作正常,并且Web API在容器外部的Ubuntu服务器上运行时没有问题。
1)我是否需要在泊坞窗图像中添加CA根证书?
2)如果是这样,我该怎么做?
3)如果不是,我该如何解决这个问题?
答
该任务本身并不特定于泊坞窗,因为您需要在普通系统上添加该CA。关于如何做到这一点,askubuntu community有一个答案。
所以在Dockerfile你会做以下几点:
ADD your_ca_root.crt /usr/local/share/ca-certificates/foo.crt
RUN update-ca-certificates
原因下投票吗?我看不出有什么问题,正如我所说的,答案显然不可用。如果你认为它是,请指出。 – Peter