Asp.net核心Docker容器出站HTTPS调用失败

我正在使用下面的Dockerfile为我的ASP.NET Core应用程序创build一个容器:

FROM microsoft/aspnetcore:1.1.2 ARG source WORKDIR /app EXPOSE 80 COPY PublishOutput . ENTRYPOINT ["dotnet", "IdentityServer4.Management.dll"] 

看来,如果我的容器必须通过HTTPS进行任何出站调用,则会引发一个exception,引用curl:

 System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: SSL connect error 

即使远程端有有效的证书,这似乎也会发生。 我已经能够通过附加下面的HttpHandlerto来绕过这个HttpClient,这似乎绕过了这个问题:

 var httpClientHandler = new HttpClientHandler(); httpClientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; 

我在这里错过了什么,为什么我必须做这个解决方法?

在试图研究这个问题之后,我遇到了一些讨论,build立这个连接需要一个“客户端证书”,没有具体的例子。

另外,我在技术上使用Rancher作为我们的Dockerpipe理系统,它有一组运行这些容器的基础设施。 不知道这是否有所作为,但我想我会提到它。

因为我是在内部公司networking上运行的,而且我的公司安全部门为内部应用程序颁发了证书,所以我必须将CA Chain Cert添加到我的容器中,以便将我的公司认定为有效的授权。 我将这些添加到我的Dockerfile中:

 RUN curl -o /usr/share/ca-certificates/my_ca_chain.crt https://somelocation/my_ca_chain.crt RUN echo "my_ca_chain.crt" >> /etc/ca-certificates.conf && update-ca-certificates