error:2006D002:BIO routines:BIO_new_file:system lib

2 人关注

我有一个托管在Kubernetes的.NET Core Web API,作为一个Pod。它也作为一个服务被公开。 我创建了一个Dev SSL证书,它产生了一个aspnetapp.pfx文件。

这里是我的Docker文件的一个片段。

FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 443
ENV ASPNETCORE_URLS=https://+:443
ENV ASPNETCORE_HTTPS_PORT=443
ENV ASPNETCORE_Kestrel__Certificates__Default__Password={password}
ENV ASPNETCORE_Kestrel__Certificates__Default__Path=APIGateway/Certificates/aspnetapp.pfx

当我在Kubernetes中运行该应用程序时,我在容器日志中收到一个错误,而且容器无法启动。

error:2006D002:BIO routines:BIO_new_file:system lib

我知道它能够找到SSL证书,但是,它抛出了上述错误。

请帮助!:)

5 个评论
你好 @Sach K,你所包含的错误是否是一个更大的东西的一部分,看起来像在 this question ?你在使用nginx吗?
你好 @MikolajGlodziak 我没有使用nginx。我试图让SSL在我的.NET Core Web API中工作,它被托管在Kubernetes - Docker Desktop安装中。我每次启动容器时都会遇到这个错误。
尝试将你的证书转换成.crt格式。你也可以阅读这一页。 devblogs.microsoft.com/aspnet/...
我读过这个页面,但是这篇文章提到我需要传递.pfx文件的文件路径。 dylanbeattie.net/2020/11/18/using-https-with-kestrel.html
现在我被卡住了,当我在Linux容器中运行时,路径会是什么。
linux
docker
ssl
kubernetes
asp.net-core-webapi
Sach K
Sach K
发布于 2021-05-27
1 个回答
BearsEars
BearsEars
发布于 2022-10-18
已采纳
0 人赞同

我刚刚遇到了同样的问题,尽管之前的工作很正常。 something 被更新了(可能是.NET 6.0.402),导致了一个问题。

我注意到的是,我在Docker容器中导出的devert pfx的权限被设置为。

-rw------- 1 root    root    2383 Oct 18 14:40 cert.pfx

在我的Docker文件中,我导出了dotnet dev cert,并运行chmod来为每个人增加阅读权限。

RUN dotnet dev-certs https --clean && dotnet dev-certs https --export-path /app/publish/cert.pfx -p {password}
RUN chmod 644 /app/publish/cert.pfx

这导致权限与我的appsettings文件相同。