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:
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
是服务器的域名,可以根据实际情况进行修改。
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_certificate
和ssl_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;
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 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!