我正在尝试使用curl
获取 GET 请求的 HTTP 状态:
curl --insecure --silent --show-error --connect-timeout 1 -I https://host:8443/health
注意:我--insecure
在这个命令中使用了标志。
我得到以下输出:
HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Accept-Ranges: bytes
Last-Modified: Wed, 16 May 2012 03:05:24 GMT
Content-Type: text/html
Content-Length: 1234
Date: Wed, 16 May 2012 08:57:30 GMT
当我在浏览器中导航到此 URL 时,它运行正常并且我得到了一个200 OK
。
如何从 curl 命令中获取200 OK
?我可以从浏览器导出 PEM 证书并以某种方式使用它吗?
答案1
您可以从浏览器导出证书并将其与 cURL 一起使用。从手册页:
-E,--cert [证书][:密码]
(SSL)告诉 curl 在通过 HTTPS、FTPS 或其他基于 SSL 的协议获取文件时使用指定的客户端证书文件。证书必须为 PEM 格式。如果未指定可选密码,则会在终端上查询密码。请注意,此选项假定“证书”文件是私钥和私有证书的连接!请参阅 --cert 和 --key 以单独指定它们。
如果 curl 是针对 NSS SSL 库构建的,则此选项可以告诉 curl 在环境变量 SSL_DIR(或默认情况下为 /etc/pki/nssdb)定义的 NSS 数据库内使用的证书的昵称。如果 NSS PEM PKCS#11 模块 (libnsspem.so) 可用,则可以加载 PEM 文件。如果您想使用当前目录中的文件,请在其前面加上“./”前缀,以避免与昵称混淆。
如果多次使用此选项,则将使用最后一个选项。
答案2
先决条件:-
- 在 SLES11sp4 上测试
- 下载 openssl-1.1.1.tar.gz (https://www.openssl.org/source/openssl-1.1.1.tar.gz)
- 下载 curl-7.61.1.tar.bz2(https://curl.haxx.se/download/curl-7.61.1.tar.bz2)
- 从操作系统存储库安装“gcc”。
如何:-
1)提取 openssl tarball
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1/
./配置
制作
进行安装
2)现在开始处理 curl。提取 tarball 并配置与 openssl 的兼容性
cp curl-7.61.1.tar.bz2 /opt/
cd /opt
tar -jxvf curl-7.61.1.tar.bz2
cd curl-7.61.1/
env PKG_CONFIG_PATH=/usr/local/ssl./configure --with-ssl
制作
进行安装
3)向新的“加载器库”添加新路径
回显“/opt/openssl-1.1.1/ssl”>>/etc/ld.so.conf
ldconfig
4)将新的curl设置为默认curl。
ln -s /opt/curl-7.61.1/src/curl /usr/bin/curl
5)检查curl的版本
服务器:~# curl --version
curl 7.61.1(x86_64-pc-linux-gnu)libcurl/7.61.1 OpenSSL/1.1.1 zlib/1.2.7
发布日期:2018-09-05
协议:dict file ftp ftps gopher httphttpsimap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
功能:AsynchDNS 大文件 NTLM NTLM_WB SSL libz TLS-SRP UnixSockets HTTPS 代理
完毕
#
#
#
谢谢你,