Cara Mengamankan Nginx Dengan Let's Encrypt pada Ubuntu dan Debian

Cara Mengamankan Nginx Dengan Let's Encrypt pada Ubuntu dan Debian

Berikutan sebelumnya Mari enkripsi tutorial mengenai Apache SSL, Dalam artikel ini kita akan membincangkan cara menjana dan memasang sijil SSL/TLS percuma yang dikeluarkan oleh Mari enkripsi ca untuk Nginx webserver pada Ubuntu atau Debian.

Juga baca
  1. Selamat Apache dengan percuma mari enkripsi di Ubuntu dan Debian
  2. Pasang mari enkripsi SSL untuk mengamankan Apache pada RHEL dan CentOS
Persekitaran Sampel Menguji
Pasang Lets Encrypt untuk menjamin nginx di Ubuntu dan Debian

Keperluan

  1. Domain berdaftar dengan DNS yang sah A Rekod untuk menunjuk kembali ke alamat IP pelayan anda.
  2. Pelayan web nginx yang dipasang dengan SSL dan VHOST yang diaktifkan, sekiranya anda merancang untuk menjadi tuan rumah pelbagai domain atau subdomain.

Langkah 1: Memasang pelayan web nginx

1. Pada langkah pertama pasang pelayan web nginx, jika tidak dipasang, dengan mengeluarkan arahan di bawah:

$ sudo apt-get pemasangan nginx 
Pasang pelayan web nginx di Ubuntu 14.04 dan Debian 8

Langkah 2: Menjana sijil SSL Let's Encrypt untuk Nginx

2. Sebelum menjana sijil SSL/TLS percuma, pasang Mari enkripsi perisian dalam /usr/tempatan/ hierarki sistem fail dengan bantuan git pelanggan dengan mengeluarkan arahan di bawah:

$ sudo apt -get -y install git $ cd/usr/local/$ sudo git clone https: // github.com/letsencrypt/letsencrypt 

3. Walaupun prosedur mendapatkan sijil untuk Nginx adalah automatik, anda masih boleh membuat dan memasang sijil SSL percuma secara manual untuk Nginx menggunakan plugin Let's Encrypt Standalone.

Kaedah ini memerlukan pelabuhan itu 80 tidak boleh digunakan pada sistem anda untuk jangka masa yang singkat sementara mari enkripsi klien mengesahkan identiti pelayan sebelum menjana sijil.

Sekiranya anda menjalankan nginx, hentikan perkhidmatan dengan mengeluarkan arahan berikut.

$ sudo perkhidmatan nginx berhenti atau $ sudo systemctl stop nginx 

Sekiranya anda menjalankan perkhidmatan lain yang mengikat pelabuhan 80 Hentikan perkhidmatan itu juga.

4. Sahkan pelabuhan itu 80 bebas dengan menjalankan perintah Netstat:

$ sudo netstat -tlpn | grep 80 
Periksa port mendengar semasa di Linux

5. Sekarang sudah tiba masanya untuk dijalankan Letsencrypt Untuk mendapatkan sijil SSL. Pergi ke Mari enkripsi Direktori pemasangan yang terdapat di /usr/local/letsencrypt laluan sistem dan jalankan Letsencrypt-auto perintah dengan menyediakan certianya --mandiri pilihan dan -d bendera untuk setiap domain atau subdomain anda ingin menjana sijil.

$ cd/usr/local/letsencrypt $ sudo ./letsencrypt -auto certionly -standalone -d your_domain.tld 
Dapatkan mari enkripsi sijil SSL

6. Masukkan alamat e -mel yang akan digunakan oleh Let's Encrypt untuk kehilangan pemulihan utama atau notis segera.

Masukkan alamat email

7. Setuju dengan terma lesen dengan menekan kekunci Enter.

Terima perjanjian letsencrypt

8. Akhirnya, jika semuanya berjaya, mesej yang serupa dengan tangkapan skrin di bawah harus muncul di konsol terminal anda.

LetsEncrypt selesai selesai

