Nginx

Persediaan SSL Nginx di Linux

Persediaan SSL Nginx di Linux

SSL (singkatan dari lapisan soket selamat) adalah protokol web yang menjadikan lalu lintas antara pelayan dan pelanggan selamat dengan mengenkripsi. Pelayan dan pelanggan menghantar trafik dengan selamat tanpa risiko komunikasi ditafsirkan oleh pihak ketiga. Ia juga membantu pelanggan untuk mengesahkan identiti laman web yang mereka berkomunikasi.

Dalam catatan ini, kami akan menerangkan cara menyediakan SSL untuk Nginx. Kami akan menunjukkan prosedur menggunakan sijil yang ditandatangani sendiri. Sijil yang ditandatangani sendiri hanya menyulitkan sambungan tetapi tidak mengesahkan identiti pelayan anda. Oleh itu, ia hanya boleh digunakan untuk persekitaran pengujian atau untuk perkhidmatan LAN dalaman. Untuk persekitaran pengeluaran, lebih baik menggunakan sijil yang ditandatangani oleh CA (pihak berkuasa sijil).

Pra-syarat

Untuk siaran ini, anda mesti mempunyai prasyarat berikut:

Prosedur yang dijelaskan di sini telah dilaksanakan pada Debian 10 (Buster) mesin.

Langkah 1: Menghasilkan Sijil Tandatangan Sendiri

Langkah pertama kami adalah menghasilkan sijil yang ditandatangani sendiri. Keluarkan arahan di bawah di Terminal untuk menghasilkan CSR (Permintaan Penandatanganan Sijil) dan kunci:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout / etc / ssl / private / selfsigned-nginx.key -out / etc / ssl / certs / selfsigned-nginx.crt

Anda akan diminta memberikan beberapa maklumat seperti nama negara, negara, lokasi, nama umum (nama domain atau alamat IP anda), dan alamat e-mel.

Dalam arahan di atas, OpenSSL akan membuat dua fail berikut:

Sekarang buat dhparam.fail pem menggunakan arahan di bawah:

$ sudo openssl dhparam -out / etc / ssl / certs / dhparam.pem 2048

Langkah 2: Mengkonfigurasi Nginx untuk Menggunakan SSL

Pada langkah sebelumnya, kami telah membuat CSR dan kunci. Sekarang dalam langkah ini, kita akan mengkonfigurasi Nginx untuk menggunakan SSL. Untuk ini, kami akan membuat coretan konfigurasi dan menambahkan maklumat mengenai fail sijil SSL dan lokasi utama kami.

Keluarkan arahan di bawah di Terminal untuk membuat coretan konfigurasi baru ditandatangani sendiri.fail conf di dalam / etc / nginx / coretan.

$ sudo nano / etc / nginx / snippets / ditandatangani sendiri.pengesahan

Dalam fail, tambahkan baris berikut:

ssl_certificate / etc / ssl / certs / selfsigned-nginx.crt;
ssl_certificate_key / etc / ssl / private / selfsigned-nginx.kunci;

The ssl_certificate ditetapkan ke self-signed-nginx.crt (fail sijil) semasa ssl_certificate_key ditetapkan ke self-signed-nginx.kunci (fail utama).

Simpan dan tutup ditandatangani sendiri.pengesahan fail.

Sekarang kita akan membuat fail coretan yang lain ssl-params.pengesahan dan konfigurasikan beberapa tetapan SSL asas. Keluarkan arahan di bawah di Terminal untuk mengedit ssl-params.pengesahan fail:

$ sudo nano / etc / nginx / snippets / ssl-params.pengesahan

Tambahkan kandungan berikut ke fail:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers dihidupkan;
ssl_dhparam / etc / ssl / certs / dhparam.pem;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-AAAAA-28A-ECA
ssl_ecdh_curve secp384r1;
ssl_session_timeout 10m;
ssl_session_cache dikongsi: SSL: 10m;
ssl_session_tickets dimatikan;
# ssl_stapling pada;
# ssl_stapling_verify on;
penyelesai 8.8.8.8 8.8.4.4 sah = 300-an;
resolver_timeout 5s;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode = blok";

Oleh kerana kami tidak menggunakan sijil bertanda CA, oleh itu kami telah mematikan stapel SSL. Sekiranya anda menggunakan sijil bertanda CA, lepaskan ssl_stapling kemasukan.

Langkah 3: Mengkonfigurasi Nginx untuk Menggunakan SSL

Sekarang kita akan membuka fail konfigurasi blok pelayan Nginx untuk membuat beberapa konfigurasi.  Dalam langkah ini, kami akan menganggap anda telah menyiapkan blok pelayan, yang akan serupa dengan ini:

