无法将证书添加到 alpine linux 容器

2024-04-14

我在 alpine linux 容器内有一个小型 python 应用程序,这是 dockerfile:

FROM alpine

# basic flask environment
RUN apk add --no-cache bash git nginx uwsgi uwsgi-python py2-pip \
    && pip2 install --upgrade pip \
    && pip2 install flask

# application folder
ENV APP_DIR /app
ENV FLASK_APP app.py

# app dir
RUN mkdir ${APP_DIR} \
    && chown -R nginx:nginx ${APP_DIR} \
    && chmod 777 /run/ -R \
    && chmod 777 /root/ -R
VOLUME [${APP_DIR}]
WORKDIR ${APP_DIR}

# copy config files into filesystem
COPY nginx.conf /etc/nginx/nginx.conf
COPY app.ini /app.ini
COPY entrypoint.sh /entrypoint.sh

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY ./cert.pem /usr/local/share/ca-certificates/mycert.pem
COPY ./key.pem /usr/local/share/ca-certificates/mykey.pem
COPY ./ssl_password_file.pass /etc/keys/global.pass
RUN update-ca-certificates

COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
ENTRYPOINT ["/entrypoint.sh"]

这在两周前工作得很好,但是当我最近尝试重建它时,我收到了这个错误:

WARNING: ca-certificates.crt does not contain exactly one certificate or CRL: skipping
WARNING: ca-cert-mykey.pem.pem does not contain exactly one certificate or CRL: skipping

所以我检查了这些文件,发现由于某种原因,现在文件 ca-certificates.crt 现在有一个证书链。 我发现this https://unix.stackexchange.com/questions/464484/install-self-signed-certificate-to-alpine-linux堆栈溢出时:

/etc/ssl/certs/ca-certificates.crt 实际上是附加每个 来自 /usr/local/share/ca-certificates 的个人证书。

但什么改变了呢?为什么现在这是一个问题? 所以我尝试恢复到旧版本的 alpine linux - 同样的问题。 我尝试重新创建证书,我尝试从容器中删除一大堆证书,我在更新之前检查了 pem 文件以确保它们只是一个证书,显然是在运行后直接进行的

RUN update-ca-certificates

出现许多证书。 帮助 ?


我认为下面对我有用(我在从 alpine 延伸的 blackfire/blackfire 图像上添加了根证书):

RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/* \
  mkdir /usr/local/share/ca-certificates/extra
COPY .docker/other/cert_Intertrials-CA.crt /usr/local/share/ca-certificates/extra
RUN update-ca-certificates

然后我登录到该虚拟机,看到它已将其添加到合并的证书文件 /etc/ssl/certs/ca-certificates.crt (我相信我听说它从 /usr/local/share/ca 内部获取每个证书文件-证书并合并到 /etc/ssl/certs/ca-certificates.crt 文件中)。

现在您可能会收到“不包含一个证书或 CRL:跳过”错误,但我听说这很好。

https://github.com/gliderlabs/docker-alpine/issues/30 https://github.com/gliderlabs/docker-alpine/issues/30提到:“这只是一个警告,不应该影响任何事情。”

https://github.com/gliderlabs/docker-alpine/issues/52 https://github.com/gliderlabs/docker-alpine/issues/52提到: “警告:ca-certificates.crt 不包含恰好一个证书或 CRL:跳过正如它所说的那样,是一个警告。它是说 ca-certificates.crt 不只包含一个证书(因为它是所有证书的串联),因此它被跳过并且不包含在 ca-certificates.crt 中(因为它不能包含自身)。”
“显示的警告是正常的。”

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

无法将证书添加到 alpine linux 容器 的相关文章

  • 如何启动docker容器(ubuntu镜像)

    如何统计 Docker 容器 我是用它创建的 docker run d P v Users bsr usr local users name test ubuntu 我确实安装了虚拟盒来宾附加功能 并且安装工作正常 但是 我不知道为什么我不
  • 从 CLI 列出 ARM 的 Docker 映像

    我拥有一台 Mac M1 我在上面运行 Docker 在 OSX 上 Docker 可以运行本机 ARM 映像 但也可以模拟 x86 amd64 来运行不是为 ARM 构建的映像 我的问题很简单 从命令行 我试图找到显示图像的命令 dock
  • NodeJS TLS会话ID

    我正在使用 TLS 使用 node js 库创建会话 Node js 是否提供了一种方法来检索已建立的 TLS 连接的会话 ID 它是 openssl 中 SSL ctx 的一部分 不使用 connect express 或geddy 可以
  • 运行 Docker 映像时传递可选参数

    我有一个基于 windowsservercore 的 Docker 文件 我正在托管一个 ASP net Core Web 应用程序 docker 文件中的片段 ENTRYPOINT my exe ENV ASPNETCORE URLS h
  • 如何在 Square MockWebServer 中使用 SSL?

    我尝试启用 SSLSquare 的 MockWebServer https github com square okhttp tree master mockwebserver在测试下模拟我的 Android 应用程序中的所有 Web 服务
  • 使用 dockerfile 成功安装 java 但它说找不到 java 命令

    这是我的 docker 文件 RUN apt get install y no install recommends software properties common RUN add apt repository y ppa openj
  • 我们可以在密钥库中加载多个证书和密钥吗?

    我们可以在密钥库中加载多个证书和密钥吗 是否始终需要仅加载对 即证书和密钥一起 如果密钥库有多个证书和密钥 当 Java SSL 尝试作为服务器建立连接时会选择哪一个 尽管这取决于 KeyStore 类型 但通常您可以在单个存储中存储多个私
  • 如何从 kubernetes 集群内部访问主机的 localhost

    在此应用程序中 nodejs pod 在 kubernetes 内部运行 而 mongodb 本身作为 localhost 位于主机外部 这确实不是一个好的设计 但它只适用于开发环境 在生产中 将有一个单独的 mongodb 服务器 因为这
  • 如何为Windows 10及以下版本的域名创建自签名证书进行开发?

    I have subdomain example com我用于开发目的 我的 Web 应用程序解决方案包含 Web API 等 我需要从外部系统调用它们 因此我没有使用 localhost 我现在需要测试 SSL 并需要一个证书subdom
  • 使用 M1 在 dockerized Linux 上安装节点画布

    我有以下Dockerfile我在 MacBook Air M1 上运行 所以在 docker 中我有带有 M1 的 linux FROM node 16 7 0 WORKDIR work CMD while true do sleep 10
  • 同一服务器,SSL 和非 SSL

    Apache 2 x 中是否可以在同一服务器上同时运行 SSL 协议和非 SSL 协议 所以如果我访问http example com 非 SSL 和https example com SSL 它们都可用 如果是这样 我需要创建一个虚拟主机
  • 如何在 Docker 容器中运行 Nginx 而不停止?

    我在 Docker 容器上安装了 Nginx 并尝试像这样运行它 docker run i t p 80 80 mydockerimage usr sbin nginx 问题是 Nginx 的工作方式是 初始进程立即生成一个 Nginx 主
  • 我无法使用 LWP::UserAgent 连接到任何 HTTPS 站点

    我正在尝试创建一个仅连接到网站的脚本 但是 由于某种原因 它不会连接到使用 HTTPS 的任何内容 我们在这里启用了代理 但是 我相信代理不是问题 因为如果我要连接到网络内部不通过代理建立隧道的 HTTPS 它仍然会失败 如果我要在任何不使
  • 在 Jetty 运行时设置 ssl 密钥库

    是否可以在运行时更改密钥库 目前我正在设置 SSL 然后再执行 server start sslContextFactory setTrustStore ks sslContextFactory setTrustStorePassword
  • Docker:入口点的覆盖涉及CMD规范?

    这是我纯粹好奇的问题 我必须个性化 Docker 映像 特别是这是我的 dockerfile 的摘录 ARG DEFAULT PHP VERSION FROM php DEFAULT PHP VERSION DEFAULT PHP VERS
  • Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝

    我正在寻找一种将机密 证书注入 Amazon ECS 容器的方法 就我而言 它是一个简单的 nginx 容器 我一直在使用 AWS Parameter Store 关注这篇文章 https aws amazon com blogs comp
  • 命名 Docker 卷以共享构建而不更新

    我工作的公司的开发人员要求我用 Docker 做一些不同的事情 然后我也被使用了 目标是拥有 2 个具有以下职责的容器 容器A 节点容器将构建前端 React 应用程序并将捆绑包放入名为的目录中app dist 完成后 容器将停止运行 容器
  • 如何使用 compose 将 docker 卷安装到我的 docker 项目中?

    我有一个 Maven 项目 我正在 Docker 内运行 Maven 构建 但问题是 每次运行它时 它都会下载所有 Maven 依赖项 并且不会缓存任何 Maven 下载 我找到了一些解决方法 将本地 m2 文件夹挂载到 Docker 容器
  • 如何基于现有镜像创建新的docker镜像?

    我刚刚开始使用docker 我使用 docker 文件创建图像 如何从现有图像创建新图像 假设你有一个容器bd91ca3ca3c8正在运行 并且您希望在容器中进行更改后创建一个新映像 生成另一个图像将允许您保留您的更改 在这种情况下你可以运
  • 在 ASP.NET 自托管 Web API 上配置 SSL

    我正在创建自托管 Web API 服务 为了确保它的安全 我研究并实施了this http www codeproject com Articles 630986 Cross Platform Authentication With ASP

随机推荐

  • PostgreSQL 中是否有可用的多值字段类型?

    我想知道是否可以在 PostgreSQL 的一个字段中存储多个值 我有一张桌子叫Token与列id text and category category是一个多值字段 是否有必要为其创建一个单独的表 或者有没有办法将其存储在Token ta
  • java.lang.NoSuchMethodError:没有静态方法 getDrawable(Landroid/content/Context;I)

    正在将 Socialize SDK 集成到我的应用程序中 我还将 Android Studio 更新到了 2 3 3 我的 Activity 的 super onCreate savedInstanceState 给了我一个错误 这里也提出
  • malloc(0) 的行为

    int main char p p char malloc sizeof char 0 printf Hello Enter the data without spaces n scanf s p printf The entered st
  • 如何在 Java 中定义重复的枚举常量?

    我想定义一个具有两个 值 相同的常量的枚举类型 我将这两个常量称为重复项 考虑以下示例 我想要定义一个浏览器类型列表 并且想要同时拥有文字 IE 和 InternetExplorer 如下所示 enum Browser CHROME chr
  • 关闭SKScene后,内存仍然居高不下

    我使用dispatch onceNSObject创建数据指针 因此 当主视图控制器出现时 所有游戏资源指针都会被创建 为了玩游戏 用户点击UIButton对应于某个特定级别UI视图控制器 让我称之为 LevelSelectionContro
  • AXML 和 XAML 之间的区别?

    我是 Visual Studio Xamarin 跨平台移动开发的新手 我一直在搜索 AXML 但我找不到任何设计和应用 MVC 方法的教程 实际上我对此有很多疑问 但我先把这 3 留在这里 他们有什么区别 xaml设计可以应用在axml中
  • 使用 psycopg cur.execute 创建 postgres 模式

    我的 python 应用程序允许用户创建其命名模式 我需要一种方法来保护应用程序免受 SQL 注入 要执行的SQL读取 CREATE SCHEMA schema name AUTHORIZATION user name psycopg 文档
  • PHP 正则表达式生成器

    我现在已经获得了满足以下所需条件的有效正则表达式字符串 一行 php 就绪正则表达式 包含许多关键字和关键术语 并且至少匹配其中一个 例如 关键术语 apple banana strawberry pear cake 现在 如果找到任何这些
  • git、mercurial、bazaar 源代码库的可理解性

    我想阅读一种流行的版本控制工具的源代码 以了解版本控制的工作原理 我想读一本最具可读性的书 我不知道对此有什么客观 定量的衡量标准 所以本着WTF 分钟漫画 http www osnews com story 19266 WTFs m 想请
  • 内容提供商中 Android 投影图的用途是什么?

    我正在查看 Android 记事本应用程序示例代码
  • Firefox Web 扩展“无法访问死对象”错误

    我很难找到这个问题的最新答案 并且经常没有时间在这里回答问题 所以我想我会发布这个 这样我就可以回答我自己的问题 因为我找到了解决方案 我正在为 Chrome 和 Firefox 制作一个 Web 扩展 Firefox 有一个问题 当我从选
  • 跨浏览器选项卡共享 websocket?

    我们希望每个浏览器都有一个套接字 而不是浏览器中的每个选项卡都有一个套接字 我们怎样才能实现它呢 我读到了有关共享网络工作者的文章 这很有前途 对此的参考也值得赞赏 不幸的是 据我所知 共享网络工作者尚未被 Mozilla 或 Intern
  • 在非托管 CDI Bean 中引用 CDI Bean

    是否可以在使用创建的类中获取 CDI bean 的实例new关键词 我们目前正在对旧应用程序进行一些增强 并且我们总是会得到上下文不活跃异常 http docs jboss org cdi api 1 0 javax enterprise
  • 如何在 Xamarin iOS 中绘制文本?

    我想在给定点 x y 处绘制文本Draw自定义的方法View 我已关注这个样本 https developer xamarin com recipes ios graphics and drawing core text draw unic
  • 如何在CKEditor 4中设置默认字体和字体大小

    我使用以下代码在 CKEditor 4 中设置默认字体和字体大小 config font defaultLabel Tahoma config fontSize defaultLabel 24px 但上面的代码在 Mozilla Firef
  • php 中转义引号的意义是什么

    这是我正在学习的一本书中的验证脚本 为什么需要转义引号 例如
  • 在 PHP 中对逗号分隔值列表运行选择

    我在数据库上运行选择查询时遇到一些问题 一些数据以逗号分隔值的列表形式保存 例如 Table example tbl Id People Children 1 1 2 3 8 10 3 2 7 6 12 18 19 2 我正在尝试运行的示例
  • SQL Server 2008 - 按带有数字的字符串排序

    我的表中有以下值 ABC ABC1 ABC2 ABC3 and so on ABC11 ABC12 ABC13 and so on ABC20 ABC21 ABC22 and so on 所以基本上我拥有的是任何字符串值 并不总是 ABC
  • Spark 结构化流 - 从嵌套目录读取文件

    我有一个客户端将 CSV 文件放置在嵌套目录中 如下所示 我需要实时读取这些文件 我正在尝试使用 Spark 结构化流来做到这一点 Data user data 1 csv user data 2 csv user data 3 csv u
  • 无法将证书添加到 alpine linux 容器

    我在 alpine linux 容器内有一个小型 python 应用程序 这是 dockerfile FROM alpine basic flask environment RUN apk add no cache bash git ngi