使用netcat连接到HTTPS(nc)

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

要通过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 

nc不做https。 openssl s_client尽可能接近你会得到的。 做这样的事情:

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

来自nmap包的ncat --ssl对我来说工作的很好:

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

超级用户相同: https : //superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

你可能想要使用stunnel。

GNU程序,允许encryption安全套接字层(SSL)内的任意TCP连接。

http://www.stunnel.org

这是非常UNIX-Y。 一个简单的任务的一个伟大的工具。

请教授或助教。 在现实世界中,你绝对不会试图通过netcat来实现HTTPS( openssl s_client将是我select的第一线工具,但还有其他select),以便find教授想要的“正确”答案的机会现实世界是低的。 我可能会翻阅讲座的所有幻灯片/笔记; 通常这些“不可能”的问题实际上是在讲座中回答的,只是要问在课堂上真正关注的是谁。