无法使用 Dockerfile 命令更新 Openssl.cnf 文件

2024-02-24

我正在开发一个基于 .NET 5 构建的应用程序,我们生成 docker 映像。最近,我使用作为基础的自定义 Docker 映像之一遇到问题。我的应用程序中很少有外部端点,但出现 SSL 证书错误。

在对这个问题进行了一些研究之后,我发现openssl.cnf文件应使用某些密码字符串进行更新,并且 TLS 协议需要设置为 1.2。

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

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

但是当我尝试复制新的openssl.cnf文件来自Dockerfile在我的应用程序中,它不会更新容器位置中的文件

我的 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破坏你的应用程序。

调试建议

Try to diff原本的openssl.cnfopenssl.cnf在容器中。它将帮助您找到错误的根源。

If the openssl.cnf是否完好无损,我建议检查新的证书包是否与旧图像中的相同。

If the openssl.cnf改变了,就努力寻找改变的根源。更改 Dockerfile 的执行顺序可能会对您有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Dockerfile 命令更新 Openssl.cnf 文件 的相关文章

随机推荐

  • 使用 StreamReader 检查文件是否包含字符串

    我有一个字符串是args 0 到目前为止 这是我的代码 static void Main string args string latestversion args 0 create reader open file using Strea
  • 如何从无限字节流中读取 UTF-8 字符 - C#

    通常 要从字节流中读取字符 您可以使用 StreamReader 在此示例中 我从无限流中读取由 r 分隔的记录 using var reader new StreamReader stream Encoding UTF8 var mess
  • 如何修复 android Adob​​e SDK 工具中的此错误?

    我已将 Adob e Editor 集成到我的 Android 应用程序中 它工作正常 更新我的 Android Studio 后 它崩溃了 我在gradle中添加了 android compileSdkVersion 26 buildTo
  • 如何释放 boost::mpi::request?

    我正在尝试让 MPI 断开通信器 这是一件很棘手的事情 我在下面整理了一个演示 我有相同想法的两个版本 侦听 int 一个使用 MPI IRecv 另一个使用 boost mpi request 您会注意到 在此程序上使用 mpiexec
  • 单击单元格时的操作

    H 我是 VBA 新手 这可能是一个太简单的问题 但我正在努力使用 VBA 当单元格 1 1 被点击时 因为它有1 消息框会显示 hi Sub test click action when cell 1 1 is clicked and i
  • 如何动态更改黑莓标签字段的字体颜色?

    我有一个标签字段和三个按钮 名称分别为红色 黄色 蓝色 如果我单击红色按钮 则标签字段字体颜色应更改为红色 同样 如果我单击黄色按钮 则字体颜色应更改为黄色 同样 根据按钮颜色 标签字段中的字体颜色应发生变化 谁能告诉我该怎么做 Label
  • Laravel Session 检测到一个域、多个数据库

    我读过几篇文章 主题 例如this https stackoverflow com questions 31847054 how to use multiple databases in laravel this https medium
  • Git 存储库太大

    我有一个项目 其中包含大约 12MB 的代码和资产 我一直在使用 Git 跟踪它 并且刚刚注意到我的 git文件夹现在刚刚超过 1 83GB 它由几个小文件组成 然后是一个包文件 约占该文件夹的 1 82GB 我已经跑了git gc agg
  • 检测android中home按钮的点击事件(应用程序启动器图标)

    如何识别android中应用程序启动器图标中的点击事件 一旦用户单击此图标 我需要转到主屏幕 例如 假设这是清单文件
  • WPF 中的图像可见性问题 - 按下按钮时不显示

    我正在用 C 开发一个 WPF 应用程序 其中有一个按钮可以切换图像的可见性 我已按照说明进行操作并实现了以下代码来处理按钮单击 XAML
  • 保存到服务器后图像质量下降。

    我正在捕获图像 并将其保存到服务器路径中 它工作正常 捕获的图像看起来质量不错 但将图像保存到服务器后 其质量下降 这是我的代码 这是我的活动 import java io BufferedReader import java io Byt
  • 无法在 android studio 的模拟器中启动 AVD。参数无效

    我在 Android Studio 2 1 2 中遇到模拟器问题 当我尝试启动 AVD 时 我收到一条消息 无法在模拟器中启动 AVD Output 哈克斯已启用 该虚拟机所需的内存超出了驱动程序限制 Hax ram size 0x6000
  • 如何并行化行式 Pandas 数据帧的 apply() 方法

    我有以下代码 import pandas as pd import time def enrich str str val1 f str 1 val2 f str 2 val3 f str 3 time sleep 3 return val
  • 使用 JSONDecoder 解码 PascalCase JSON

    我需要用大写首字母 又名 PascalCase 或 UppperCamelCase 解码 JSON 如下所示 Title example Items hello world 所以我创建了一个符合以下条件的模型Codable struct M
  • 如何使用 codeigniter 表单助手添加属性

    我找不到这个问题的答案 假设我使用代码点火器表单助手输出一个输入字段 echo form input username username 如何添加属性 例如class or id对此input filed 您可以传递一个关联数组 其中包含您
  • 我应该在长时间运行的 AsyncTask 中使用 getApplicationContext 还是 Activity.this

    我有一个长时间运行的异步任务 它将一些数据发送到我的服务器 然后停止 整个过程可能涉及一些请求和响应 我必须从数据库读取数据 发送数据并处理响应并相应地更新我的数据库 我正在使用内容提供程序从数据库读取和更新数据 现在要使用内容提供程序 我
  • 将数组除以值的有效方法是什么?

    只是想知道 将数组除以标量的最有效方法是什么 我可以清楚地循环它 但在我的情况下效率是最重要的 常见的琐碎方式 var array 2 var array 1 original data var divisor my scalar for
  • Windows C++ 服务启动时 ucrtbase.dll 出现故障

    所以我开发这个程序已经有一段时间了 它的目的是充当我们 IT 团队的资产管理器 将来可能会更多 我有 2 项服务 我们现在将其称为 Manager 和 IAM 管理器 负责所有服务 目前只有库存资产管理器 称为 IAM 的所有管理工作 例如
  • 未授予 Google Drive API 读取权限

    我正在尝试使用 Google Drive API 从 Google Drive 下载随机文件 尽管运行代码后我收到一条错误消息 用户尚未授予应用程序 app code 对文件 文件名 的读取权限 如何授予该文件的读取权限 我在互联网上和 A
  • 无法使用 Dockerfile 命令更新 Openssl.cnf 文件

    我正在开发一个基于 NET 5 构建的应用程序 我们生成 docker 映像 最近 我使用作为基础的自定义 Docker 映像之一遇到问题 我的应用程序中很少有外部端点 但出现 SSL 证书错误 在对这个问题进行了一些研究之后 我发现ope