无法验证 的证书,因为它不包含任何 IP SAN

2024-03-20

我正在开发一个 GitLab CI 管道,它将部署我的 docker 堆栈。我正在尝试将 $DOCKER_HOST 设置为tcp://DROPLET_IP:2377,但我收到一条错误消息,指出我的证书不包含任何 IP SAN。我正在使用 Digital Ocean Droplet 进行测试,因此我还没有为我的 Droplet 设置域名。

deploy:
  stage: deploy
  image: docker:stable
  services:
    - docker:dind
  variables:
    DOCKER_HOST: "tcp://$DROPLET_IP:2377"
    DOCKER_TLS_VERIFY: 1
  before_script:
    - mkdir -p ~/.docker
    - echo "$TLS_CA_CERT" > ~/.docker/ca.pem
    - echo "$TLS_CERT" > ~/.docker/cert.pem
    - echo "$TLS_KEY" > ~/.docker/key.pem
  script:
    - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
    - docker info
    - docker stack deploy --with-registry-auth --compose-file=docker-stack.yml mystack

这是我在 GitLab CI 作业的输出中遇到的错误:

$ docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" "$CI_REGISTRY"
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
error during connect: Post https://<ip-address>:2377/v1.39/auth: x509: cannot validate certificate for <ip-address> because it doesn't contain any IP SANs

我正在使用以下一组命令来生成我的证书(ca.pem, server-cert.pem and server-key.pem)我试图在我的deploy如上所述的阶段。我已经保存了TLS_CA_CERT, TLS_CERT and TLS_KEY到 GitLab CI 中使用的变量。

openssl genrsa -aes256 -out ca-key.pem 4096

openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

openssl genrsa -out server-key.pem 4096

openssl req -subj "/CN=<ip-address>" -sha256 -new -key server-key.pem -out server.csr

echo subjectAltName = IP:<ip-address> >> extfile.cnf

echo extendedKeyUsage = serverAuth >> extfile.cnf

openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \
  -CAcreateserial -out server-cert.pem -extfile extfile.cnf

我看到您已将 IP 地址包含在subjectAltName

echo subjectAltName = IP:<ip-address> >> extfile.cnf

Check, 就像这里一样 https://serverfault.com/questions/611120/failed-tls-handshake-does-not-contain-any-ip-sans#comment728945_611121,如果这是配置问题:

我把 subjectAltName 放在了错误的部分。工作方法:基本上是我编辑的openssl.cnf,在部分[v3_ca]我添加了“subjectAltName = IP:192.168.2.107”。
生成新证书并添加到服务器+客户端。

您需要确保您的扩展已在v3_ca部分,如此处显示 https://stackoverflow.com/a/52669800/6309.

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

无法验证 的证书,因为它不包含任何 IP SAN 的相关文章

