Nginx

Pengaturan SSL Nginx di Linux

Pengaturan SSL Nginx di Linux

SSL (singkatan dari secure socket layer) adalah protokol web yang membuat lalu lintas antara server dan klien aman dengan mengenkripsinya. Server dan klien mengirimkan lalu lintas dengan aman tanpa risiko komunikasi ditafsirkan oleh pihak ketiga. Ini juga membantu klien untuk memverifikasi identitas situs web yang mereka komunikasikan.

Dalam posting ini, kami akan menjelaskan cara mengatur SSL untuk Nginx. Kami akan mendemonstrasikan prosedur menggunakan sertifikat yang ditandatangani sendiri. Sertifikat yang ditandatangani sendiri hanya mengenkripsi koneksi tetapi tidak memvalidasi identitas server Anda. Oleh karena itu, ini harus digunakan hanya untuk lingkungan pengujian atau untuk layanan LAN internal. Untuk lingkungan produksi, lebih baik menggunakan sertifikat yang ditandatangani oleh CA (otoritas sertifikat).

Prasyarat

Untuk posting ini, Anda harus memiliki prasyarat berikut:

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

Langkah 1: Membuat Sertifikat yang Ditandatangani Sendiri

Langkah pertama kami adalah membuat sertifikat yang ditandatangani sendiri. Keluarkan perintah di bawah ini di Terminal untuk menghasilkan CSR (Permintaan Penandatanganan Sertifikat) 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 untuk memberikan beberapa informasi seperti nama negara, negara bagian, lokalitas, nama umum (nama domain atau alamat IP Anda), dan alamat email.

Pada perintah di atas, OpenSSL akan membuat dua file berikut:

Sekarang buat dhparam.file pem menggunakan perintah di bawah ini:

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

Langkah 2: Mengonfigurasi Nginx untuk Menggunakan SSL

Pada langkah sebelumnya, kami telah membuat CSR dan kuncinya. Sekarang di langkah ini, kita akan mengkonfigurasi Nginx untuk menggunakan SSL. Untuk ini, kami akan membuat cuplikan konfigurasi dan menambahkan informasi tentang file sertifikat SSL dan lokasi utama kami.

Keluarkan perintah di bawah ini di Terminal untuk membuat cuplikan konfigurasi baru ditandatangani sendiri.file conf dalam /etc/nginx/snippet.

$ sudo nano /etc/nginx/snippets/self-signed.konf

Dalam file tersebut, tambahkan baris berikut:

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

Itu ssl_sertifikat diatur ke selfsigned-nginx.crt (berkas sertifikat) sedangkan ssl_certificate_key diatur ke selfsigned-nginx.kunci (berkas kunci).

Simpan dan tutup ditandatangani sendiri.konf mengajukan.

Sekarang kita akan membuat file snippet lain ssl-params.konf dan konfigurasikan beberapa pengaturan SSL dasar. Keluarkan perintah di bawah ini di Terminal untuk mengedit ssl-params.konf mengajukan:

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

Tambahkan konten berikut ke file:

ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers aktif;
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-AES256;
ssl_ecdh_curve secp384r1;
ssl_session_timeout  10m;
ssl_session_cache dibagikan:SSL:10m;
ssl_session_tickets mati;
# ssl_stapel aktif;
# ssl_stapling_verifikasi aktif;
penyelesai 8.8.8.8 8.8.4.4 valid=300 detik;
resolver_timeout 5 detik;
add_header X-Frame-Options DITOLAK;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Karena kami tidak menggunakan sertifikat yang ditandatangani CA, oleh karena itu kami telah menonaktifkan stapel SSL. Jika Anda menggunakan sertifikat yang ditandatangani CA, batalkan komentar pada ssl_stapel masuk.

Langkah 3: Mengonfigurasi Nginx untuk Menggunakan SSL

Sekarang kita akan membuka file konfigurasi blok server Nginx untuk membuat beberapa konfigurasi.  Pada langkah ini, kami akan menganggap Anda telah menyiapkan blok server, yang akan mirip dengan ini:

