Cara Memasang Let's Encrypt Sijil SSL Untuk Mengamankan Apache pada RHEL/CentOS 7/6

Cara Memasang Let's Encrypt Sijil SSL Untuk Mengamankan Apache pada RHEL/CentOS 7/6

Memperluas tutorial Let's Encrypt mengenai sijil percuma SSL/TLS, dalam artikel ini kita akan menunjukkan cara mendapatkan dan memasang sijil SSL/TLS percuma yang dikeluarkan oleh Mari enkripsi Pihak Berkuasa Sijil untuk Apache pelayan web dihidupkan Centos/RHEL 7/6 dan pengagihan fedora juga.

Sekiranya anda ingin memasang, enkripsi untuk Apache di Debian dan Ubuntu, ikuti panduan ini di bawah:

Persediaan Mari enkripsi untuk mengamankan Apache di Debian dan Ubuntu

Persekitaran Sampel Menguji
Pasang Lets Encrypt untuk Apache pada CentOS dan RHEL

Keperluan

  1. Nama domain berdaftar dengan sah A Rekod untuk menunjuk kembali ke alamat IP awam pelayan anda.
  2. Server Apache dipasang dengan modul SSL diaktifkan dan hosting maya diaktifkan sekiranya anda menganjurkan pelbagai domain atau subdomain.

Langkah 1: Pasang pelayan web Apache

1. Sekiranya belum dipasang, HTTPD Daemon boleh dipasang dengan mengeluarkan arahan di bawah:

# yum pasang httpd 

2. Agar Let's Encrypt Software untuk bekerja dengan Apache, memastikan bahawa modul SSL/TLS dipasang dengan mengeluarkan arahan di bawah:

# yum -y pemasangan mod_ssl 

3. Akhirnya, mulakan pelayan Apache dengan arahan berikut:

# Systemctl Mula Httpd.Perkhidmatan [pada RHEL/CENTOS 7] # Perkhidmatan HTTPD Mula [ON RHEL/CENTOS 6] 

Langkah 2: Pasang mari enkripsi sijil SSL

4. Kaedah pemasangan yang paling mudah Mari enkripsi Pelanggan adalah dengan mengkloning repositori GitHub dalam sistem fail anda. Untuk memasang git pada sistem anda, anda mesti mengaktifkan repositori Epel dengan arahan berikut.

# yum memasang pelepasan epel 

5. Sebaik sahaja repos Epel ditambah dalam sistem anda, teruskan dan pasangkan klien Git dengan menjalankan arahan di bawah:

# yum memasang git 

6. Sekarang, sebaik sahaja anda memasang semua kebergantungan yang diperlukan untuk menangani Let's Encrypt, pergi ke /usr/tempatan/ Direktori dan mula menarik Let's Encrypt Client membentuk repositori github rasmi dengan arahan berikut:

# cd/usr/local/ # git clone https: // github.com/letsencrypt/letsencrypt 

Langkah 3: Dapatkan Sijil SSL Let's Free untuk Apache

7. Proses mendapatkan sijil Let's Encrypt percuma untuk Apache adalah automatik untuk Centos/RHEL Terima kasih kepada plugin Apache.

Jom lari Mari enkripsi Perintah skrip untuk mendapatkan sijil SSL. Pergi ke Let's Encrypt Direktori Pemasangan dari /usr/local/letsencrypt dan jalankan Letsencrypt-auto perintah dengan menyediakan --Apache pilihan dan -d Bendera untuk setiap subdomain anda memerlukan sijil.

# cd/usr/local/letsencrypt # ./letsencrypt -auto --apache -d your_domain.tld 
Buat Lets Encrypt Sijil SSL untuk Apache

8. Bekalkan alamat e -mel yang akan digunakan oleh Let's Encrypt untuk memulihkan kunci yang hilang atau untuk notis segera dan tekan Masukkan bersambung.

Tambahkan alamat e -mel untuk menyulitkan

9. Setuju terma lesen dengan memukul kunci masuk.

Setuju mari menyulitkan lesen

10. Pada Centos/RHEL, Secara lalai, pelayan Apache tidak menggunakan konsep memisahkan direktori untuk tuan rumah yang diaktifkan dari tuan rumah yang tersedia (tidak aktif) Debian pengedaran berasaskan.

