GNU/Linux >> Belajar Linux >  >> Cent OS

Amankan Apache dengan Let's Encrypt di CentOS 7 - Proses Langkah demi Langkah?

Sertifikat SSL digunakan untuk memberikan keamanan ekstra bagi pengguna yang mengakses aplikasi Anda. Ini akan mengenkripsi lalu lintas antara server dan klien. Let's Encrypt adalah Otoritas Sertifikat (CA). Ini memberikan sertifikat TLS/SSL gratis untuk mengaktifkan HTTPS terenkripsi di server web. Ini adalah otoritas sertifikat otomatis, gratis, dan terbuka.

Di sini, di LinuxAPT, sebagai bagian dari Layanan Manajemen Server kami, kami secara teratur membantu Pelanggan kami untuk melakukan kueri Let's Encrypt terkait.

Dalam konteks ini, kita akan melihat cara mengamankan Apache dengan Let's Encrypt di CentOS 7 dengan menginstal sertifikat SSL Let's Encrypt gratis.


Bagaimana Cara Menginstal Let's Encrypt di CentOS 7 ?

Let's Encrypt sertifikat SSL berlaku selama 90 hari sejak tanggal penerbitan. Biasanya, sertifikat SSL Let's Encrypt dipercaya oleh semua browser utama saat ini.

Sebelum memulai prosedur Instalasi ini, pastikan bahwa Prasyarat berikut terpenuhi:

  • Sistem yang menjalankan CentOS 7 dengan pengguna non-root dengan hak istimewa sudo.
  • Apache harus diinstal dan dikonfigurasi, seperti yang disebutkan dalam tutorial ini.
  • Memiliki host virtual apache untuk domain Anda, seperti yang disebutkan dalam tutorial ini.
  • Nama domain Anda harus mengarah ke alamat IP server Anda.


1. Instal Klien Certbot

Mulailah dengan Menginstal paket klien Certbot ke server Anda untuk mendapatkan sertifikat SSL Let's Encrypt. Certbot adalah alat yang digunakan untuk mendapatkan sertifikat SSL dari Let's Encrypt dan mengaktifkan HTTPS secara otomatis di server Anda.

Paket certbot disediakan oleh EPEL. Jadi Kita perlu mengaktifkan repositori EPEL dengan mengetikkan :

$ sudo yum install epel-release

Sekarang instal klien certbot dengan menjalankan perintah berikut:

$ sudo yum install httpd mod_ssl python-certbot-apache

Cek instalasi certbot berdasarkan tipe :

$ certbot --version

Jika instalasi berhasil maka akan muncul versi certbot.


2. Atur Firewall

Jika Anda tidak menjalankan firewall, Anda dapat melewatinya.

Untuk menginstal SSL di server web Anda, Anda harus memastikan bahwa port 80 dan 443 terbuka di firewall Anda. Anda dapat membuka port di dalam firewalld menggunakan perintah berikut:

$ sudo firewall-cmd --add-service=http
$ sudo firewall-cmd --add-service=https
$ sudo firewall-cmd --runtime-to-permanent

Jika di server Anda iptables berjalan maka Anda harus menjalankan perintah di bawah ini untuk mengaktifkan lalu lintas pada port 80 dan port 443:

$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT


3. Konfigurasi Let's Encrypt SSL di Apache

Sekarang semuanya sudah siap jadi kami akan meminta untuk mendapatkan sertifikat SSL dari Let's Encrypt. Untuk meminta menggunakan certbot adalah proses yang sangat mudah. Let's Encrypt akan memvalidasi kepemilikan domain dan jika berhasil akan mengeluarkan SSL untuk domain yang diminta. Ada beberapa cara untuk mendapatkan sertifikat Let's Encrypt melalui plugin. Jalankan perintah di bawah ini untuk meminta SSL:

$ sudo certbot --apache -d example.com -d www.example.com

Pada perintah di atas, ia akan meminta sertifikat SSL untuk domain example.com dan www.example.com.

Jika Anda menjalankan certbot untuk pertama kalinya, ia akan meminta Anda untuk memasukkan alamat email, yang dapat digunakan untuk mengirim peringatan email terkait pembaruan dan kedaluwarsa SSL. Itu juga akan meminta persetujuan terhadap persyaratan layanan.