server
mendengarkan 80;
dengarkan [::]:80;
root /var/www/test.org/html;
indeks indeks.indeks html.indeks htm.nginx-debian.html;
tes nama_server.org www.uji.organisasi;
lokasi /
try_files $uri $uri/ =404;

Untuk membuka file konfigurasi blok server Nginx, gunakan perintah di bawah ini:

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

Sekarang ubah yang sudah ada server blok agar terlihat seperti ini:

server
dengarkan 443 ssl;
dengarkan [::]:443 ssl;
sertakan cuplikan/tanda tangan sendiri.konf;
sertakan cuplikan/ssl-params.konf;
root /var/www/test.org/html;
indeks indeks.indeks html.indeks htm.nginx-debian.html;
tes nama_server.org www.uji.organisasi;

Dalam konfigurasi di atas, kami juga telah menambahkan cuplikan SSL ditandatangani sendiri.konf dan ssl-params.konf yang telah kami konfigurasikan sebelumnya.

Selanjutnya, tambahkan server kedua blok.

server
mendengarkan 80;
dengarkan [::]:80;
tes nama_server.org www.uji.organisasi;
kembali 302 https://$server_name$request_uri;

Dalam konfigurasi di atas, kembali 302 mengalihkan HTTP ke HTTPS.

Catatan: Pastikan untuk mengganti tes.org dengan nama domain Anda sendiri. Sekarang simpan dan tutup file.

Langkah 4: Izinkan Lalu Lintas SSL melalui Firewall

Jika firewall diaktifkan di sistem Anda, Anda harus mengizinkan lalu lintas SSL melaluinya.  Nginx memberi Anda tiga profil berbeda dengan ufw. Anda dapat melihatnya menggunakan perintah di bawah ini di Terminal:

$ sudo ufw daftar aplikasi

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

Anda harus mengizinkan profil "Nginx Full" di firewall. Untuk melakukannya, gunakan perintah di bawah ini:

$ sudo ufw izinkan 'Nginx Penuh'

Untuk memverifikasi apakah profil telah diizinkan di firewall, gunakan perintah di bawah ini:

$ sudo ufw status

Langkah 5: Uji file konfigurasi NGINX

Sekarang uji file konfigurasi Nginx menggunakan perintah di bawah ini di Terminal:

$ sudo nginx -t

Anda akan melihat output di bawah ini.


Sekarang buat tautan simbolis antara situs yang tersedia dan yang diaktifkan situs:

$ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Kemudian restart layanan Nginx untuk menerapkan perubahan konfigurasi. Gunakan perintah di bawah ini untuk melakukannya:

$ sudo systemctl restart nginx

Langkah 6: Uji SSL

Sekarang untuk menguji SSL, navigasikan ke alamat berikut:

https://domain-atau-alamat IP

Karena kami telah menyiapkan sertifikat yang ditandatangani sendiri, oleh karena itu kami akan melihat peringatan bahwa koneksi tidak aman. Halaman berikut muncul saat menggunakan browser Mozilla Firefox.

Klik Maju tombol.

Klik Tambahkan Pengecualian.

Lalu klik Konfirmasi Pengecualian Keamanan.

Sekarang Anda akan melihat situs HTTPS Anda tetapi dengan tanda peringatan (kunci dengan tanda peringatan kuning) tentang keamanan situs web Anda.

Juga, periksa apakah pengalihan berfungsi dengan benar dengan mengakses domain atau alamat IP Anda menggunakan http.

http://domain-atau-alamat IP

Sekarang, jika situs Anda secara otomatis dialihkan ke HTTPS, ini berarti pengalihan berfungsi dengan benar. Untuk mengonfigurasi pengalihan secara permanen, edit file konfigurasi blok server menggunakan perintah di bawah ini di Terminal:

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

Sekarang ubah pengembaliannya 302 mengembalikan 301 dalam file lalu simpan dan tutup close.

Begitulah cara Anda dapat mengatur SSL untuk Nginx di sistem Debian 10. Kami telah menyiapkan sertifikat yang ditandatangani sendiri untuk demonstrasi. Jika Anda berada di lingkungan produksi, selalu gunakan sertifikat CA.

Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...