Я работаю над домашним заданием для своего колледжа. Задача - получить веб-страницу по 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
nc
не делает https. openssl s_client
так близко, как вы получите. Сделайте что-нибудь вроде этого:
$ cat request.txt | openssl s_client -connect server:443
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
Проверено на Ubuntu 18.04.
Вы, вероятно, захотите использовать stunnel.
Программа GNU, позволяющая шифровать произвольные TCP-соединения внутри Secure Sockets Layer (SSL).
Это очень UNIX-й. Один отличный инструмент для одной простой задачи.
Обратитесь за помощью к профессору или ТА. Вы бы никогда не попытались использовать HTTPS поверх netcat в реальном мире (openssl s_client
был бы моим первым инструментом выбора, но есть и другие варианты), поэтому шансы найти «правильный» ответ, который хочет профессор, задавая вопросы людям в реальном мире, невелики. Я бы, наверное, просмотрел все слайды / заметки из лекций; как правило, на лекциях фактически даются ответы на такие «невозможные» вопросы, и их задают просто для того, чтобы увидеть, кто на самом деле обращает внимание в классе.