修复了 Octave urlread 导致无法使用给定 CA 证书对对等证书进行身份验证的问题

2024-03-18

Question

如何修复(不是解决方法)Octave(假设 libcurl 与 Octave 捆绑) urlread 导致无法使用给定的 CA 证书对对等证书进行身份验证?

读过pkg 在 Windows 中从 forge 安装 http://octave.1599824.n4.nabble.com/pkg-install-from-forge-in-windows-td4680633.html,看起来 Octave 维护者已经意识到 Octave 4.0 的问题,但似乎没有可用的修复程序。

Issue

看起来 Windows 上的 Octave 的 urlread 不适用于 HTTPS,因为例如服务器证书https://octave.sourceforge.io https://octave.sourceforge.io无法使用 urlread (似乎调用curl)引用的受信任证书进行身份验证。

例如,share\octave\4.2.0\m\pkg\private\get_forge_pkg.m 第 64 行在尝试运行时会导致问题pkg 安装-forge安装软件包。

## Try get the list of all packages.
[html, succ] = urlread ("http://packages.octave.org/list_packages.php");    
if (! succ)
  error ("get_forge_pkg: could not read URL, please verify internet connection");
endif

从命令窗口运行 urlread 显示以下错误。

>> [html, status, msg] = urlread ("http://packages.octave.org/list_packages.php");
>> msg
msg = Peer certificate cannot be authenticated with given CA certificates

尝试通过 HTTPS 访问 google.com,结果相同。

>> [html, status, msg] = urlread ("https://google.com");
>> msg
msg = Peer certificate cannot be authenticated with given CA certificates

IE和Google Chrome根证书可以验证sourceforge证书。

尝试了如下系统。

#[html, succ] = urlread ("http://packages.octave.org/list_packages.php");
sURLLink="https://octave.sourceforge.io/list_packages.php"
command=['curl --insecure ','"',sURLLink,'"'];
[succ, html] = system(command)
#if (! succ)
if (succ != 0)
  error ("get_forge_pkg: could not read URL, please verify internet connection");
endif

然而,它导致了另一个错误。

>> pkg install -forge symbolic
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   559  100   559    0     0    389      0  0:00:01  0:00:01 --:--:--   393
sURLLink = https://octave.sourceforge.io/list_packages.php
succ = 0
html = bim
bsltl
cgi
....

error: get_forge_pkg: package NAME exists, but index page not available
error: called from
    get_forge_pkg at line 74 column 7
    get_forge_download at line 26 column 12
    pkg at line 382 column 29

相关信息

  • pkg 在 Windows 中从 forge 安装 http://octave.1599824.n4.nabble.com/pkg-install-from-forge-in-windows-td4680633.html
  • urlread()、urlwrite() 不适用于 Octave for Windows 中的 https 页面 https://stackoverflow.com/questions/26237960/urlread-urlwrite-dont-work-for-https-pages-in-octave-for-windows
  • windows libcurl - 无法使用给定的 ca 证书对对等证书进行身份验证 https://stackoverflow.com/questions/40752114/windows-libcurl-peer-certificate-cannot-be-authenticated-with-given-ca-certifi
  • Curl 中出现错误 - 无法使用已知的 CA 证书对对等证书进行身份验证 https://stackoverflow.com/questions/14682894/getting-error-in-curl-peer-certificate-cannot-be-authenticated-with-known-ca-c
  • SSL CA 证书 - LibCurl C 语言 (Linux) https://stackoverflow.com/questions/26719772/ssl-ca-certificates-libcurl-c-language-linux

环境

  1. Windows 7 Enterprise 64 位版本 6.1.7601 Service Pack 1 Build 7601 上的 Octave-4.2.0-w64
  2. Windows 10 Pro 64 位版本 10.0.14393 内部版本 14393 上的 Octave 4.0.3

  1. 您收到“无法对对等证书进行身份验证”错误,因为您的 CA 存储不包含必要的 CA 证书。您可以获得更新的捆绑包从这里 https://curl.haxx.se/docs/caextract.html.
  2. 您尝试使用curl命令行工具不起作用的原因是您没有使用-L, --位置 https://curl.haxx.se/docs/manpage.html#-L告诉curl遵循重定向的选项,所以你刚刚得到了303响应http://packages.octave.org/list_packages.php返回。如果您使用 -L,您会发现它会将您重定向到 HTTPS:// URL 两次 - 只是为了让您被迫修复情况 (1)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

