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
- dotnet运行不会使用bower软件包
- 在Linux上使用Docker进行Asp.Net 5.0开发
- 如何从docker容器中的bash检查.net核心dll的版本
- ASP.NET 5和Docker错误:/ bin / sh:[dnx,:找不到命令
- .NET Core SDK与Docker的运行时版本
- 远程debugging.NET核心Linux Docker容器 – “当前源与内置到.dll中的版本不同”
- 针对完整框架的项目的asp.net核心2.0 docker镜像
- 在文件更改时重buildDocker容器
- Visual Studio 2017 Docker支持不适用于ASP.Net Core Angular或React项目