GNU/Linux >> Tutoriels Linux >  >> Linux

Faire une requête https en utilisant des sockets sous Linux

HTTPS est comme HTTP, mais il est encapsulé dans une couche SSL cryptographique. Vous devrez utiliser une bibliothèque comme OpenSSL pour établir ces connexions HTTPS.

OpenSSL fournira des fonctions qui remplacent celles de socket.h, pour se connecter, lire et écrire du HTTP normal (ou tout autre protocole que vous souhaitez utiliser) via un canal SSL, rendant la gestion de la partie SSL transparente pour vous.


https les requêtes ressemblent à http requêtes, mais avec un cryptage transparent de la communication réelle entre le client et le serveur, et sur un port par défaut différent. La bonne nouvelle est que le cryptage transparent vous permet de programmer comme si vous écriviez un client HTTP normal. La mauvaise nouvelle est que le chiffrement est suffisamment complexe pour que vous ayez besoin d'une bibliothèque spécialisée pour l'implémenter pour vous.

Une de ces bibliothèques est OpenSSL. Avec OpenSSL, le code minimal pour un client ressemblerait à ceci :

#include <openssl/ssl.h>

// first connect to the remote as usual, but use the port 443 instead of 80

// initialize OpenSSL - do this once and stash ssl_ctx in a global var
SSL_load_error_strings ();
SSL_library_init ();
SSL_CTX *ssl_ctx = SSL_CTX_new (SSLv23_client_method ());

// create an SSL connection and attach it to the socket
SSL *conn = SSL_new(ssl_ctx);
SSL_set_fd(conn, sock);

// perform the SSL/TLS handshake with the server - when on the
// server side, this would use SSL_accept()
int err = SSL_connect(conn);
if (err != 1)
   abort(); // handle error

// now proceed with HTTP traffic, using SSL_read instead of recv() and
// SSL_write instead of send(), and SSL_shutdown/SSL_free before close()

Linux
  1. Déboguer Linux avec ProcDump

  2. Utilisation de mod_cluster dans Apache

  3. Utilisation de la commande ripgrep (rg) sous Linux

  4. Peux-tu le faire? Compiler des programmes C sous Linux à l'aide de la commande Make

  5. Outil Linux simple pour chronométrer une requête http en millisecondes

Comment créer un serveur CS:GO sur un VPS Linux

Utilisation de Curl pour effectuer des requêtes API REST

Écriture sans distraction sur Linux à l'aide de FocusWriter

Comment rendre un fichier exécutable sous Linux

Installer MongoDB à l'aide de Vagrant sous Linux

Utilisation de la commande Watch sous Linux