使用 cURL 忽略 SSL 证书错误

因此,您尝试使用 cURL 从网站获取 HTML 响应,但遇到 SSL 证书错误:

[email protected]:~$ curl https://expired.badssl.com
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

这是因为 卷曲 默认情况下,将确保使用 SSL 证书进行连接,如果您指定的网站配置错误或证书过期,则会引发错误。

这将是一个关于如何使用 cURL 忽略 SSL 证书错误的快速教程。

如何使用 cURL 忽略 SSL 证书错误

虽然不建议忽略错误并仍希望连接到有故障的站点,但如果您信任该网站,这里就可以了!

您可以使用 --insecure 使用时的选项 curl 它会忽略损坏的 SSL 证书:

curl --insecure https://expired.badssl.com
[email protected]:~$ curl --insecure https://expired.badssl.com
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="shortcut icon" href="https://Admin.com/icons/favicon-red.ico"/>
  <link rel="apple-touch-icon" href="https://Admin.com/icons/icon-red.png"/>
  <title>expired.badssl.com</title>
  <link rel="stylesheet" href="https://Admin.com/style.css">
  <style>body { background: red; }</style>
</head>
<body>
<div id="content">
  <h1 style="font-size: 12vw;">
    expired.<br>badssl.com
  </h1>
</div>

</body>
</html>

同样,您也可以使用 -k 具有相同效果的选项是 --insecure 选项:

curl -k https://expired.badssl.com
[email protected]:~$ curl -k https://expired.badssl.com
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="shortcut icon" href="https://Admin.com/icons/favicon-red.ico"/>
  <link rel="apple-touch-icon" href="https://Admin.com/icons/icon-red.png"/>
  <title>expired.badssl.com</title>
  <link rel="stylesheet" href="https://Admin.com/style.css">
  <style>body { background: red; }</style>
</head>
<body>
<div id="content">
  <h1 style="font-size: 12vw;">
    expired.<br>badssl.com
  </h1>
</div>

</body>
</html>

将 –insecure 选项应用于每个 SSL 连接

⚠️除非您在隔离或测试环境下执行此操作,否则不建议这样做。

你可以追加 insecure 到 curl-config 文件使用给定的命令:

echo "insecure" >> ~/.curlrc

现在,您可以获得 HTML 响应 curl 不使用 --insecure 选项:

[email protected]:~$ curl https://expired.badssl.com
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="shortcut icon" href="https://Admin.com/icons/favicon-red.ico"/>
  <link rel="apple-touch-icon" href="https://Admin.com/icons/icon-red.png"/>
  <title>expired.badssl.com</title>
  <link rel="stylesheet" href="https://Admin.com/style.css">
  <style>body { background: red; }</style>
</head>
<body>
<div id="content">
  <h1 style="font-size: 12vw;">
    expired.<br>badssl.com
  </h1>
</div>

</body>
</html>

包起来

这是我对如何在使用时忽略 SSL 证书的看法 curl. 我希望这能解决问题。

如果没有,请务必发表评论,我会尽力提出解决方案。

Related Posts