Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Docker安装根证书_Windows_Docker_.net Core_Certificate - Fatal编程技术网

Windows Docker安装根证书

Windows Docker安装根证书,windows,docker,.net-core,certificate,Windows,Docker,.net Core,Certificate,我有一个在docker中运行的dotnetcore web.api应用程序。 我使用的是windows版本,而不是linux版本。我使用的映像是microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1709 这个应用程序调用一个外部api(https),我收到一个错误,说SSL验证失败。通过谷歌搜索,我发现我的企业的根证书也必须在容器中可用 我首先使用Powershell使用Import-Certificate命令进行了尝试。但这失败了。图像中似乎

我有一个在docker中运行的dotnetcore web.api应用程序。 我使用的是windows版本,而不是linux版本。我使用的映像是microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1709

这个应用程序调用一个外部api(https),我收到一个错误,说SSL验证失败。通过谷歌搜索,我发现我的企业的根证书也必须在容器中可用

我首先使用Powershell使用Import-Certificate命令进行了尝试。但这失败了。图像中似乎不存在Powershell。然后我找到了这个。但是Certoc也没有出现在图片上,我找不到一个地方下载这个


是否有方法使用microsoft/dotnet映像安装证书?还是必须使用microsoft/windowsservercore映像

我可能误解了需要,但是如果您有证书文件,您可以
将其复制到docker容器中

  • 将(something).cert文件添加到项目中
  • Dockerfile
    中添加行
  • COPY./(某物).cert(路径/收件人/证书/位置/内/容器)
  • 启动docker容器

  • 如果我能澄清答案中的任何内容,请告诉我,我很乐意更新。

    不需要安装证书吗?我不知道你可以把它复制到某个地方。我以为那些东西已经在登记处登记了。我要把它复制到哪里?我需要容器中的企业根证书,这样我从容器中调用其他api(https,不在docker中运行)可以验证需要在windows中进行的ssl连接。正如您所提到的,该过程更加关注UI注册表。Hoever容器是基于linux的,这意味着在预期位置有一个文件。这里是另一个S.O.的帖子,关于同样的事情,你可以看到解决方案也适用于他们。在linux中,只有将
    .crt
    文件放在正确的位置(和权限)才行是的,但我使用的是windows容器,而不是linux容器。我找到的每个示例都是如何在linux容器而不是windows容器中执行的。-1因为在windows容器中,您无法获得正常工作的
    /path/to/cert/location
    。您必须以某种方式将证书添加到受信任的根证书颁发机构。