GNU/Linux >> Belajar Linux >  >> Linux

Buat permintaan https menggunakan soket di linux

HTTPS sama seperti HTTP, tetapi dienkapsulasi dalam lapisan SSL kriptografi. Anda harus menggunakan lib seperti OpenSSL untuk membuat koneksi HTTPS tersebut.

OpenSSL akan menyediakan fungsi yang menggantikan fungsi socket.h, untuk menyambungkan, membaca, dan menulis HTTP biasa (atau protokol lain apa pun yang ingin Anda gunakan) melalui saluran SSL, menjadikan penanganan bagian SSL transparan bagi Anda.


https permintaan terlihat seperti http permintaan, tetapi dengan enkripsi transparan dari komunikasi aktual antara klien dan server, dan pada port default yang berbeda. Kabar baiknya adalah enkripsi transparan memungkinkan Anda untuk memprogram seperti Anda sedang menulis klien HTTP biasa. Kabar buruknya adalah enkripsinya cukup rumit sehingga Anda memerlukan pustaka khusus untuk mengimplementasikannya.

Salah satu perpustakaan tersebut adalah OpenSSL. Menggunakan OpenSSL, kode minimal untuk klien akan terlihat seperti ini:

#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. Menggunakan mod_cluster di Apache

  2. Menggunakan Perintah ripgrep (rg) di Linux

  3. Bagaimana cara mengarahkan ulang http ke https menggunakan .htaccess?

  1. Debug Linux menggunakan ProcDump

  2. Dapatkah Anda membuatnya? Kompilasi Program C di Linux Menggunakan Make Command

  3. Hasilkan dua paket berbeda menggunakan CPack di cmake :Linux

  1. Mengarahkan HTTP ke HTTPS di NginX

  2. 50 Tutorial Sysadmin UNIX / Linux

  3. Alat Linux sederhana untuk mengatur waktu permintaan http dalam milidetik