Cara Mengkonfigurasi Pengesahan HTTP Asas di Nginx
- 4393
- 941
- Mr. Ramon Runolfsson
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
- Pasang timbunan Lemp di CentOS/RHEL 7
- 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/.htpasswdLihat 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 NginxSekiranya pengesahan pengguna yang gagal, "401 kebenaran diperlukan"Ralat akan dipaparkan seperti yang ditunjukkan di bawah.
401 Ralat yang Diperlukan KebenaranAnda 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.
- Cara kata laluan melindungi direktori web di nginx
- Panduan Terbaik untuk Mengamankan, Mengasaskan dan Meningkatkan Prestasi Nginx
- 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.