Juga, hosting maya dilumpuhkan secara lalai. Pernyataan Apache yang menentukan nama pelayan (Nama pelayan) ia tidak hadir pada fail konfigurasi SSL.

Untuk mengaktifkan arahan ini, mari enkripsi akan meminta anda memilih tuan rumah maya. Kerana ia tidak menemui mana -mana VHost yang tersedia, pilih SSL.Conf fail yang akan diubahsuai secara automatik oleh Let's Encrypt Client dan tekan Masukkan bersambung.

Arahan VirtualHost Aktif dan pilih mod_ssl

11. Seterusnya, pilih Mudah kaedah untuk Http permintaan dan tekan Masukkan untuk maju kehadapan.

Benarkan permintaan HTTP yang mudah

12. Akhirnya, jika semuanya berjalan lancar, mesej tahniah harus dipaparkan di skrin. Tekan Masukkan Untuk melepaskan arahan.

Membolehkan enkripsi didayakan di domain

Itu sahaja! Anda berjaya mengeluarkan a SSL/TLS sijil untuk domain anda. Sekarang anda boleh mula melayari laman web anda menggunakan Https Protokol.

Langkah 4: Ujian Percuma Let's enkripsi penyulitan pada domain

13. Untuk menguji kelebihan jabat tangan SSL/TLS domain anda lawati pautan di bawah dan uji sijil anda di domain anda.

https: // www.ssllabs.com/ssltest/analisis.html 
Sahkan Lets Sijil Sijil di Domain

14. Sekiranya anda menerima beberapa laporan mengenai kelemahan domain anda dalam ujian yang dijalankan, maka anda perlu memperbaiki lubang keselamatan tersebut dengan segera.

Penilaian keseluruhan C kelas menjadikan domain anda sangat tidak selamat. Untuk menyelesaikan masalah keselamatan ini, buka fail konfigurasi SSL Apache dan buat perubahan berikut:

# vi/etc/httpd/conf.D/SSL.Conf 

Cari garis dengan Sslprotocol pernyataan dan tambah -SSLV3 pada akhir garis.

Betulkan konfigurasi SSL Apache

Pergi lebih mendalam dalam fail, cari dan komen garis dengan Sslciphersuite dengan meletakkan a # Di hadapannya dan tambahkan kandungan berikut di bawah baris ini:

SSLCIPHERSUITE ECDHE-RSA-AES128-GCM-SHA256: ECDHE-ECDSA-AES128-GCM-SHA256: ECDHE-RSA-AES256-GCM-SHA384: ECDHE-ECDSA-AES256- GCM-GCM-GCM-GCM-GCM-GC : DHE-DSS-AES128-GCM-SHA256: KEDH+AESGCM: ECDHE-RSA-AES128-SHA256: ECDHE-ECDSA-AES128-SHA256: ECDHE-RSA-AES128-AESS128: ECDHE-RSA-AESS128: ECDHE-AESS128 -AES256-sha384: ECDHE-ECDSA-AES256-SHA384: ECDHE-RSA-AES256-SHA: ECDHE-ECDSA-AES256-SHA: DHE-RSA-AES128-SHA256: -SHA256: DHE-RSA-AES256-SHA256: DHE-DSS-AES256-SHA: DHE-RSA-AES256-SHA: AES128-GCM-SHA256: AES256-GCM-SHA384: AES1256: AES1256: AES1256: AES126 : AES256-SHA: AES: Camellia: DES-CBC3-SHA:!Anull:!Enull:!EKSPORT:!Des:!RC4:!MD5:!PSK:!AECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SSLHONORCIPHERORD 
Konfigurasikan konfigurasi SSL

15. Setelah anda membuat semua perubahan di atas, simpan dan tutup fail, kemudian mulakan semula daemon Apache untuk memohon perubahan.

# Systemctl mulakan semula httpd.Perkhidmatan [pada RHEL/CENTOS 7] # Perkhidmatan HTTPD RESTART [ON RHEL/CENTOS 6] 

16. Sekarang, menguji status penyulitan domain anda sekali lagi, dengan melawat pautan yang sama seperti di atas. Untuk melakukan retests memukul pautan cache yang jelas dari laman web.