修复了 Octave urlread 导致无法使用给定 CA 证书对对等证书进行身份验证的问题 的相关文章

  • 具有 DNS 验证的证书陷入待验证状态

    我已将我的域转移到 Route53 并且我希望 Amazon Certificate Manager 为该域颁发证书 我按照控制台中的步骤颁发证书 确实出现了 在 Route53 中创建记录 按钮 我确实按它 它说 成功 我确实看到在 Ro
  • ...此内容也应该通过 HTTPS 加载

    再会 Site https mult privet com https mult privet com 在我的 Chrome 控制台中 我看到以下错误 blocked The page at https yandex st share ya
  • Spring Security 3.1.0 - 无法从 HTTPS 切换到 HTTP

    我是 Spring Security 的新手 所以我制作了一个小型 Web 应用程序 以便尝试它并找到对我正在从事的项目有用的配置 我强制通过 HTTPS 访问登录页面 登录后需要切换回 HTTP 换句话说 登录页面 仅限 HTTPS 其他
  • 对在欧盟地区运行的 Heroku 应用程序强制使用 SSL

    我正在努力为 Heroku 欧盟地区 上运行的 Rails 应用程序强制实施 SSL 连接 我已成功将证书 包括 Heroku SSL 附加组件 添加到自定义域 如果我明确声明 https com 则效果完美 但我想将所有 http 请求重
  • 无法将 HAProxy 实现为 HTTPS 的转发代理

    我正在尝试使用 HAProxy 作为转发代理 它适用于 HTTP 但不适用于 HTTPS 下面是我的 HTTP HAProxy 配置 listen forward http proxy bind 80 http request do res
  • 使用 HTTPS 链接与 php 方法(file_get_contents、getimagesize)

    当我尝试读取网站中的某些 HTTPS 网址时遇到问题 如果我使用 http 则没有问题 使用file get contents和curl 但是当我用 https 替换 http 时 这些方法不起作用 我收到一些错误 failed to op
  • 同一 IP 443 端口中的多个域

    我在 IIS 7 的端口 443 https 上托管了一个网站 www example1 com 现在我为同一 IP 的 www example2 com 购买了一个新域 我想在此域中托管另一个网站 www example2 com htt
  • 设置 Let's encrypt with Go - 握手错误

    我正在尝试设置让我们在用 Go 编写的负载均衡器上进行加密 我尝试了自动和手动设置 但总是出错 该域正确指向我们的服务器 Digital Ocean 我什至可以从浏览器打开该网站而不会出现错误 而且 ssl 检查报告该域上没有错误 事实是
  • 将证书文件加载到证书对象中

    我正在尝试将证书文件加载到证书对象中 但出现以下异常 java security cert CertificateParsingException invalid DER encoded certificate data at sun se
  • 我无法使用 LWP::UserAgent 连接到任何 HTTPS 站点

    我正在尝试创建一个仅连接到网站的脚本 但是 由于某种原因 它不会连接到使用 HTTPS 的任何内容 我们在这里启用了代理 但是 我相信代理不是问题 因为如果我要连接到网络内部不通过代理建立隧道的 HTTPS 它仍然会失败 如果我要在任何不使
  • PHP客户端验证https证书

    我需要创建一个 php 来充当客户端并使用 https 下的一些 Web 服务 我的问题是我还想验证服务器证书 我需要知道我有正确的服务器并且中间没有人充当服务器 有人能帮助我吗 Thanks 如果您有curl 扩展 则可以将其配置为验证连
  • P12 证书“数据不足”错误

    我试图使用安全地连接到端点 p12文件 但我不断收到以下错误 tls common js 136 c context loadPKCS12 pfx Error not enough data at Error native at Objec
  • curopt_binarytranfer 到底是什么意思?

    我不明白有什么区别 CURLOPT RETURNTRANSFER AND CURLOPT BINARYTRANSFER 我写了一个脚本来检查它
  • 使用 Android Volley 发出 HTTPS 请求

    我正在尝试使用以下代码发出 https 请求 RequestQueue queue Volley newRequestQueue getApplicationContext request new Request
  • 是否可以为 IP 地址而不是域名提供 SSL 证书? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望我的网站使用类似的 URLhttp 192 0 2 2 and https 192 0 2 2 用于静态内容 以避免请求中不必要的
  • 当建立 TLS / LDAP 或 TLS / HTTP 连接时,线路上会发生什么?

    我正在重新表述我的问题 希望能得到更好的答复 我问了类似的问题这里服务器故障 https serverfault com questions 178561 what are the exact protocol level differen
  • 使用openssl从服务器获取证书

    我正在尝试获取远程服务器的证书 然后可以将其添加到我的密钥库中并在我的 Java 应用程序中使用 一位高级开发人员 正在度假 告诉我我可以运行这个 openssl s client connect host host 9999 获取转储的原
  • Node.js 中的 HTTPS 代理服务器

    我正在开发一个node js代理服务器应用程序 我希望它支持HTTP and HTTPS SSL 协议 作为服务器 我目前正在使用node http proxy https github com nodejitsu node http pr
  • SSL 到底如何工作?

    SSL 是如何工作的 证书安装在客户端 或浏览器 和服务器 或Web服务器 的哪里 当您在浏览器中输入 URL 并从服务器获取页面时 信任 加密 身份验证过程如何启动 HTTPS协议如何识别证书 当证书负责所有信任 加密 身份验证工作时 为
  • 单机Octave并行计算——包和示例

    我想在单台机器 而不是集群 上并行化 Octave 中的 for 循环 前段时间我问了一个关于Octave并行版本的问题Octave并行计算 https stackoverflow com questions 7047840 paralle

随机推荐