gpt4 book ai didi

r - 如何在 ubuntu 16.04 中解决 "ssl certificate problem: unable to get local issuer certificate"

转载 作者:行者123 更新时间:2023-12-04 18:27:47 26 4
gpt4 key购买 nike

我正在使用 rvest抓取一个网站。我对其他网站完全没问题,但我认为这个网站使用的是另一种类型的证书。我在这里和 github 看到过类似的问题,但没有人能帮助我。
任何帮助表示赞赏。
我的脚本如下:

url <- "https://search.codal.ir/api/search/v1/q?PageNumber=1&Symbol=%D9%81%D8%B3%D8%A7&Subject=%20&CompanyState=0&LetterType=6&TracingNo=-1&LetterCode=%20&FromDate=1395/01/01&ToDate=%DB%B1%DB%B3%DB%B9%DB%B8/%DB%B0%DB%B3/%DB%B1%DB%B6&AuditorRef=-1&YearEndToDate=&Publisher=false&Mains=true&Childs=false&Audited=false&NotAudited=true&Length=-1&Consolidatable=true&NotConsolidatable=true&CompanyType=1&Category=1"

data <- fromJSON(url)[[3]]

错误是:

"Error in open.connection(con, "rb") : SSL certificate problem: unable to get local issuer certificate"

最佳答案

这是一个错误配置的服务器 (search.codal.ir)。可以考虑给他们的管理员发送一封友好的电子邮件。
这里的问题是这个 TLS 服务器没有在握手中发送完整的证书链,它应该根据标准。更具体地说,它不发送中间证书。这可以通过将“search.codal.ir”发布到 SSL Labs 测试页面和 the results are clear 来查看。 .
中间证书是介于根证书(存在于 CA 存储中)和服务器自己的证书之间的证书。
这有时在浏览器中比 curl 更有效,因为

  • 浏览器通常会缓存中间证书(可由多个主机使用)
  • 一些浏览器(如 Chrome)支持 AIA(授权信息访问)等功能,使其能够按需下载中间证书。 RFC 5280 has the details .

  • curl 错误消息 unable to get local issuer certificate几乎总是意味着这就是发生的事情。
    修复它
    真实 服务器管理员应该进行适当的修复。这是服务器设置问题。
    解决它
    您可以手动下载中间证书并将其放入您的 CA 存储中,即您告诉 curl(或其他客户端)在验证对等方时使用的 PEM 文件。
    SSL Labs 页面对缺少的中间证书进行了以下说明:
    Certum Organization Validation CA SHA2
    Fingerprint SHA256: fd02362244f31266caff005818d1004ec4eb08fb239aafaaafff47497d6005d6
    Pin SHA256: 51GveKNrpJjtGpXY5QDx03s3YTQwaQic6dWBqo3zX6s=
    RSA 2048 bits (e 65537) / SHA256withRSA
    (我找不到从哪里下载它)
    不要这样做
    您可以完全禁用证书验证,这将允许您的程序继续。但是你已经放弃了所有的安全,只有悲伤和眼泪沿着那条路走。仅用于实验,绝不用于生产。

    关于r - 如何在 ubuntu 16.04 中解决 "ssl certificate problem: unable to get local issuer certificate",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56547867/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com