GNU/Linux >> Znalost Linux >  >> Linux

Proveďte https požadavek pomocí socketů na linuxu

HTTPS je stejné jako HTTP, ale je zapouzdřeno v kryptografické vrstvě SSL. K vytvoření těchto připojení HTTPS budete muset použít knihovnu jako OpenSSL.

OpenSSL bude poskytovat funkce, které nahrazují ty socket.h, pro připojení, čtení a zápis běžného HTTP (nebo jakéhokoli jiného protokolu, který chcete použít) prostřednictvím kanálu SSL, takže pro vás bude manipulace s částí SSL transparentní.


https požadavky vypadají stejně jako http požadavky, ale s transparentním šifrováním skutečné komunikace mezi klientem a serverem a na jiném výchozím portu. Dobrou zprávou je, že transparentní šifrování vám umožňuje programovat stejně jako při psaní běžného HTTP klienta. Špatnou zprávou je, že šifrování je natolik složité, že k jeho implementaci potřebujete specializovanou knihovnu.

Jednou z takových knihoven je OpenSSL. Při použití OpenSSL by minimální kód pro klienta vypadal takto:

#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. Použití příkazu ripgrep (rg) v Linuxu

  2. Zvládneš to? Kompilace programů C v systému Linux pomocí příkazu Make

  3. Jednoduchý linuxový nástroj pro načasování http požadavku v milisekundách

  1. Ladění Linuxu pomocí ProcDump

  2. Použití mod_cluster v Apache

  3. Jak přesměrovat http na https pomocí .htaccess?

  1. Přesměrování HTTP na HTTPS v NginX

  2. 50 Výukové programy Sysadmin pro UNIX / Linux

  3. Vygenerujte dva různé balíčky pomocí CPack v cmake:Linux