Latar Belakang:
Aplet WeChat digunakan dalam pembangunan projek, tetapi URL konfigurasi pelayan mestilah https, jadi modul ssl nginx perlu dikonfigurasikan untuk menyokong akses https, itu adalah untuk mengatakan Untuk membuat tapak web dengan nama domain dmsdbj.com, ia diperlukan untuk mengaksesnya melalui https://dmsdbj.com.
SSL dipanggil lapisan soket selamat dalam bahasa Inggeris. SSL ialah sijil digital yang menggunakan protokol SSL untuk mewujudkan saluran selamat antara penyemak imbas dan pelayan web. Maklumat data dihantar dengan selamat antara klien dan pelayan. . Untuk mengkonfigurasi modul SSL, pertama anda memerlukan sijil CA Sijil CA boleh dikeluarkan secara manual atau dipohon pada Alibaba Cloud. (Untuk pengeluaran manual, sila rujuk pautan di bahagian bawah artikel)
2. Modul ssl tidak dipasang secara lalai. Jika anda ingin menggunakan modul ini, anda perlu menentukan –dengan-. Parameter http_ssl_module semasa menyusun nginx
1. Log masuk ke Alibaba Cloud, Pilih "Console" - "Produk dan Perkhidmatan", dan pilih "C Certificate Service (Data Security)" dalam lajur "Security (Cloud Shield)".
2 Klik "Muat turun" pada sijil yang dibeli, dan pilih "nginx/tengine" pada halaman yang baru dibuka. Muat turun sijil untuk nginx".
2. Pasang sijil dalam fail konfigurasi nginx
Perihalan fail: 1. . Fail sijil "nama sijil.pem" mengandungi dua bahagian kandungan Tolong jangan padamkan sebarang kandungan 2. Jika ia adalah csr yang dibuat oleh sistem sijil, ia juga mengandungi: fail kunci peribadi sijil "nama.kunci. ". (1) Dalam Cipta folder sijil dalam direktori di mana fail konfigurasi nginx terletak, dan salin semua fail yang dimuat turun ke direktori sijil. Jika anda mencipta sendiri fail csr semasa memohon sijil, sila letakkan fail peribadi yang sepadan fail kunci dalam direktori sijil dan namakannya ialah "nama.kunci sijil";
(2) Buka fail nginx.conf dalam direktori conf di bawah direktori pemasangan nginx, cari:
# https server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols sslv2 sslv3 tlsv1; # ssl_ciphers all:!adh:!export56:rc4+rsa:+high:+medium:+low:+sslv2:+exp; # ssl_prefer_server_ciphers on; # location / { # # #} #}
(3) Ubah suai kepada (atribut berikut Atribut yang bermula dengan ssl berkaitan secara langsung dengan konfigurasi sijil. Sila salin atau laraskan atribut lain mengikut situasi sebenar anda):
server { listen 443; server_name localhost; ssl on; root html; index index.html index.htm; ssl_certificate cert/证书名称.pem; ssl_certificate_key cert/证书名称.key; ssl_session_timeout 5m; ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4; ssl_protocols tlsv1 tlsv1.1 tlsv1.2; ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } }
nginx -s reload
(5) Akses tapak anda melalui https dan uji konfigurasi pemasangan sijil tapak Masukkan https://dmsdbj.com dalam penyemak imbas, seperti yang ditunjukkan dalam rajah di bawah, menunjukkan bahawa konfigurasi berjaya. >
Masalah yang dihadapi semasa pemasangan
Ralat 1: nginx: [ emerg ] arahan "ssl" tidak diketahui dalam /usr/local/nginx/conf/nginx.conf:151Penyelesaian:
Ralat ini mungkin disebabkan oleh dua situasi :
Kes satu: Format fail konfigurasi tidak betul
Pautan rujukan penyelesaian:Kes kedua: Modul ssl tidak dipasang
Situasi lalai tidak dipasang. Jika anda ingin menggunakan modul ini, anda perlu menentukan parameter --with-http_ssl_module semasa menyusun nginx nginx tidak mempunyai modul http_ssl_module Semasa menyusun dan memasang, hanya bawa konfigurasi --with-http_ssl_module Tetapi keadaan semasa ialah nginx saya sebenarnya sangat mudah : Direktori pemasangan nginx saya ialah direktori /usr/local/nginx, dan pakej kod sumber saya berada dalam direktori /usr/local/src/nginx-1.3.6(1) Tukar kepada kod sumber pakej:
cd /root/nginx-1.13.6
(4) Kemudian sandarkan nginx yang dipasang asal./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_moduleSalin selepas log masuk(3) Selepas konfigurasi selesai, jalankan make untuk menyusun Jangan lakukan pemasangan, jika tidak pemasangan akan ditimpa.
markSalin selepas log masuk
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
nginx -s stop
ps aux|grep nginx
Bunuh sahaja pid yang dikesan Perintah kill -9 pid digunakan untuk menamatkan proses. Anda mesti membunuh pid yang sepadan dengan root dahulu sebelum anda boleh meneruskan dengan tiga pid nobody berikut.
kill -9 10922 kill -9 28276 kill -9 28277 kill -9 28278
(6) Tulis ganti nginx asal dengan nginx yang baru disusun
cp ./objs/nginx /usr/local/nginx/sbin/
(7) Mulakan nginx
nginx
(8) Gunakan arahan berikut untuk menyemak sama ada Sudah menyertai dengan jayanya.
nginx -v
nginx: [emerg] parameter "ssl" memerlukan ngx_http_ssl_module dalam /usr/local/nginx/conf/nginx.conf:148
Penyelesaian:
Untuk penyelesaian kepada situasi ini, sila rujuk penyelesaian kepada situasi kedua ralat 1.
Ralat tiga:
menghentikan nginx... nginx: [emerg] bio_new_file("/usr/local/nginx/conf/cert/214291778530222. pem") gagal (ssl: ralat:02001002:pustaka sistem:fopen:tiada fail atau direktori sedemikian:fopen('/usr/local/nginx/conf/cert/214291778530222.pem','r') ralat:2006d080:bio routines:bio_new_file:no such file) failed use force-quit
Penyelesaian:
Ini mungkin kerana laluan sijil tidak disimpan. di lokasi yang betul Ia disebabkan dengan betul, dan selagi laluan mutlak ditulis, ralat akan dilaporkan, tanpa mengira Windows atau Linux.
Letakkan fail sijil dalam direktori tempat nginx.conf berada.
Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi nginx untuk menggunakan modul ssl untuk menyokong akses HTTPS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!