无法使用Dockerfile命令更新Openssl.cnf文件 [英] Unable to update Openssl.cnf file using Dockerfile command

查看:17
本文介绍了无法使用Dockerfile命令更新Openssl.cnf文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个基于.NET5的应用程序,我们生成停靠图像。最近,我有一个问题的定制码头图像,我正在使用的基础。在我的应用程序中外部终结点很少的情况下,我收到了SSL证书错误。

调研后发现,openssl.cnf文件需要更新为一定的密码串,TLS协议需要设置为1.2。

当我使用命令提示符命令手动尝试复制新的openssl.cnf文件时,我能够获得结果

docker cp openssl.cnf Alkaline_Pretty:etc/ssl/openssl.cnf

但当我尝试从应用程序中的Dockerfile复制新的openssl.cnf文件时,它没有更新容器位置中的文件

我的docker文件如下所示:

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.

FROM custom/docker/Imagefor/datadog:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
WORKDIR /src
COPY ["Nuget.Config", "."]
COPY ["Directory.Build.props", "."]
COPY ["WebApplication/WebApplication.csproj", "WebApplication/"]
RUN dotnet restore "WebApplication/WebApplication.csproj"
COPY . .
WORKDIR "/src/WebApplication"
RUN dotnet build "WebApplication.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication.csproj" -c Release -o /app/publish


FROM base AS final
# Install ca-certificates
COPY WebApplication/SomeCertificate.crt /usr/local/share/ca-certificates/SomeCertificate.crt
COPY WebApplication/openssl.cnf /etc/ssl/openssl.cnf
RUN update-ca-certificates

#Datadog service name
ENV DD_SERVICE_NAME=myapplication
ENV ASPNETCORE_URLS=http://+:8080
ENV DD_LOGS_INJECTION=true
ENV DD_TRACE_AGENT_PORT=8126

WORKDIR /app
COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet", "WebApplication.dll"] ```


My file structure is something like this:

src 
   WebAppplication
    WebApplication.csproj
     openssl.cnf

推荐答案

一些可能的失败原因

  1. WebApplication/openssl.cnf可能与示例中使用的openssl.cnf不同

  2. 您的应用程序可能会在容器启动时销毁openssl.cnf-请确保源代码中没有任何有毒内容,这可能会导致损坏

  3. update-ca-certificates可能会有一些副作用,这可能会使用新的openssl.cnf中断您的应用。

调试建议

尝试使用容器中的openssl.cnfdiff原始openssl.cnf。它将帮助您找到错误的根源。

如果openssl.cnf完好无损,我建议您检查新的证书捆绑包是否与旧映像中的相同。

如果openssl.cnf发生更改,请尝试查找更改的来源。更改Dockerfile的执行顺序可能会对您有所帮助。

这篇关于无法使用Dockerfile命令更新Openssl.cnf文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