随机推荐

  • jquery ajax加载覆盖插件[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 没有 Sql Alchemy 引擎的 Dataframe 到 sql

    我有一个数据框 id value name 1 100 sam 2 766 abc 3 234 qqq 4 435 ppp 5 345 mmm 我想将此表保存到 SQL Server 数据库表 tab1 中 我可以df to sql 但当我
  • 在特定日期使用 CSS 更改背景?

    有谁知道如何在特定日期使用 CSS 自动更改网站的背景 比如情人节 复活节 圣诞节等 为此 您必须使用 PHP 或 JavaScript 等服务器端语言 例如 使用 PHP 您可以使用以下命令访问服务器日期 时间date http php
  • 在另一个线程中运行异步函数

    我正在评估异步 CTP 如何开始在另一个线程池的线程上执行异步函数 static async Task Test Do something await something static void Main string args Is th
  • 如何在 Firebase 文件上设置 Access-Control-Allow-Origin

    我正在尝试设置Access Control Allow Origin to 在某个文件上 这是我的 firebase json 文件 database rules database rules json hosting public pub
  • Xunit 以下构造函数参数没有匹配的夹具数据

    在使用 XUnit for NET 1 0 框架 net46 时 我不断收到此错误 以下构造函数参数没有匹配的夹具数据 我看过这个帖子 收集装置不会注入 https stackoverflow com questions 32319903
  • 使用 mmap 逐行读取文件

    我有一个程序可以逐行读取大小不同的文件 我想使用 mmap 但如何使用它来逐行读取文件 谢谢您的回答 一旦你有mmap 编辑文件后 您可以使该文件可用于合适的流缓冲区 从现有内存中读取数据 然后使用std getline include
  • 如何抑制 Qt Creator 中的警告

    我想知道是否可以在 Qt Creator 中抑制编译器特定的警告 我的 g 4 5 打印 警告 条件表达式中的枚举和非枚举类型 我想摆脱它 因为它非常烦人 乌班图 11 04 x64 g 4 5 QtCreator 2 01 Qt 4 7
  • 库类(来自 Android sdk)取决于程序类(同样,Android sdk)

    我们正在从 Android Gradle 插件 2 3 3 迁移到 Gradle 插件 3 0 1 我们的应用程序由应用程序模块和库模块组成 多个依赖项是可传递的 使用api关键字 但甚至使用implementation没有帮助 全部更改后
  • 如何对包含空元素的对象数组进行排序?

    在我的程序中有一个数组fClasses创建固定长度 7 个对象 每个对象都是一个类FClass其中包含 3Strings an int 和int 这些值是从 txt 文件中读取的 并根据该值添加到数组的特定索引中 int txt 文件中的条
  • 为回归方程选择适当的滞后以及如何解释 VARselect 结果

    我的问题有两个方面 如何为回归方程选择合适的滞后 我有房价的因变量 以及租金 房屋供应 国家股市指数 抵押贷款利率和房屋空置率的自变量 我读了一些书 发现VARselect data lag max 1 or 2 or 3 etc 可以帮助
  • ASP.NET Core应用程序设置生产SSL证书

    我可以在我的开发盒上运行得很好 但不能在产品中运行 我在我的域服务器上安装了 SSL 证书 如何告诉我的 ASP NET Core 应用程序使用哪个证书 我想我需要添加一些东西让它知道 我问是因为目前我得到 无法启动 Kestrel Sys
  • 使用XPATH,如何选择包含特定字符串的任何节点

    假设我有一个如下所示的 XML 文件
  • 如果其他参数为 null,SQL 正确的连接方式

    我有这段代码及其临时表 因此您可以运行它 create table student id int identity 1 1 firstname varchar 50 lastname varchar 50 create table quiz
  • 根据判别器的子集获取判别联合的子集

    打字稿问题 给定一个受歧视的联合类型 interface A discriminator A data string interface B discriminator B data string interface C discrimin
  • 在 R 中使用 download.file 下载时跳过错误文件

    我有大量 pdf 文件的链接 我想在 for 循环中使用 download file 下载这些文件 我的解决方案工作正常 但在遇到错误时停止 许多文件不起作用 我想在 download file 函数中添加一个功能 告诉 R 在下载产生错误
  • 如何强制 Rails ActiveRecord 提交事务刷新

    是否可以强制 ActiveRecord 推送 刷新事务 或只是保存 创建 我有一个时钟工作人员 它在后台为多个任务工作人员创建任务 问题是 时钟工作人员有时会在时钟工作人员信息完全刷新到数据库之前创建一个任务并将其推送给任务工作人员 这会导
  • Linux 中上下文切换需要多长时间?

    我很好奇在 Linux 中更改上下文需要多少个周期 我专门使用 E5405 Xeon x64 但我也很想看看它与其他平台的比较 有一个名为 LMBench 的免费应用程序 由 Larry McVoy 和朋友编写 它提供了一系列操作系统和硬件
  • 初始化词汇表外 (OOV) 标记

    我正在为 NLP 任务构建 TensorFlow 模型 并且使用预训练的 Glove 300d 词向量 嵌入数据集 显然 有些标记无法解析为嵌入 因为它们没有包含在词向量嵌入模型的训练数据集中 例如罕见的名字 我可以用 0 向量替换这些标记
  • 无法验证 的证书,因为它不包含任何 IP SAN

    我正在开发一个 GitLab CI 管道 它将部署我的 docker 堆栈 我正在尝试将 DOCKER HOST 设置为tcp DROPLET IP 2377 但我收到一条错误消息 指出我的证书不包含任何 IP SAN 我正在使用 Digi