C# X509Chain构建在Azure Kubernetes集群中的Alpine linux容器上失败,并带有Istio
我有一个证书,我正在使用X509Chain(C# X509Chain构建在Azure Kubernetes集群中的Alpine linux容器上失败,并带有Istio,c#,linux,docker,x509certificate,azure-aks,C#,Linux,Docker,X509certificate,Azure Aks,我有一个证书,我正在使用X509Chain(chain.Build(certificate))验证该证书。该证书有一个中间CA X和一个根证书Y,这两个证书当前都安装在我正在测试的windows计算机上 在我的windows计算机上,chain.Build()成功(假设因为我的计算机上存在两个CA),但相同的验证代码无法在我的linux容器上验证证书 以下是我的dockerfile的外观: # pull down the build container FROM mcr.microsoft.co
chain.Build(certificate)
)验证该证书。该证书有一个中间CA X和一个根证书Y,这两个证书当前都安装在我正在测试的windows计算机上
在我的windows计算机上,chain.Build()成功(假设因为我的计算机上存在两个CA),但相同的验证代码无法在我的linux容器上验证证书
以下是我的dockerfile的外观:
# pull down the build container
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine3.10
WORKDIR /app
# expose ports
EXPOSE 443
EXPOSE 80
# Install cultures (same approach as Alpine SDK image)
RUN apk add --no-cache icu-libs
# Disable the invariant mode (set in base image)
ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false
# copy build output
COPY . /app
COPY ./Configuration/X.cer /usr/share/ca-certificates/X.crt
COPY ./Configuration/Y.cer /usr/share/ca-certificates/Y.crt
RUN echo "X.crt" >> /etc/ca-certificates.conf
RUN echo "Y.crt" >> /etc/ca-certificates.conf
RUN update-ca-certificates
# start the service
ENTRYPOINT ["dotnet", "ValidationService.dll"]
我已从我的计算机导出base64编码的X509证书,并使用该证书复制到/usr/share/ca certificates/。
我手动输入etc文件夹中的ca-certificates.conf文件,然后运行更新ca证书。
部署后,我在容器中的conf文件中以及ssl文件夹中看到了正确的条目,其中添加了我的证书。但我的验证仍然失败
不确定我是否错过了任何一步?请给出建议。我在您的Dockerfile中看到一些问题
/usr/local/share/ca certificates/
路径openssl x509 -inform DER -in certificate.cer -out certificate.crt