Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php melaksanakan penghantaran ssl

php melaksanakan penghantaran ssl

PHPz
PHPzasal
2023-05-28 20:22:06665semak imbas

Dengan penekanan yang semakin meningkat pada keselamatan rangkaian, kaedah penghantaran SSL (Secure Socket Layer) telah menjadi kaedah penghantaran selamat yang biasa digunakan dalam bidang pembangunan web. SSL memastikan keselamatan penghantaran data dengan menambahkan lapisan keselamatan antara lapisan aplikasi dan lapisan pengangkutan.

Dalam program PHP, agak mudah untuk melaksanakan penghantaran SSL. Artikel ini akan memperkenalkan cara melaksanakan fungsi penghantaran SSL melalui PHP.

1. Jana sijil keselamatan SSL

Untuk melaksanakan penghantaran SSL dalam PHP, kami perlu menjana sijil keselamatan SSL terlebih dahulu. Anda boleh menjana sijil melalui arahan openssl Langkah-langkah khusus adalah seperti berikut:

  1. Buka terminal atau tetingkap baris arahan dan masukkan arahan berikut untuk menjana fail kunci peribadi:

    openssl genrsa -out server.key 2048

    di mana server.key ialah nama fail kunci peribadi dan 2048 ialah panjang fail kunci peribadi yang dijana. Fail kunci peribadi yang dijana berada dalam direktori pelaksanaan arahan semasa secara lalai.

  2. Masukkan arahan berikut untuk menjana permintaan menandatangani sijil (CSR):

    openssl req -new -key server.key -out server.csr

    di mana server.csr ialah nama fail permintaan menandatangani sijil.

  3. Jana sijil. Anda boleh menjana sijil yang ditandatangani sendiri atau membeli sijil melalui pihak berkuasa. Di sini kami menjana sijil yang ditandatangani sendiri dan masukkan arahan berikut:

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    di mana parameter -days menentukan tempoh sah sijil dan 365 bermakna sijil itu sah selama satu tahun. Fail sijil yang dijana dinamakan server.crt.

Pada ketika ini, kami telah menghasilkan sijil keselamatan SSL, yang boleh digunakan dalam PHP.

2. Laksanakan penghantaran HTTPS

Seterusnya, kami boleh melaksanakan penghantaran HTTPS dalam halaman web PHP yang ringkas.

  1. Buka fail kod PHP dan tambah kod berikut:

    <?php
      $context = stream_context_create([
     'ssl' => [
       'local_cert' => '/path/to/server.crt', // SSL证书文件路径
       'verify_peer' => false, // 不验证证书来源
       'verify_peer_name' => false, // 不验证证书名称
     ]
      ]);
      $https_url = 'https://example.com/';
      $content = file_get_contents($https_url, false, $context);
      echo $content;
    ?>

    Gunakan fungsi stream_context_create untuk mencipta konteks dan mengkonfigurasi parameter berkaitan SSL: tetapkan laluan fail sijil SSL dan jangan sahkan sumber sijil dan nama sijil.

  2. Simpan fail kod dan letakkan fail sijil server.crt dan server.key dalam direktori yang sama.
  3. Mulakan pelayan PHP secara setempat:

    php -S localhost:80

    di mana 80 ialah port HTTP lalai.

  4. Masukkan alamat URL: https://localhost dalam penyemak imbas untuk mengakses halaman web HTTPS.

Pada ketika ini, kami telah melaksanakan fungsi penghantaran SSL melalui PHP.

3. Pertimbangan keselamatan SSL

Walaupun fungsi penghantaran SSL dilaksanakan melalui PHP, isu keselamatan berikut perlu dipertimbangkan dalam aplikasi sebenar.

  1. Keselamatan sijil: Kunci persendirian diperlukan semasa menjana sijil, jadi keselamatan kunci persendirian perlu diuruskan untuk mengelakkan kunci persendirian daripada bocor.
  2. Tempoh sah sijil: Selepas sijil tamat, tapak web tidak boleh diakses, jadi sijil perlu dikemas kini dalam masa.
  3. Sumber sijil: Untuk memastikan kesahihan sijil, anda perlu membeli sijil daripada pihak berkuasa atau mengeluarkan sijil itu sendiri dan memasang sijil akar dalam penyemak imbas untuk mengesahkan sumber sijil.

4. Ringkasan

Melalui pengenalan artikel ini, kami telah mempelajari cara melaksanakan fungsi penghantaran SSL melalui PHP, dan secara ringkas memperkenalkan isu berkaitan keselamatan SSL. Apabila kami melakukan pembangunan web, untuk memastikan keselamatan penghantaran data, kami boleh menggunakan penghantaran SSL untuk melindungi data daripada dicuri atau diusik oleh orang tengah.

Atas ialah kandungan terperinci php melaksanakan penghantaran ssl. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn