GNU/Linux >> Tutoriales Linux >  >> Linux

Haz una solicitud https usando sockets en Linux

HTTPS es como HTTP, pero está encapsulado en una capa SSL criptográfica. Deberá usar una biblioteca como OpenSSL para realizar esas conexiones HTTPS.

OpenSSL proporcionará funciones que reemplazan a las de socket.h, para conectarse, leer y escribir HTTP normal (o cualquier otro protocolo que desee usar) a través de un canal SSL, haciendo que el manejo de la parte SSL sea transparente para usted.


https las solicitudes se parecen a http solicitudes, pero con cifrado transparente de la comunicación real entre el cliente y el servidor, y en un puerto predeterminado diferente. La buena noticia es que el cifrado transparente le permite programar como si estuviera escribiendo un cliente HTTP normal. La mala noticia es que el cifrado es tan complejo que necesita una biblioteca especializada para implementarlo.

Una de esas bibliotecas es OpenSSL. Usando OpenSSL, el código mínimo para un cliente se vería así:

#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. Usando el comando ripgrep (rg) en Linux

  2. ¿Cómo redirigir http a https usando .htaccess?

  3. 50 tutoriales de administrador de sistemas UNIX/Linux

  4. Genere dos paquetes diferentes usando CPack en cmake:Linux

  5. Herramienta Linux simple para cronometrar una solicitud http en milisegundos

Cómo hacer un servidor CS:GO en Linux VPS

Uso de Curl para realizar solicitudes de API REST

Escritura sin distracciones en Linux usando FocusWriter

Cómo hacer un archivo ejecutable en Linux

Instale MongoDB usando Vagrant en Linux

Usando el comando Watch en Linux