cURL:默认请求http和https

cURL:默认请求http和https

服务器正在 5000 端口上运行。我必须编写一个 bash 脚本来 cURL 该 URL 并解析响应。这里的问题是服务器可以在httphttps协议上运行。这意味着我有curlhttps://serverip:5000http://serverip:5000

现在,我首先检查http请求。如果该请求失败,那么我将进行检查https。有没有什么方法cURL可以自动检测正在运行的服务器httphttps向其发出请求?

答案1

AFAIK,“curl”命令不提供确定连接是否为 SSL 的功能。因此,您需要使用不同的工具来检查这一点。

我创建了一个小脚本,它使用“openssl”来确定指定的连接是否是 SSL。享受:

#!/bin/bash

if [ $# -lt 1 ]; then 
    echo "Usage: testssl.sh <host> [port]"
    exit 1;
fi 

PROTO="http"
echo ^d | openssl s_client -connect ${1}:${2:-443} && PROTO="https"
curl ${PROTO}://${1}:${2:-443}

相关内容