Curl 无法验证 Verisign 颁发的通配符 SSL 证书

2023-12-14

我有一个脚本需要使用 cURL 安全连接到网站 foo.bar.com,该网站由 *.bar.com 的通配符 SSL 证书覆盖。

通配符证书由 Verisign 颁发,所有浏览器都信任它,没有任何问题。但是,我无法让 PHP / cURL 连接(至少在不禁用证书验证的情况下)。

只是为了隔离问题,我尝试仅使用命令行 cURL(版本 7.21.1)进行连接。我从 Mozilla 下载了更新的 CA 包(另存为 cacert.pem),然后运行:

curl --cacert /path/to/cacert.pem "https://foo.bar.com"

结果是:

curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

我一直在谷歌搜索并阅读有关此错误的帖子,但似乎无济于事。

如果我尝试任何正常的非通配符证书域,它似乎工作得很好,所以它似乎局限于这个特定的通配符证书问题。我什至手动导出了信任链中的所有证书,并将它们手动添加到 cacert.pem 文件中(只是为了查看 CA 捆绑包是否缺少某些内容),但仍然没有任何结果。

最终,我希望在 PHP cURL 中实现此功能,但我认为如果我可以通过命令行 cURL 确定问题,那么该解决方案也可能适用于 PHP 脚本。


问题可能不是curl,而是由于缺少链证书而导致的不完整的信任链。桌面浏览器在这方面的问题较少,因为它们在访问其他站点时会缓存此类证书,并且某些浏览器甚至会下载丢失的证书。

标头移至SSLLabs并检查网站。留意“连锁问题”。

如果我的回答有误,请添加相关网址以及你使用的curl版本,以便大家仔细查看。

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

Curl 无法验证 Verisign 颁发的通配符 SSL 证书 的相关文章