Setelah melakukannya, certbot akan berkomunikasi dengan server Let's Encrypt dan kemudian akan menjalankan tantangan untuk memverifikasi bahwa Anda memiliki domain yang Anda minta sertifikatnya.

Jika validasi berhasil, ia akan menanyakan bagaimana Anda ingin mengonfigurasi pengaturan HTTPS Anda:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
 1: No redirect - Make no further changes to the webserver configuration.
 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
 new sites, or if you're confident your site works on HTTPS. You can undo this
 change by editing your web server's configuration.
 Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Pilih pilihan Anda dan lanjutkan ke langkah berikutnya. Kami menyarankan Anda untuk memilih opsi Redirect jika Anda tidak ingin mengubah file konfigurasi secara manual.

Pada akhirnya, Ini akan menunjukkan kepada Anda pesan yang berhasil.

Terakhir, domain Anda aman dengan sertifikat Let's Encrypt SSL. Anda dapat memeriksanya dengan mengunjungi situs Anda dengan protokol HTTPS.


Setelan SSL Aman Lainnya untuk Apache

Konfigurasi SSL default CentOS dengan versi Apache sudah usang sehingga kurang aman dan menimbulkan masalah keamanan. Jadi kita perlu mengubah beberapa pengaturan agar lebih aman.

Untuk mengonfigurasi opsi terkait SSL yang lebih aman, buka file ssl.conf:

$ sudo vi /etc/httpd/conf.d/ssl.conf

Pertama, Anda harus menemukan baris SSLProtocol dan SSLCipherSuit di dalam file dan mengomentarinya atau Anda dapat menghapus dua baris tersebut:

# SSLProtocol all -SSLv2
. . .
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
Now append the following lines after VirtualHost block in /etc/httpd/conf.d/ssl.conf file.
. . .
. . .
# Begin copied text
# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
# Disable preloading HSTS for now.  You can use the commented out header line that includes
# the "preload" directive if you understand the implications.
#Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
# Requires Apache >= 2.4.11

Selanjutnya, simpan dan tutup file. Kita perlu me-restart layanan Apache untuk menerapkan perubahan.

Jalankan perintah di bawah ini:

$ sudo systemctl restart httpd

Bagaimana cara melakukan perpanjangan otomatis sertifikat SSL Let's Encrypt ?

Let's Encrypt Sertifikat SSL berlaku selama 90 hari sehingga Anda perlu memperbaruinya sebelum kedaluwarsa. Untuk memperbarui sertifikat secara otomatis sebelum kedaluwarsa, kami akan membuat cronjob yang akan berjalan dua kali dalam sehari dan akan secara otomatis memperbarui sertifikat apa pun 30 hari sebelum masa berlakunya habis.

Mari kita edit crontab untuk membuat pekerjaan baru dengan perintah di bawah ini:

$ sudo crontab -e

Tambahkan baris berikut di akhir file sehingga akan berjalan dua kali dalam sehari:

0 */12 * * * /usr/bin/certbot renew >> /var/log/le-renew.log

Simpan dan tutup file. Agar berlaku, Apache akan dimulai ulang secara otomatis jika ada sertifikat yang diperbarui.

Anda dapat menguji proses pembaruan, Anda dapat menggunakan perintah certbot diikuti dengan tombol –dry-run:

$ sudo certbot renew --dry-run

Jika tidak ada error berarti proses perpanjangan berhasil.


[Butuh bantuan mendesak dalam memperbaiki kesalahan konfigurasi Apache? Kami bisa membantumu. ]


Cent OS
  1. Instal phpMyAdmin dengan Nginx di CentOS 7 - Proses Langkah demi Langkah?

  2. Instal phpMyAdmin dengan Apache di CentOS 7 - Proses Langkah demi Langkah?

  3. Cara Menginstal Let's Encrypt dengan Apache di CentOS 7

  1. Amankan Apache dengan Lets Encrypt di Ubuntu 20.04

  2. Amankan Nginx dengan Lets Encrypt di CentOS 7

  3. Amankan Apache dengan Lets Encrypt di CentOS 7

  1. Amankan Apache dengan Lets Encrypt di CentOS 8

  2. Amankan Apache dengan Lets Encrypt di Debian 10

  3. Cara Menginstal WonderCMS dengan Apache dan Mengenkripsi SSL di CentOS 8