使用 netcat 连接到 HTTPS (nc)

使用 netcat 连接到 HTTPS (nc)

我正在为我的大学课程做家庭作业。任务是使用 HTTPS 获取网页nc (netcat)

要通过 HTTP 获取页面,我只需执行以下操作:

cat request.txt | nc -w 5 <someserver> 80

request.txt有一个 HTTP 1.1 请求

GET / HTTP/1.1
Host: <someserver>

现在……一切正常。然而,挑战在于——获取使用 HTTPS 的网页?

我得到了这样的页面证书。这就是我目前陷入困境的地方

openssl s_client -connect <someserver>:443

答案1

nc不使用 https。 openssl s_client这是你能得到的最接近的。做这样的事情:

$ cat request.txt | openssl s_client -connect server:443

答案2

ncat --ssl

在 Ubuntu 上:

sudo apt-get install nmap
printf 'GET / HTTP/1.1\r\nHost: github.com\r\n\r\n' | ncat --ssl github.com 443

与超级用户相同telnet 或 netcat 客户端可以通过 SSL 通信吗?但与 一起nmap使用(例如)。ncatncnc --ssl

在 Debian 或 Ubuntu 上:

sudo apt-get install ncat

答案3

您可能想要使用 stunnel。

一个允许在安全套接字层 (SSL) 内加密任意 TCP 连接的 GNU 程序。

http://www.stunnel.org

它非常具有 UNIX 风格。一款出色的工具,可完成一项简单的任务。

答案4

向教授或助教寻求帮助。在现实世界中,你永远不会尝试通过 netcat 进行 HTTPS(这openssl s_client将是我首选的工具,但还有其他选择),因此通过在现实世界中询问人们找到教授想要的“正确”答案的机会很低。我可能会仔细阅读讲座中的所有幻灯片/笔记;通常这些“不可能”的问题实际上在讲座中得到了回答,并提出只是为了看看谁在课堂上真正专心听讲。

相关内容