随机推荐

  • D3 库 — 本示例中如何从 JSON 访问数据

    我没有在标题中正确解释这个问题 抱歉 我正在关注 D3 标签云简单示例https github com jasondavies d3 cloud blob master examples simple html 我有一个 JSON 文件 其
  • 阻止 JSON.parse() 从 json 字符串数据中删除尾随零

    我创建了一个 JSON 字符串 如下所示
  • pthread 和 semaphore 在 osx maverick 10.9 中不适用于我

    我有以下涉及 pthread 和信号量的简单程序 我使用的是 os x Maverick 10 9 我使用 makefile 来编译程序 而不是 xcode 我使用c 11 include
  • 只需检查多个语句 C#

    目前正在开发一款小型主机游戏 想知道是否有人有一种简单的方法来缩短这样的内容 if map playerX 1 playerY R1 map playerX 1 playerY R2 map playerX 1 playerY R3 map
  • 如何在 SQL Server 中使用 NOT IN 创建过滤索引

    我想创建唯一的非聚集索引 它限制特定列的某些记录 我使用 NOT IN 来过滤它 但由于 NOT IN 我收到错误 有什么替代方法可以做到这一点 CREATE UNIQUE NONCLUSTERED INDEX UN Student ON
  • rabbitmq中预取计数与无ack有什么区别

    我需要知道rabbitmq中预取计数与无ack之间有什么区别 还 以下陈述有什么区别 如果我设置预取计数为 10 是否会创建 10 个消费者线程 或者 如果我注册 10 个消费者 它会创建 10 个线程吗 以上哪种方式效率更高 专门针对 s
  • SVN for Emacs:如何设置作者姓名和保存密码?

    我似乎无法在谷歌任何地方找到这个 我正在尝试从 eclipse 迁移到 emacs 但我一生都无法弄清楚如何设置我的 svn 作者姓名 这样它就不会默认作者姓名或保存密码 这样我就不必输入它在任何一次 如果这很重要的话 我是 Ubuntu
  • 如何通过cleartool命令将文件夹中的所有文件添加到源代码管理中?

    我有一个文件夹 其中有很多文件和子文件夹 通过 UI 将其添加到源代码管理会消耗很多时间 如何使用cleartool将所有文件 包括子文件夹内的文件 添加到源代码管理 我使用的是clearcase UCM 正如 如何使用 ClearCase
  • 如何使用 JMeter 中的正则表达式提取器提取某些值?

    如果我有两个相同的标签和相同的属性 唯一的区别是值 我如何提取第二个
  • 网络聊天是否有“重置”按钮?

    开箱即用的网络聊天默认按钮集是 发送 按钮和 上传文件 按钮 网络聊天是否有可用的 重置 按钮 可以结束当前对话并为同一用户从头开始新对话 是否需要打开一些配置或样式选项才能直观地看到 重置 按钮 聊天 对话历史记录需要保持完整 它不应该清
  • 验证 python passlib 生成的密码哈希值

    我需要验证使用 python 生成的密码哈希值passlib 我的目标是使用 passlibpbkdf2 sha512对所有用户密码进行哈希处理的方案 但是 由于我们后端的性质 我需要从 php 脚本 js 和 java 验证此密码 我还没
  • 在 C 中调用 GNU Octave 函数?

    我想使用矩阵代数和优化 我已经测试了不同的矩阵代数 C 和 C 库 但这些库的问题是它们不能像 GNU Octave 那样处理垃圾数据 C 和 C 中的垃圾数据会降低到 e 8 但在 GNU Octave 中 它将降低到 e 17 如果您计
  • Razor 类库也可以打包静态文件(js、css 等)吗?

    Maybe 与此重复已经 但由于该帖子没有任何答案 我发布这个问题 The new 剃刀类库很棒 但它不能打包库文件 如 jQuery 共享 CSS 我能否以某种方式在多个 Razor 页面项目中重用 CSS 无论是使用 Razor 类库还
  • Android 可以替代 jtable 吗?

    android 3 x sdk 11 或更高版本 是否有类似于 jtable 对象的小部件 我不是从头开始开发一个小部件 使用 gridview 或 tablelayout 而是寻找一个随时可用的小部件 TIA Bob 更新 我发现了这篇优
  • iPhone sdk调用拦截

    我们正在开发一个应用程序 该应用程序的功能是 当我们自动接到电话时 我们必须通过短信 语音消息回复 那么 您能告诉我们在iPhone中是否可以实现 如果意味着指导我们构建该应用程序 提前致谢 布莱特 拉吉 目前的SDK无法以这种方式访问 手
  • 如何获取 pygtk 窗口的大小?

    我正在尝试使用 gtk window get size 但它总是只返回默认的宽度和高度 文档说 get size 方法返回一个包含当前宽度和 窗户的高度 如果窗口不在屏幕上 则返回 PyGTK 将向窗口管理器建议初始窗口的大小 尺寸 get
  • 将科学记数法转换为十进制 pandas python

    可能这是一个老问题 我在下面发现了类似的问题 但我仍然可以在输出文件中看到科学记数法 抑制 pandas 中的科学记数法 熊猫读科学计数法并改变 Python Pandas 科学记数法不一致 我尝试合并set option and df a
  • 扩展 EntityType 以允许通过 AJAX 调用设置额外的选择

    我尝试创建 Symfony 自定义类型延伸核心 entity type 但我想用它选择2版本4 0 0 ajax 现在适用于 select html 元素 而不是像以前那样适用于隐藏的 input 此类型应创建一个空选择 而不是扩展 实体
  • 从 const 成员函数中将“this”返回为非常量

    我想在类上进行方法链接Point below include
  • Curl 无法验证 Verisign 颁发的通配符 SSL 证书

    我有一个脚本需要使用 cURL 安全连接到网站 foo bar com 该网站由 bar com 的通配符 SSL 证书覆盖 通配符证书由 Verisign 颁发 所有浏览器都信任它 没有任何问题 但是 我无法让 PHP cURL 连接 至