https: // www.ssllabs.com/ssltest/analisis.html 
Ujian membolehkan menyulitkan sijil SSL di laman web

Sekarang anda mesti mendapat kelas A penarafan keseluruhan, yang bermaksud domain anda sangat dijamin.

Langkah 4: Pembaharuan Auto Let's menyulitkan sijil di Apache

17. Versi beta ini Let's Encrypt Software melepaskan sijil dengan tarikh luput selepas 90 hari. Oleh itu, untuk memperbaharui sijil SSL, anda mesti melaksanakannya Letsencrypt-auto Perintah sekali lagi sebelum tarikh tamat tempoh, dengan pilihan dan bendera yang sama digunakan untuk mendapatkan sijil awal.

Contoh mengenai cara memperbaharui sijil secara manual dibentangkan di bawah.

# cd/usr/local/letsencrypt # ./Letsencrypt-auto certonly --apache-rening-by-default -d your_domain.tld 

18. Untuk mengautomasikan proses ini, buat skrip bash berikut yang disediakan oleh GitHub Erikaheidi, dalam /usr/tempatan/bin/ direktori dengan kandungan berikut. (Skrip sedikit diubahsuai untuk mencerminkan direktori pemasangan LetsEncrypt kami).

# vi/usr/local/bin/le-renew-centos 

Tambahkan kandungan berikut ke Le-Refer-Centos Fail:

!/bin/bash domain = $ 1 le_path = "/usr/local/letsencrypt" le_conf = "/etc/letsencrypt" exp_limit = 30; get_domain_list () certDomain = $ 1 config_file = "$ le_conf/pembaharuan/$ certDomain.conf "jika [ ! -f $ config_file]; Kemudian echo "[ralat] fail konfigurasi untuk sijil $ certdomain tidak dijumpai."Keluar 1; fi domain = $ (grep-hanya perlawanan --perl-regex" (?<=domains \= ).*" "$config_file") last_char=$(echo "$domains" | awk 'print substr($0,length,1)') if [ "$last_char" = "," ]; then domains=$(echo "$domains" |awk 'print substr($0, 1, length-1)') fi echo $domains;  if [ -z "$domain" ] ; then echo "[ERROR] you must provide the domain name for the certificate renewal." exit 1; fi cert_file="/etc/letsencrypt/live/$domain/fullchain.pem" if [ ! -f $cert_file ]; then echo "[ERROR] certificate file not found for domain $domain." exit 1; fi exp=$(date -d "'openssl x509 -in $cert_file -text -noout|grep "Not After"|cut -c 25-'" +%s) datenow=$(date -d "now" +%s) days_exp=$(echo \( $exp - $datenow \) / 86400 |bc) echo "Checking expiration date for $domain… " if [ "$days_exp" -gt "$exp_limit" ] ; then echo "The certificate is up to date, no need for renewal ($days_exp days left)." exit 0; else echo "The certificate for $domain is about to expire soon. Starting renewal request… " domain_list=$( get_domain_list $domain ) "$le_path"/letsencrypt-auto certonly --apache --renew-by-default --domains "$domain_list" echo "Restarting Apache… " /usr/bin/systemctl restart httpd echo "Renewal process finished for domain $domain" exit 0; fi 

19. Kebenaran Pelaksanaan Geran untuk Skrip, Pasang BC pakej dan jalankan skrip untuk mengujinya. Gunakan nama domain anda sebagai parameter kedudukan untuk skrip. Mengeluarkan arahan di bawah untuk mencapai langkah ini:

# yum Pasang bc # chmod +x/usr/local/bin/le-renew-centos #/usr/local/bin/le-renew-centos your_domain.tld 

20. Akhirnya, menggunakan penjadualan Linux, tambahkan pekerjaan cron baru untuk menjalankan skrip setiap dua bulan, memastikan sijil anda akan dikemas kini sebelum tarikh tamat tempoh.

# Crontab -e 

Tambahkan baris berikut di bahagian bawah fail.

0 1 1 */2 */usr/local/bin/le-renew-centos your_domain.tld >>/var/log/your_domain.tld-renew.Log 2> & 1 

Itu sahaja! Pelayan Apache anda berjalan di atas Centos/RHEL Sistem kini melayani kandungan SSL menggunakan sijil SSL Let's Free.