Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk melaksanakan konfigurasi HTTPS Nginx

Bagaimana untuk melaksanakan konfigurasi HTTPS Nginx

WBOY
WBOYasal
2023-11-08 09:23:121389semak imbas

Bagaimana untuk melaksanakan konfigurasi HTTPS Nginx

Cara melaksanakan konfigurasi HTTPS Nginx memerlukan contoh kod khusus

Kata Pengantar

Dengan pembangunan Internet dan peningkatan kesedaran keselamatan, semakin banyak laman web mula membolehkan protokol HTTPS melindungi privasi dan keselamatan daripada pengguna. Sebagai pelayan web sumber terbuka berprestasi tinggi, Nginx bukan sahaja boleh mengkonfigurasi HTTP, tetapi juga HTTPS. Artikel ini akan memperkenalkan cara melaksanakan konfigurasi HTTPS Nginx, dan melampirkan contoh kod khusus untuk rujukan dan kegunaan anda.

1 Jana sijil dan kunci peribadi

Untuk mendayakan protokol HTTPS, anda perlu menjana sijil SSL dan kunci peribadi. Sijil SSL digunakan untuk mengesahkan identiti pelayan, dan kunci peribadi digunakan untuk menyulitkan dan menyahsulit data yang dihantar. Anda boleh menggunakan sijil yang ditandatangani oleh pelbagai pihak berkuasa sijil (CA), atau anda boleh menggunakan sijil yang ditandatangani sendiri.

Kaedah untuk menjana sijil yang ditandatangani sendiri adalah seperti berikut:

  1. Buka terminal dan masukkan arahan berikut dalam baris arahan:
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout private.key -out certificate.crt -subj "/CN=www.example.com"

Di mana, private.key ialah nama daripada fail kunci peribadi dan certificate .crt ialah nama fail sijil, www.example.com ialah nama domain pelayan, yang boleh diubah suai mengikut keadaan sebenar. private.key是私钥文件名,certificate.crt是证书文件名,www.example.com是服务器的域名,可以根据实际情况进行修改。

  1. 输入上述命令后,将被要求输入一些证书相关的信息,包括国家、州、城市、组织等。按照提示输入即可。
  2. 输入完毕后,会在当前目录下生成私钥文件private.key和证书文件certificate.crt

二、编辑Nginx配置文件

生成证书和私钥后,需要编辑Nginx的配置文件,启用HTTPS协议。以下是一个简单的Nginx配置示例:

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;  # 证书文件路径
    ssl_certificate_key /path/to/private.key;   # 私钥文件路径

    location / {
        # 其他配置...
    }
}

其中,listen 443 ssl;表示使用HTTPS协议,监听443端口;server_name www.example.com;指定服务器的域名;ssl_certificatessl_certificate_key分别指定证书和私钥的文件路径。

三、重启Nginx服务

配置文件编辑完成后,需要重启Nginx服务,使配置生效。在终端中输入以下命令:

sudo service nginx restart

输入密码后,Nginx服务将会重启。

四、配置HTTP跳转HTTPS

如果要将所有HTTP请求都跳转到HTTPS,可以在配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}

其中,listen 80;表示监听80端口(即HTTP协议);return 301 https://$server_name$request_uri;表示将所有请求跳转到对应的HTTPS地址。

五、配置强制HTTPS访问

如果要强制所有请求都通过HTTPS协议进行访问,可以在Nginx配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    # 其他配置...
}

配置中的第一个server块和第二个server块分别监听80端口和443端口,分别处理HTTP和HTTPS请求。配置中的return 301 https://$server_name$request_uri;

    Selepas memasukkan arahan di atas, anda akan diminta untuk memasukkan beberapa maklumat berkaitan sijil, termasuk negara, negeri, bandar, organisasi, dll. Hanya ikut arahan dan masukkan.

    Selepas input selesai, fail kunci peribadi private.key dan fail sijil certificate.crt akan dijana dalam direktori semasa.

    🎜2. Edit fail konfigurasi Nginx🎜🎜Selepas menjana sijil dan kunci peribadi, anda perlu mengedit fail konfigurasi Nginx dan mendayakan protokol HTTPS. Berikut ialah contoh konfigurasi Nginx yang mudah: 🎜rrreee🎜 Antaranya, listen 443 ssl; bermaksud menggunakan protokol HTTPS dan mendengar pada port 443 server_name www.example.com; menentukan nama Domain pelayan ssl_certificate dan ssl_certificate_key masing-masing menentukan laluan fail sijil dan kunci peribadi. 🎜🎜3. Mulakan semula perkhidmatan Nginx 🎜🎜Selepas mengedit fail konfigurasi, anda perlu memulakan semula perkhidmatan Nginx untuk membuat konfigurasi berkuat kuasa. Masukkan arahan berikut dalam terminal: 🎜rrreee🎜Selepas memasukkan kata laluan, perkhidmatan Nginx akan dimulakan semula. 🎜🎜4. Konfigurasikan HTTP untuk melompat ke HTTPS🎜🎜Jika anda ingin melompat semua permintaan HTTP ke HTTPS, anda boleh menambah kod berikut pada fail konfigurasi: 🎜rrreee🎜 Antaranya, dengar 80; bermaksud mendengar 80 Port (iaitu protokol HTTP); return 301 https://$server_name$request_uri; bermaksud untuk melompat semua permintaan ke alamat HTTPS yang sepadan. 🎜🎜5. Konfigurasikan akses HTTPS paksa🎜🎜Jika anda ingin memaksa semua permintaan untuk diakses melalui protokol HTTPS, anda boleh menambah kod berikut dalam fail konfigurasi Nginx: 🎜rrreee🎜Pertama pelayan blok dalam konfigurasi dan blok server kedua mendengar port 80 dan port 443 masing-masing untuk mengendalikan permintaan HTTP dan HTTPS. return 301 https://$server_name$request_uri; dalam konfigurasi memaksa permintaan HTTP untuk melompat ke alamat HTTPS yang sepadan. 🎜🎜Kesimpulan🎜🎜Melalui langkah di atas, kami boleh melaksanakan konfigurasi HTTPS Nginx, dan kami boleh memilih sama ada untuk melakukan lompatan HTTP ke HTTPS atau memaksa akses HTTPS mengikut keperluan. Sudah tentu, aplikasi sebenar juga melibatkan konfigurasi terperinci lain, seperti menetapkan versi protokol SSL, suite sifir, HSTS, dll. Saya harap artikel ini dapat memberi anda beberapa rujukan untuk menjadikan tapak web anda lebih selamat dan boleh dipercayai. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan konfigurasi HTTPS Nginx. 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