pelayan
dengar 80;
dengar [::]: 80;
root / var / www / ujian.org / html;
indeks indeks.indeks html.indeks htm.nginx-debian.html;
ujian nama pelayan.org www.ujian.org;
lokasi /
cuba_files $ uri $ uri / = 404;

Untuk membuka fail konfigurasi blok pelayan Nginx, gunakan arahan di bawah:

$ sudo nano / etc / nginx / sites-available / test.org

Sekarang ubah suai yang ada pelayan blok untuk menjadikannya seperti ini:

pelayan
dengar 443 ssl;
dengar [::]: 443 ssl;
sertakan coretan / ditandatangani sendiri.conf;
sertakan coretan / ssl-param.conf;
root / var / www / ujian.org / html;
indeks indeks.indeks html.indeks htm.nginx-debian.html;
ujian nama pelayan.org www.ujian.org;

Dalam konfigurasi di atas, kami juga telah menambahkan coretan SSL ditandatangani sendiri.pengesahan dan ssl-params.pengesahan yang telah kita konfigurasikan lebih awal.

Seterusnya, tambah a pelayan kedua sekatan.

pelayan
dengar 80;
dengar [::]: 80;
ujian nama pelayan.org www.ujian.org;
pulangkan 302 https: // $ pelayan_nama $ request_uri;

Dalam konfigurasi di atas, pulangan 302 mengarahkan HTTP ke HTTPS.

Nota: Pastikan untuk menggantikan ujian.org dengan nama domain anda sendiri. Sekarang simpan dan tutup fail.

Langkah 4: Benarkan Trafik SSL melalui Firewall

Sekiranya firewall diaktifkan pada sistem anda, anda harus membenarkan trafik SSL melaluinya.  Nginx memberi anda tiga profil berbeza dengan ufw. Anda boleh melihatnya menggunakan arahan di bawah di Terminal:

senarai aplikasi $ sudo ufw

Anda akan melihat output berikut dengan tiga profil untuk lalu lintas Nginx.

Anda perlu membenarkan profil "Nginx Full" di firewall. Untuk melakukannya, gunakan arahan di bawah:

$ sudo ufw membenarkan 'Nginx Full'

Untuk mengesahkan sama ada profil telah dibenarkan di firewall, gunakan arahan di bawah:

status $ sudo ufw

Langkah 5: Uji fail konfigurasi NGINX

Sekarang uji fail konfigurasi Nginx menggunakan arahan di bawah di Terminal:

$ sudo nginx -t

Anda harus melihat output di bawah.


Sekarang buat pautan simbolik antara laman web yang tersedia dan didayakan oleh laman web:

$ ln -s / etc / nginx / sites-available / test.com / etc / nginx / laman web didayakan /

Kemudian mulakan semula perkhidmatan Nginx untuk menerapkan perubahan konfigurasi. Gunakan arahan di bawah untuk melakukannya:

$ sudo systemctl mulakan semula nginx

Langkah 6: Uji SSL

Sekarang untuk menguji SSL, arahkan ke alamat berikut:

https: // domain-atau-alamat IP

Oleh kerana kami telah menyediakan sijil yang ditandatangani sendiri, oleh itu kami akan melihat amaran bahawa sambungannya tidak selamat. Halaman berikut muncul semasa menggunakan penyemak imbas Mozilla Firefox.

Klik Mahir butang.

Klik Tambah Pengecualian.

Kemudian klik Sahkan Pengecualian Keselamatan.

Sekarang anda akan melihat laman HTTPS anda tetapi dengan tanda amaran (kunci dengan tanda amaran kuning) mengenai keselamatan laman web anda.

Juga, periksa apakah pengalihan berfungsi dengan betul dengan mengakses domain atau alamat IP anda menggunakan http.

http: // alamat-domain-atau-IP

Sekarang, jika laman web anda mengalihkan ke HTTPS secara automatik, ini bermaksud pengalihan berfungsi dengan betul. Untuk mengkonfigurasi pengalihan secara kekal, edit fail konfigurasi blok pelayan menggunakan perintah di bawah di Terminal:

$ sudo nano / etc / nginx / sites-available / test.org

Sekarang ubah pulangan 302 untuk memulangkan 301 dalam fail dan kemudian simpan dan tutup.

Itulah cara anda boleh menyediakan SSL untuk Nginx dalam sistem Debian 10. Kami telah menyediakan sijil yang ditandatangani sendiri untuk demonstrasi. Sekiranya anda berada dalam persekitaran pengeluaran, selalu dapatkan sijil CA.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...