Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Analisis konfigurasi HTTPS Nginx dan butiran pelaksanaan pengurusan sijil

Analisis konfigurasi HTTPS Nginx dan butiran pelaksanaan pengurusan sijil

王林
王林asal
2023-08-05 08:57:23993semak imbas

Konfigurasi HTTPS Nginx dan analisis butiran pelaksanaan pengurusan sijil

Dalam bidang keselamatan maklumat rangkaian, protokol HTTPS ialah teknologi komunikasi selamat yang sangat penting Ia menyediakan penyulitan, pengesahan identiti dan perlindungan integriti untuk penghantaran data di Internet. Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang menyokong bukan sahaja protokol HTTP, tetapi juga protokol HTTPS. Dalam artikel ini, kami akan menganalisis butiran pelaksanaan konfigurasi HTTPS dan pengurusan sijil Nginx, dan memberikan contoh kod yang sepadan.

  1. Jana sijil HTTPS
    Untuk menggunakan protokol HTTPS, anda perlu menjana sepasang kunci awam dan peribadi serta sijil SSL terlebih dahulu. Fail ini boleh dijana menggunakan alat openssl. Berikut ialah contoh:
$ openssl genrsa -out private.key 2048
$ openssl req -new -key private.key -out csr.csr
$ openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt

Dalam kod di atas, private.key ialah fail kunci peribadi yang dijana, csr.csr ialah fail permintaan sijil dan sijil .crt ialah sijil SSL yang dijana terakhir. private.key是生成的私钥文件,csr.csr是证书请求文件,certificate.crt是最终生成的SSL证书。

  1. Nginx配置HTTPS
    在Nginx的配置文件中,可以通过添加以下几行配置来启用HTTPS:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
}

上述代码中的listen指令定义了监听的端口和协议,ssl_certificate指令定义了SSL证书的路径,ssl_certificate_key指令定义了私钥文件的路径。

  1. 证书链和中间证书
    在一些情况下,SSL证书可能由多个证书组成,其中一个是SSL证书本身,其余的是中间证书。在Nginx的配置文件中,可以通过以下方式配置中间证书:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_trusted_certificate /path/to/intermediate.crt;
}

上述代码中的ssl_trusted_certificate指令定义了中间证书的路径。当浏览器与Nginx建立连接时,Nginx会将SSL证书链一同传输给浏览器,以供验证。

  1. 强制使用HTTPS
    在许多情况下,网站希望所有的HTTP请求都自动重定向到HTTPS。可以通过以下方式配置Nginx达到此目的:
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

上述代码中的return

    Konfigurasi Nginx HTTPS
      Dalam fail konfigurasi Nginx, anda boleh mendayakan HTTPS dengan menambahkan baris konfigurasi berikut:

    1. $ openssl x509 -in certificate.crt -text -noout
    2. definisi arahandengar dalam kod di atas Port pendengaran dan protokol ditentukan, arahan ssl_certificate mentakrifkan laluan ke sijil SSL dan arahan ssl_certificate_key mentakrifkan laluan ke fail kunci peribadi.
      Rantaian Sijil dan Sijil Perantaraan
    • Dalam sesetengah kes, sijil SSL mungkin terdiri daripada berbilang sijil, salah satunya ialah sijil SSL itu sendiri dan selebihnya adalah sijil perantaraan. Dalam fail konfigurasi Nginx, sijil perantaraan boleh dikonfigurasikan dengan cara berikut:
    $ openssl req -in csr.csr -text -noout
      Arahan ssl_trusted_certificate dalam kod di atas mentakrifkan laluan ke sijil perantaraan. Apabila penyemak imbas mewujudkan sambungan dengan Nginx, Nginx akan menghantar rantaian sijil SSL kepada penyemak imbas untuk pengesahan.
      1. Paksa HTTPS
      Dalam banyak kes, tapak web mahu semua permintaan HTTP diubah hala secara automatik ke HTTPS. Nginx boleh dikonfigurasikan untuk mencapai ini dengan:
      • $ openssl rsa -in private.key -check
        $ openssl x509 -noout -modulus -in certificate.crt | openssl md5
        $ openssl rsa -noout -modulus -in private.key | openssl md5
      • Arahan return dalam kod di atas mengubah hala semua permintaan HTTP ke HTTPS.
      • Pengurusan Sijil
      • Dalam aplikasi sebenar, sijil SSL mungkin tamat tempoh atau perlu dikemas kini, dan pengurusan sijil yang sepadan diperlukan. Berikut ialah beberapa operasi pengurusan sijil biasa dan kod sampel yang sepadan:

      Lihat maklumat sijil SSL:

      $ openssl verify -CAfile intermediate.crt certificate.crt
      🎜🎜Lihat maklumat permintaan sijil: 🎜🎜rrreee🎜🎜Sahkan bahawa sijil SSL dan kunci peribadi sepadan: 🜎rrreee 🎜🎜Sahkan kesahihan rantaian sijil: 🎜🎜rrreee🎜Melalui operasi pengurusan sijil di atas, anda boleh melihat, mengesahkan dan mengemas kini sijil SSL. 🎜🎜Ringkasan: 🎜Artikel ini menganalisis butiran pelaksanaan konfigurasi HTTPS dan pengurusan sijil Nginx, dan memberikan contoh kod yang sepadan. Melalui konfigurasi dan operasi pengurusan sijil di atas, kami boleh melaksanakan komunikasi HTTPS yang selamat pada Nginx dan mengurus sijil SSL dengan berkesan. 🎜

      Atas ialah kandungan terperinci Analisis konfigurasi HTTPS Nginx dan butiran pelaksanaan pengurusan sijil. 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