Dalam era Internet semasa, keselamatan data telah menjadi isu yang tidak dapat dielakkan bagi setiap pembangun. Untuk memastikan keselamatan penghantaran data, protokol SSL digunakan secara meluas dalam pelbagai aplikasi Internet. Dalam pembangunan Workerman, melaksanakan komunikasi selamat berdasarkan protokol SSL juga menjadi masalah yang mesti dihadapi oleh ramai pembangun. Artikel ini akan memperkenalkan secara terperinci cara melaksanakan komunikasi selamat berdasarkan protokol SSL dalam Workerman dan memberikan contoh kod khusus.
1. Pengenalan kepada protokol SSL
SSL adalah singkatan kepada Secure Socket Layer Ia adalah protokol keselamatan rangkaian yang digunakan untuk mencapai penghantaran data yang selamat antara pelayar web dan pelayan web. Protokol SSL mewujudkan saluran selamat antara pelanggan dan pelayan, menyulitkan semua data yang dihantar dan menghalang pihak ketiga daripada mendapatkan maklumat privasi peribadi pengguna.
2. Melaksanakan protokol SSL dalam Workerman
Untuk melaksanakan protokol SSL dalam Workerman, anda perlu menggunakan sambungan openssl yang disediakan oleh PHP. Penyulitan dan penyahsulitan data yang dihantar boleh dicapai menggunakan sambungan openssl untuk memastikan keselamatan penghantaran data. Di bawah ini kami akan memperkenalkan secara terperinci cara menggunakan sambungan openssl untuk melaksanakan protokol SSL.
1. Jana fail sijil
Sebelum melaksanakan protokol SSL, anda perlu menjana fail sijil untuk penyulitan dan penyahsulitan. Fail sijil yang ditandatangani sendiri boleh dijana melalui arahan berikut:
openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt
Selepas melaksanakan arahan, anda perlu mengisi beberapa maklumat, termasuk nama negara/rantau, nama organisasi, nama biasa, dsb. Fail server.key yang dijana akhirnya ialah fail kunci peribadi, dan fail server.crt ialah fail sijil.
2. Dayakan protokol SSL
Untuk mendayakan protokol SSL dalam Workerman, anda hanya perlu menetapkan parameter berkaitan SSL melalui kaedah dengar objek Worker selepas mencipta objek Worker. Kaedah khusus adalah seperti berikut:
require_once __DIR__ . '/Workerman/Autoloader.php'; use WorkermanWorker; $context = array( 'ssl' => array( 'local_cert' => '/path/to/server.crt', 'local_pk' => '/path/to/server.key', 'verify_peer' => false ) ); $worker = new Worker('tcp://0.0.0.0:443', $context); $worker->onConnect = function($connection) { echo "Connected! "; }; $worker->onMessage = function($connection, $data) { $connection->send("Received: $data"); }; Worker::runAll();
Dalam kod di atas, pembolehubah $context digunakan untuk menetapkan parameter berkaitan SSL, di mana local_cert dan local_pk sepadan dengan laluan fail server.crt dan server.key yang dijana masing-masing. Menetapkan verify_peer kepada false bermakna tidak mengesahkan sijil pihak lain, yang biasa dalam pembangunan. Parameter kedua kaedah mendengar objek Pekerja ialah pembolehubah $context.
3. Laksanakan permintaan HTTPS
Apabila pelanggan melaksanakan permintaan HTTPS, adalah perlu untuk mewujudkan sambungan SSL dahulu dan kemudian menghantar data. Pelaksanaan khusus kaedah panggilan ditunjukkan dalam kod berikut:
$context = stream_context_create(array( 'ssl' => array( 'verify_peer' => false, 'local_cert' => '/path/to/client.crt', 'local_pk' => '/path/to/client.key' ) )); $stream = stream_socket_client('ssl://127.0.0.1:443', $errno, $errstr, 60, STREAM_CLIENT_CONNECT, $context); fwrite($stream, "Hello Workerman! "); $response = fread($stream, 8192); echo $response;
Dalam kod di atas, parameter pertama kaedah stream_socket_client menentukan alamat pelayan dan port, parameter kedua menentukan kod ralat, dan parameter ketiga menentukan mesej ralat Empat parameter menentukan tamat masa, parameter kelima menentukan mod sambungan, dan parameter keenam ialah $context variable.
4. Ringkasan
Artikel ini memperincikan cara melaksanakan komunikasi selamat berdasarkan protokol SSL dalam pembangunan Workerman, dan menyediakan pelaksanaan kod khusus. Pembangun boleh merujuk kepada kod di atas untuk menggunakan protokol SSL pada projek mereka sendiri untuk memastikan keselamatan penghantaran data. Pada masa yang sama, pembangun juga boleh mengoptimumkan dan menambah baik kod mengikut keperluan sebenar untuk mencapai kesan aplikasi yang lebih baik.
Atas ialah kandungan terperinci Pembangunan pekerja: Cara melaksanakan komunikasi selamat berdasarkan protokol SSL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!