Langkah 3: Pasang mari enkripsi sijil SSL di nginx

9. Sekarang bahawa sijil SSL anda telah dijana adalah masa untuk mengkonfigurasi Nginx Webserver untuk menggunakannya. Sijil SSL yang baru diletakkan di /etc/letsencrypt/live/ di bawah direktori yang dinamakan sempena nama domain anda. Jalankan arahan LS untuk menyenaraikan fail sijil yang dikeluarkan untuk domain anda.

$ sudo ls/etc/letsencrypt/live/$ sudo ls -al/etc/letsencrypt/live/caeszar.Tk 
Sijil SSL LetsEncrypt

10. Seterusnya, buka /etc/nginx/laman web yang tersedia/lalai Fail dengan editor teks dan tambahkan blok berikut selepas baris yang dikomentari pertama yang menentukan permulaan blok SSL. Gunakan tangkapan skrin di bawah sebagai panduan.

$ sudo nano/etc/nginx/sites-enabled/lalai 

Petikan Blok Nginx:

# Konfigurasi SSL # Dengar 443 SSL default_server; ssl_certificate/etc/letsencrypt/live/caeszar.TK/Fullchain.PEM; ssl_certificate_key/etc/letsencrypt/live/caeszar.TK/Privkey.PEM; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; SSL_PREFER_SERVER_CIPHERS ON; SSL_CIPHERS 'EECDH+AESGCM: EDH+AESGCM: AES256+EECDH: AES256+EDH'; ssl_dhparam/etc/nginx/ssl/dhparams.PEM; 
Konfigurasikan nginx untuk menggunakan Let's Encrypt SSL

Gantikan nilai nama domain untuk sijil SSL dengan sewajarnya.

11. Pada langkah seterusnya menjana kuat Diffie-Hellman cipher dalam /etc/nginx/ssl/ direktori untuk melindungi pelayan anda terhadap Logjam serangan dengan menjalankan arahan berikut.

$ sudo mkdir/etc/nginx/ssl $ cd/etc/nginx/ssl $ sudo openssl dhparam -out dhparams.PEM 2048 
Menjana diffie hellman cipher untuk nginx

12. Akhirnya, mulakan semula daemon nginx untuk mencerminkan perubahan.

$ sudo systemctl mulakan semula nginx 

dan uji sijil SSL anda dengan melawat URL di bawah.

https: // www.ssllabs.com/ssltest/analisis.html 
Semak nginx membolehkan menyulitkan sijil SSL

Langkah 4: Pembaharuan Auto Let's menyulitkan sijil nginx

13. Sijil yang dikeluarkan oleh Mari enkripsi ca sah selama 90 hari. Untuk memperbaharui fail secara automatik sebelum tarikh luput SSL-diperbaharui.sh Skrip bash masuk /usr/tempatan/bin/ direktori dengan kandungan berikut.

$ sudo nano/usr/local/bin/ssl-renew.sh 

Tambahkan kandungan berikut ke SSL-diperbaharui.sh fail.

#!/bin/bash cd/usr/local/letsencrypt sudo ./letsencrypt-auto certonly -a webroot --agree-tos --drenew-by-default --webroot-path =/var/www/html/-d your_domain.TLD sudo Systemctl Reload nginx Exit 0 
Auto Renew Nginx membolehkan menyulitkan sijil SSL

Ganti --Webroot-Path pemboleh ubah untuk memadankan akar dokumen nginx anda. Pastikan skrip boleh dilaksanakan dengan mengeluarkan arahan berikut.

$ sudo chmod +x/usr/local/bin/ssl-renew.sh 

14. Akhir.

$ sudo crontab -e 

Tambahkan baris berikut di bahagian bawah fail.

0 1 1 */2 */usr/local/bin/ssl-renew.sh >>/var/log/your_domain.tld-renew.Log 2> & 1 
Kemas kini membolehkan menyulitkan sijil SSL

Itu sahaja! Pelayan Nginx anda kini melayani kandungan SSL menggunakan percuma Mari enkripsi SSL sijil.