web-dev-qa-db-fra.com

Connexion à HTTPS avec netcat (nc)

Je travaille sur des devoirs pour mon collège. La tâche consiste à récupérer la page Web sur HTTPS à l'aide de nc (netcat).

Pour récupérer une page via HTTP, je fais ceci:

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

Dans request.txt, j'ai une requête HTTP 1.1

GET / HTTP/1.1
Host: <someserver>

Maintenant ... Cela fonctionne bien. Comment récupérer une page Web qui utilise HTTPS?

J'obtiens un certificat de page comme celui-ci. Et c'est le point où je suis coincé

openssl s_client -connect <someserver>:443
45
Oto Brglez

nc ne fait pas https. openssl s_client est aussi proche que possible. Faites quelque chose comme ça:

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

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

Idem pour le super utilisateur: https://superuser.com/questions/346958/can-the-telnet-or-netcat-clients-communicate-over-ssl

Testé sur Ubuntu 18.04.

Vous voulez probablement utiliser Stunnel.

Un programme GNU permettant de crypter des connexions arbitraires TCP à l'intérieur de Secure Sockets Layer (SSL).

http://www.stunnel.org

C'est très UNIX-y. Un excellent outil pour une tâche simple.

6
Yves Junqueira

Demandez de l'aide au prof ou au TA. Vous n'essaieriez jamais de faire HTTPS sur netcat dans le monde réel (openssl s_client serait mon outil de premier choix, mais il y a d'autres options) donc les chances de trouver la "bonne" réponse que le prof veut en demandant aux gens dans le monde réel sont faibles. Je passerais probablement en revue toutes les diapositives/notes des conférences; en général, ce genre de questions "impossibles" trouve en fait une réponse dans les conférences et est demandé juste pour voir qui fait vraiment attention en classe.

3
womble