Cara Mengkonfigurasi Pengesahan HTTP Asas di Nginx

Cara Mengkonfigurasi Pengesahan HTTP Asas di Nginx

Pengesahan HTTP Asas adalah mekanisme keselamatan untuk menyekat akses ke laman web/aplikasi anda atau beberapa bahagiannya dengan menyediakan pengesahan nama pengguna/kata laluan yang mudah. Ia boleh digunakan pada dasarnya untuk melindungi keseluruhan pelayan HTTP, blok pelayan individu (tuan rumah maya di Apache) atau blok lokasi.

Baca juga: Cara Menyiapkan Hos Maya Berasaskan Nama dan IP (Blok Pelayan) dengan Nginx

Seperti namanya, ia bukan kaedah yang selamat untuk bergantung; Anda harus menggunakannya bersama dengan langkah -langkah keselamatan yang lebih dipercayai. Sebagai contoh, jika aplikasi web anda dijalankan di HTTP, maka kelayakan pengguna dihantar dalam teks biasa, jadi anda harus mempertimbangkan untuk membolehkan HTTPS.

Tujuan panduan ini adalah untuk membantu anda menambah lapisan keselamatan yang kecil tetapi berguna untuk melindungi kandungan peribadi/istimewa pada aplikasi web anda (seperti, tetapi tidak terhad kepada pihak pentadbir). Anda juga boleh menggunakannya untuk mengelakkan akses ke laman web atau aplikasi yang masih dalam fasa pembangunan.

Keperluan

  1. Pasang timbunan Lemp di CentOS/RHEL 7
  2. Pasang stack Lemp di Ubuntu/Debian

Buat fail Pengguna Pengesahan HTTP

Anda harus bermula dengan membuat fail yang akan disimpan kata laluan nama pengguna Pasangan. Kami akan menggunakan htpasswd utiliti dari pelayan http Apache, untuk membuat fail ini.

Periksa pertama itu apache2-utils atau HTTPD-TOOLS, pakej yang menyediakan htpasswd Utiliti dipasang pada sistem anda, jika tidak, jalankan arahan yang sesuai untuk pengedaran anda untuk memasangnya:

# yum Pasang httpd-tools [rhel/centos] $ sudo apt install apache2-utils [debian/ubuntu] 

Seterusnya, lari htpasswd Perintah di bawah untuk membuat fail kata laluan dengan pengguna pertama. The -c Pilihan digunakan untuk menentukan fail passwd, setelah anda memukul [Masukkan], Anda akan diminta memasukkan kata laluan pengguna.

# htpasswd -c/etc/nginx/conf.d/.Pemaju HtPasswd 

Tambahkan pengguna kedua, dan jangan gunakan -c pilihan di sini.

# htpasswd/etc/nginx/conf.d/.HtPasswd Admin 

Sekarang anda mempunyai fail kata laluan siap, teruskan untuk mengkonfigurasi bahagian pelayan web anda yang anda ingin menyekat akses ke. Untuk melihat kandungan fail kata laluan (yang termasuk nama pengguna dan kata laluan yang disulitkan), gunakan arahan kucing di bawah.

# kucing/etc/nginx/conf.d/.htpasswd 
Lihat fail kata laluan http

Konfigurasikan Pengesahan HTTP untuk Nginx

Seperti yang telah disebutkan sebelumnya, anda boleh menyekat akses ke webserver anda, satu laman web (menggunakan blok pelayannya) atau arahan lokasi. Dua arahan berguna boleh digunakan untuk mencapai ini.

  • auth_basic - menghidupkan pengesahan nama pengguna dan kata laluan menggunakan "Pengesahan asas HTTP"Protokol.
  • AUTH_BASIC_USER_FILE - Menentukan fail kata laluan.

Kata laluan melindungi tuan rumah maya nginx

Untuk melaksanakan pengesahan asas untuk seluruh pelayan web, yang terpakai untuk semua blok pelayan, buka /etc/nginx/nginx.Conf Fail dan tambahkan garisan di bawah dalam konteks HTTP:

http auth_basic "akses terhad!"; auth_basic_user_file/etc/nginx/conf.d/.htpasswd; ... 

Kata Laluan Lindungi Laman Web atau Domain Nginx

Untuk membolehkan pengesahan asas untuk domain atau sub-domain tertentu, buka fail konfigurasinya di bawah /etc/nginx/conf.d/ atau /etc/nginx/conf/tapak yang tersedia (bergantung pada cara anda memasang nginx), kemudian tambahkan konfigurasi di bawah dalam blok pelayan atau konteks:

pelayan mendengar 80; Contoh Server_name.com; auth_basic "akses terhad!"; auth_basic_user_file/etc/nginx/conf.d/.htpasswd; Lokasi / ... ... 

Kata laluan melindungi direktori web di nginx

Anda juga boleh mengaktifkan pengesahan asas dalam arahan lokasi. Dalam contoh di bawah, semua pengguna yang cuba mengakses /admin Blok lokasi akan diminta untuk mengesahkan.

pelayan mendengar 80; Contoh Server_name.com www.Contoh.com; lokasi / ... lokasi /admin/ auth_basic "akses terhad!"; auth_basic_user_file/etc/nginx/conf.d/.htpasswd;  lokasi /awam /auth_basic off; #turns Off Asas HTTP Authentication Off untuk blok ini ... 

Sekiranya anda telah mengkonfigurasi pengesahan HTTP asas, semua pengguna yang cuba mengakses webserver anda atau sub-domain atau bahagian tertentu tapak (bergantung pada tempat anda melaksanakannya), akan diminta untuk nama pengguna dan kata laluan seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Pengesahan Asas Nginx

Sekiranya pengesahan pengguna yang gagal, "401 kebenaran diperlukan"Ralat akan dipaparkan seperti yang ditunjukkan di bawah.

401 Ralat yang Diperlukan Kebenaran

Anda boleh mendapatkan lebih banyak maklumat di menyekat akses dengan pengesahan HTTP asas.

Anda mungkin juga ingin membaca panduan berkaitan pelayan http nginx berikut yang berguna.

  1. Cara kata laluan melindungi direktori web di nginx
  2. Panduan Terbaik untuk Mengamankan, Mengasaskan dan Meningkatkan Prestasi Nginx
  3. Menyediakan HTTPS dengan Let's Encrypt Sertifikat SSL untuk Nginx

Dalam panduan ini, kami menunjukkan cara melaksanakan pengesahan HTTP asas di Nginx HTTP Web Server. Untuk mengemukakan sebarang pertanyaan, gunakan borang maklum balas di bawah.