GNU/Linux >> Linux Esercitazione >  >> Linux

Effettua una richiesta https utilizzando i socket su Linux

HTTPS è proprio come HTTP, ma è incapsulato in un livello SSL crittografico. Dovrai usare una libreria come OpenSSL per effettuare quelle connessioni HTTPS.

OpenSSL fornirà funzioni che sostituiscono quelle socket.h, per connettere, leggere e scrivere HTTP regolare (o qualsiasi altro protocollo tu voglia utilizzare) attraverso un canale SSL, rendendo la gestione della parte SSL trasparente per te.


https le richieste sembrano proprio http richieste, ma con crittografia trasparente dell'effettiva comunicazione tra il client e il server, e su una diversa porta predefinita. La buona notizia è che la crittografia trasparente ti consente di programmare proprio come se stessi scrivendo un normale client HTTP. La cattiva notizia è che la crittografia è abbastanza complessa da richiedere una libreria specializzata per implementarla per te.

Una di queste librerie è OpenSSL. Usando OpenSSL, il codice minimo per un client sarebbe simile a questo:

#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. Esegui il debug di Linux usando ProcDump

  2. Utilizzo del comando ripgrep (rg) in Linux

  3. Come reindirizzare da http a https usando .htaccess?

  4. Puoi farlo? Compila i programmi C su Linux usando Make Command

  5. Genera due diversi pacchetti usando CPack in cmake:Linux

Come creare un server CS:GO su VPS Linux

Utilizzo di Curl per effettuare richieste API REST

Scrittura senza distrazioni su Linux utilizzando FocusWriter

Come rendere eseguibile un file in Linux

Installa MongoDB usando Vagrant in Linux

Utilizzo del comando Watch in Linux