在Linux上使用curl连接Https

在Linux上使用curl连接Https

介绍

curl是一个命令行工具,支持许多不同类型的网站,包括https网站。它可以用来连接任何网站,但它最常用于连接网络服务器并从其中检索数据。在本教程中,我们将学习如何使用curl与一个网站进行HTTPS连接。我们还将看到如何使用curl检索一个文件的内容。

我们将看看如何使用curl通过HTTPS调用一个HTTP端点。

什么是Curl?

Curl是一个命令行工具,允许用户使用各种协议从服务器传输数据,包括HTTP、HTTPS、FTP等。它支持许多不同类型的网站,可以用来连接到任何网站。Curl通常用于连接到网络服务器并从其中检索数据。

卷曲的主要特点是—

  • 从FTP或HTTP服务器下载文件

  • 将文件上传到FTP或HTTP服务器

  • Fetching pages (GET)

  • Uploading pages (POST)

  • 使用用户认证进行POST请求

  • 发送饼干

  • 登录到远程机器上

  • 检索表格信息

  • 查阅帮助文件

  • 开始使用Curl

要开始使用curl,你需要先安装它。

受信任的CA签署的SSL证书

在进行HTTPS连接时,重要的是确保你所连接的服务器是可信的。这可以通过验证服务器的SSL证书来实现。该证书必须由一个受信任的证书颁发机构(CA)签署。如果证书不是由受信任的CA签署,那么你的连接将不安全,通过连接发送的任何数据都可能被拦截。

使用curl的最简单语法是curl.让我们用curl做一个调用HTTPS端点的请求 –

curl https://www.tutorialspoint.com

如果curl发出一个GET请求,并且没有问题地收到了页面源,那么服务器很可能使用的是可信CA签名的SSL证书,这意味着它已经被一个可靠的机构验证过了。

自签证书

如果一个Web服务使用SSL/TLS连接,但没有使用有效的SSL/TLS证书,那么我们可能会看到一个类似于 “SSL握手失败 “的错误信息。这通常表明网络服务没有为HTTPS连接正确配置。

如果我们在本地的Spring Boot应用程序中使用TLS,我们就说我们要用SSL来配置它。

你可以通过添加-k或-insecure选项,使用curl忽略SSL/TLS证书检查。

curl -k https://localhost:8443/tpoint

然而,如果你忽视了HTTPS错误,那么你可能会使自己受到攻击。另一种方法是获取我们试图访问的网站的证书。

获取服务器证书

单向SSL验证会根据我们自己的本地副本验证接收的服务器证书。因此,我们需要在我们的系统中保存服务器证书。

为了从一个SSL连接中获得服务器证书的列表,我们将运行带有showcerts参数的openssl命令。

openssl s_client -showcerts -connect <Domain Name or IP Address>:<Port>

-showcert选项显示整个SSL/TLS认证链。你可以把证书保存到一个输出文件中,以便以后使用。

openssl s_client -showcerts -connect https://localhost:8443/tpoint </dev/null | sed -n -e '/-.BEGIN/,/-.END/ p' > tpoint.pem

调用一个HTTPS端点

为了访问HTTPS端点,我们首先需要使用OpenSSL命令行工具或密钥存储文件从本地网站保存BAEldung.pem文件。

然后,我们将在curl命令中加入-cacert选项。

curl --cacert baeldung.pem https://localhost:8443/tpoint

结论

我们解释了如何使用curl命令行工具来调用一个HTTP/HTTPS端点。

我们还讨论了如何使用OpenSSL命令行工具来获取服务器证书并将其保存到文件中。最后,我们展示了如何使用curl的-cacert选项来访问一个HTTPS端点。

使用curl是一种快速测试网络服务和API的好方法。它很容易使用,速度快,而且可以用于HTTP和HTTPS连接。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程