Назад | Перейти на главную страницу

Подключение к HTTPS с помощью netcat (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

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).

http://www.stunnel.org

Это очень UNIX-й. Один отличный инструмент для одной простой задачи.

Обратитесь за помощью к профессору или ТА. Вы бы никогда не попытались использовать HTTPS поверх netcat в реальном мире (openssl s_client был бы моим первым инструментом выбора, но есть и другие варианты), поэтому шансы найти «правильный» ответ, который хочет профессор, задавая вопросы людям в реальном мире, невелики. Я бы, наверное, просмотрел все слайды / заметки из лекций; как правило, на лекциях фактически даются ответы на такие «невозможные» вопросы, и их задают просто для того, чтобы увидеть, кто на самом деле обращает внимание в классе.