当前位置: 首页 > 面试题库 >

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

方韬
2023-03-14
问题内容

我在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


 类似资料:
  • 我的公司使用它自己的根CA和当我试图拉图像。即使是从私人注册表中,我也会得到错误: 1H 3M 22{kubelet minikube}警告FailedSync错误同步pod,跳过:未能用ErrimagePull为“pod”进行“startcontainer”:“gcr.io/google_containers/pause-amd64:3.0的图像提取失败,这可能是因为此请求没有凭据。

  • 我刚从Python.org安装了Python3,但在安装包时遇到了困难。根据设计,这里的网络上有一个中间人包检查设备,它通过使用自己的证书放弃所有ssl连接来检查所有包(包括ssl)。GPO的一部分将自定义根证书推入Windows密钥库。 在使用Java时,如果我需要访问任何外部https站点,我需要手动更新JVM中的CACERT,以信任自签名的CA证书。 对于Python如何实现这一点?现在,当

  • 有什么方法可以将映像添加到中吗?

  • 问题内容: 假设我有一个docker映像,并将其部署在某些服务器上。但是我不希望其他用户访问该图像。是否有加密docker映像的好方法? 问题答案: 实际上,不,如果用户有权运行docker守护程序,那么他们将有权访问所有图像-这是由于docker要求更高的权限才能运行。 有关为什么这样做的更多信息,请参阅Docker安全指南的摘录。 Docker守护程序攻击面 使用Docker运行容器(和应用程

  • 我想将ssh服务添加到容器中。我可以软件包(在之后),但我不知道如何启动它。通常(不在此容器中),我们可以通过的常规命令启动服务。但我不知道如何在容器中做到这一点而不干扰和机制。 dockerfile附带了一个(请参阅此处的源代码),它非常希望有一行用于 我看过一些相关的SO文章,比如这些: null 但由于docker文件中的和的相互作用,它们在这里并不直接适用。

  • 问题内容: 我想创建一个docker镜像并正确安装,因此我选择具有这些属性的基础镜像。因此,的第一行如下: 然后下一个命令是 在创建docker映像时创建了以下错误: 如何能够在此docker映像中安装? 问题答案: 如提示: 获取(13:权限被拒绝) 我相信这是由于您的基本形象: https://github.com/SeleniumHQ/docker- selenium/blob/master