GNU/Linux >> Belajar Linux >  >> Linux

Instal dan gunakan utilitas Lets Encrypt Certbot di CentOS 7 dengan Apache

Artikel ini menjelaskan cara menginstal dan menggunakan utilitas Let's Encrypt® Certbot di server CentOS® 7.

Apa itu Let's Encrypt?

Let's Encrypt adalah Certificate Authority (CA) yang menyediakan Sertifikat SSL gratis selama 90 hari. Detail berikut berasal dari Halaman Tentang mereka:

Let's Encrypt adalah otoritas sertifikat (CA) gratis, otomatis, dan terbuka, yang dijalankan untuk kepentingan publik. Ini adalah layanan yang disediakan oleh Internet Security Research Group (ISRG).

Kami memberi orang sertifikat digital yang mereka butuhkan untuk mengaktifkan HTTPS (SSL/TLS) untuk situs web, gratis, dengan cara yang paling ramah pengguna. Kami melakukan ini karena kami ingin membuat Web yang lebih aman dan menghormati privasi.

Prinsip utama di balik Let's Encrypt adalah:

  • Gratis :Siapa pun yang memiliki nama domain dapat menggunakan Let's Encrypt untuk mendapatkan sertifikat tepercaya tanpa biaya.
  • Otomatis :Perangkat lunak yang berjalan di server web dapat berinteraksi dengan Let's Encrypt untuk mendapatkan sertifikat tanpa kesulitan, mengonfigurasinya dengan aman untuk digunakan, dan secara otomatis mengurus pembaruan.
  • Aman :Let's Encrypt akan berfungsi sebagai platform untuk memajukan praktik terbaik keamanan TLS, baik di sisi CA maupun dengan membantu operator situs mengamankan server mereka dengan benar.
  • Transparan :Semua sertifikat yang diterbitkan atau dicabut akan dicatat secara publik dan tersedia untuk diperiksa oleh siapa saja.
  • Buka :Protokol penerbitan dan pembaruan otomatis akan dipublikasikan sebagai standar terbuka yang dapat diadopsi oleh orang lain.
  • Koperasi :Sama seperti protokol Internet yang mendasari itu sendiri, Let's Encrypt adalah upaya bersama untuk memberi manfaat bagi komunitas, di luar kendali organisasi mana pun.

Apa perbedaan antara Let's Encrypt dan sertifikat SSL lainnya?

Sertifikat SSL adalah kunci yang membantu mengenkripsi data server Anda. Browser web hanya mengenali sertifikat SSL yang telah disediakan oleh CA terkenal, seperti DigiCert, GoDaddy, COMODO, dan sebagainya. Semua CA yang terkenal dan tepercaya adalah anggota CA/Forum Browser (cabforum.org) dan mengikuti serangkaian persyaratan ketat untuk menerbitkan sertifikat.

Ada tiga tingkat sertifikat SSL yang berbeda:

  • Sertifikat Validasi Domain (DV) :Ini adalah sertifikat SSL dasar yang membuktikan kepemilikan domain. Validasi tambahan diperlukan.

  • Sertifikat Validasi Organisasi (OV) :Sertifikat ini tidak hanya membuktikan kepemilikan domain, tetapi juga membuktikan bahwa bisnis yang sebenarnya, yang bereputasi baik dengan otoritas pemerintah, memiliki domain tersebut.

  • Sertifikat Validasi Diperpanjang (EV) :Sertifikat ini melangkah lebih jauh dari sertifikat OV dengan memvalidasi lebih lanjut bahwa bisnis telah beroperasi setidaknya selama tiga tahun.

Di bagian belakang, ini adalah perbedaan yang signifikan, dan mereka memainkan peran utama saat Anda membeli sertifikat dari CA karena Anda harus melalui proses validasinya.

Di ujung depan, tidak ada perbedaan yang terlihat antara ketiga jenis sertifikat. Fitur browser yang digunakan untuk membedakan antara tingkat sertifikat yang berbeda telah ditinggalkan. Untuk mempelajari lebih lanjut, lihat:Sertifikat Validasi yang Diperpanjang (Sungguh, Sungguh) Mati

Let's Encrypt, CA resmi di Forum CA/Browser, menawarkan Sertifikat DV dasar gratis yang berlaku selama 90 hari sekaligus. Apa yang membuat Let's Encrypt unik adalah utilitas Certbot mereka, yang dapat Anda instal di server web untuk menerbitkan dan mengelola Sertifikat SSL Anda dengan menggunakan proses otomatis. Menggunakan Certbot menghasilkan lebih sedikit perawatan dan lebih sedikit sakit kepala. Masa berlaku 90 hari berarti bahwa kunci sertifikat lebih sering didaur ulang, yang memberikan keamanan yang lebih baik karena ada jendela yang jauh lebih kecil dari kemungkinan kunci yang disusupi.

Mulai

Artikel ini berfokus pada penginstalan Certbot pada rilis terbaru CentOS 7. Server yang digunakan dalam contoh ini menjalankan tumpukan LAMP berikut:

  • CentOS Linux® rilis 7.8.2003 (Core)
  • PHP 7.4.8
  • MariaDB® 5.5.65
  • Apache® 2.4.6

Instruksi dan perintah artikel ini menyediakan fungsi dasar untuk mendapatkan sertifikat dari Let's Encrypt. Certbot tidak bergantung pada aplikasi web untuk dijalankan, tetapi memerlukan sarana untuk memvalidasi bahwa Anda benar-benar mengontrol domain. Artikel ini membahas validasi menggunakan metode webroot, yang berarti Anda menghosting domain yang memerlukan sertifikat di server tempat Anda menginstal Certbot.

Penting :Petunjuk artikel menggunakan konfigurasi Apache default untuk satu situs di server. Konfigurasi Anda mungkin berbeda tergantung pada konfigurasi Apache Anda.

Instal Certbot

Setelah Anda mengatur server Anda untuk melayani halaman web Anda, gunakan perintah berikut untuk menginstal Certbot:

[root@leexample-centos7 ~]# yum install certbot

Certbot membutuhkan dependensi berikut:

=================================================================================================================================
 Package                                   Arch                    Version                           Repository             Size
=================================================================================================================================
Installing:
 certbot                                   noarch                  1.6.0-1.el7                       epel                   44 k
Installing for dependencies:
 pyOpenSSL                                 x86_64                  0.13.1-4.el7                      base                  135 k
 python-ndg_httpsclient                    noarch                  0.3.2-1.el7                       epel                   43 k
 python-requests-toolbelt                  noarch                  0.8.0-3.el7                       epel                   78 k
 python-zope-component                     noarch                  1:4.1.0-5.el7                     epel                  228 k
 python-zope-event                         noarch                  4.0.3-2.el7                       epel                   79 k
 python-zope-interface                     x86_64                  4.0.5-4.el7                       base                  138 k
 python2-acme                              noarch                  1.6.0-1.el7                       epel                   81 k
 python2-certbot                           noarch                  1.6.0-1.el7                       epel                  374 k
 python2-configargparse                    noarch                  0.11.0-2.el7                      epel                   31 k
 python2-future                            noarch                  0.18.2-2.el7                      epel                  806 k
 python2-josepy                            noarch                  1.3.0-2.el7                       epel                   89 k
 python2-mock                              noarch                  1.0.1-10.el7                      epel                   92 k
 python2-parsedatetime                     noarch                  2.4-6.el7                         epel                   78 k
 python2-pyrfc3339                         noarch                  1.1-3.el7                         epel                   16 k
 python2-six                               noarch                  1.9.0-0.el7                       epel                  2.9 k
 pytz                                      noarch                  2016.10-2.el7                     base                   46 k

Transaction Summary
=================================================================================================================================

Minta sertifikat baru menggunakan Certbot

Dengan menginstal Certbot, Anda dapat meminta sertifikat dari Let's Encrypt. Sebelum melanjutkan, perhatikan item berikut:

  • Domain yang Anda minta. Anda dapat meminta hingga 100 domain pada satu sertifikat Let's Encrypt.

  • Lokasi direktori atau direktori root dokumen situs Anda. Anda memerlukan informasi ini untuk certbot perintah untuk menginstal file txt untuk validasi. Jika Anda menambahkan beberapa domain yang mengarah ke direktori yang berbeda, Anda harus mencantumkan semuanya dalam perintah.

  • Anda harus mengizinkan akses ke /.well-known/acme-challenge/ direktori.

  • Anda harus mengecualikan /.well-known/acme-challenge/ direktori dari pengalihan paksa HTTP ke HTTPS.

Catatan: Saat pertama kali Anda menjalankan Certbot, Anda diminta memasukkan alamat email dan menyetujui persyaratan layanan.

Jalankan perintah berikut dengan detail Anda untuk meminta sertifikat:

[root@leexample-centos7 ~]# certbot certonly --webroot -w /var/www/vhosts/example.com -d example.com -d www.example.com

Penjelasan elemen perintah berikut ini:

  • certonly :bendera yang menyatakan hanya mengeluarkan sertifikat dan tidak melakukan hal lain. Perintah tidak melakukan konfigurasi aplikasi web.
  • --webroot :memberitahu Certbot untuk menggunakan direktori web tertentu, masing-masing dipisahkan oleh -w bendera.
  • -d :menentukan domain yang akan diminta. Anda harus memiliki -d tandai untuk setiap domain yang Anda inginkan pada sertifikat.

Catatan: Jika Anda ingin meliput keduanya www dan non-www versi domain pada satu sertifikat, Anda harus menggunakan -d bendera untuk masing-masing.

Setelah Anda memasukkan perintah, output berikut akan ditampilkan:

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for letest.mccrocklin.space
Using the webroot path /var/www/vhosts/example.com for all unmatched domains.
Waiting for verification...

Jika tidak ada masalah dengan validasi, Anda akan melihat output berikut:

Cleaning up challenges

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot
   again. To non-interactively renew *all* of your certificates, run
   "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Lokasi file sertifikat

Certbot, secara default, menginstal sertifikat ke /etc/letsencrypt/live// .

<domain.tld> selalu menjadi domain pertama yang Anda tetapkan saat menjalankan certbot memerintah. Ingatlah hal ini saat Anda mengonfigurasi host virtual atau blok server agar mengarah ke file sertifikat.

Anda dapat melihat file berikut di direktori:

[root@leexample-centos7 ~]# ls -al /etc/letsencrypt/live/example.com
total 12
drwxr-xr-x. 2 root root 4096 Aug  1 13:35 .
drwx------. 3 root root 4096 Aug  1 13:35 ..
lrwxrwxrwx. 1 root root   47 Aug  1 13:35 cert.pem -> ../../archive/example.com/cert1.pem
lrwxrwxrwx. 1 root root   48 Aug  1 13:35 chain.pem -> ../../archive/example.com/chain1.pem
lrwxrwxrwx. 1 root root   52 Aug  1 13:35 fullchain.pem -> ../../archive/example.com/fullchain1.pem
lrwxrwxrwx. 1 root root   50 Aug  1 13:35 privkey.pem -> ../../archive/example.com/privkey1.pem
-rw-r--r--. 1 root root  692 Aug  1 13:35 README

Perhatikan bahwa semua file ini adalah tautan simbolik. Ini penting untuk proses pembaruan otomatis, yang dijelaskan di bagian Pembaruan berikut. Perhatikan nama file berikut dan kegunaannya:

  • cert.pem adalah sertifikatnya.
  • chain.pem adalah bundel CA.
  • fullchain.pem adalah sertifikat, diikuti oleh bundel CA.
  • privkey.pem adalah Kunci Pribadi.

Konfigurasi Apache

Gunakan perintah berikut untuk mengkonfigurasi Apache:

  1. Dalam konfigurasi default Apache, tambahkan baris berikut ke /etc/httpd/conf.d/ssl.conf :

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCACertificateFile /etc/letsencrypt/live/example.com/chain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    
  2. Simpan perubahan dan keluar.

  3. Jalankan perintah berikut untuk melakukan pemeriksaan sintaks:

    httpd -t
    
  4. Jika Anda mendapatkan Syntax OK , lalu jalankan perintah berikut untuk memuat ulang Apache:

    systemctl reload httpd
    

Perbarui sertifikat Anda

Let's Encrypt Certificates memiliki masa pakai 90 hari, jadi saat Anda perlu memperbarui banyak sertifikat yang diminta melalui utilitas Certbot, siklus perpanjangan yang sering dapat menjadi hal yang menakutkan.

Untungnya, Certbot memiliki fungsi pembaruan bawaan yang menangani hal ini untuk Anda. Namun, itu tidak berjalan secara otomatis, jadi Anda harus menjadwalkannya untuk dijalankan sebagai cron pekerjaan. Proses perpanjangan Cerbot menggunakan langkah-langkah berikut:

  1. Perintahnya, certbot renew , memulai proses.

  2. Certbot memeriksa semua sertifikat yang telah dikeluarkan dan diinstal di server Anda. Ini secara khusus mencari sertifikat yang akan kedaluwarsa dalam 30 hari ke depan.

  3. Certbot mencoba memperbarui sertifikat yang kedaluwarsa ini dengan menggunakan metode validasi yang sama dengan yang digunakan untuk permintaan sertifikat asli.

  4. Setelah pembaruan berhasil, Certbot membuat file baru di dalam /etc/letsencrypt/archive// direktori, menambah jumlah untuk setiap iterasi pembaruan, dan memperbarui symlink di /etc/letsencrypt/live// .Karena nama file sertifikat tidak benar-benar berubah, Anda tidak perlu mengubah jalur file di file konfigurasi blok server virtual hostor. Hal ini membuat proses perpanjangan lebih lancar.

Mengatur tugas cron

Penting untuk dicatat bahwa frekuensi sebenarnya dari tugas cron bergantung pada konfigurasi server Anda. Fungsi pembaruan hanya memindai sertifikat yang ada hingga menemukan sertifikat yang kedaluwarsa dalam 30 hari ke depan. Aman untuk mengatur tugas cron agar berjalan sekali sehari selama waktu lalu lintas rendah. Jika Anda memiliki banyak Sertifikat Let's Encrypt yang diterbitkan pada waktu yang berbeda, sertifikat tersebut dapat menangkapnya saat mencapai tanda 30 hari.

Namun, Anda dapat memilih untuk menjalankannya lebih jarang. Misalnya, seminggu sekali pada jam 3 pagi setiap hari Minggu.

Anda dapat membuat tugas cron dengan menggunakan crontab atau Anacron pengguna root. Anacron memastikan bahwa tugas cron berjalan meskipun itu terlewatkan selama waktu henti server.

Gunakan langkah-langkah berikut untuk membuat tugas cron:

  1. Konfirmasikan jalur yang benar dengan mengeluarkan perintah secara langsung:

    [root@leexample-centos7 ~]# which certbot
    /usr/bin/certbot
    
  2. Tentukan metode cron mana yang ingin Anda gunakan:

    • Anakron :buat file baru di /etc/cron.weekly/ - Anda dapat menamainya seperti certbotrenew

    • Cron :gunakan crontab -e

  3. Buat entri cron, seperti berikut ini, dalam metode yang Anda pilih:

    0 3 * * 0 /usr/bin/certbot renew
    
  4. Simpan file.

Kesimpulan

Let's Encrypt adalah alternatif yang bagus untuk mendapatkan Sertifikat SSL gratis untuk domain Anda. Sertifikat ini adalah DVcertificates, yang berarti hanya memvalidasi kepemilikan domain. Artikel ini membahas fungsi dasar utilitas Let's Encrypt Certbot. Jika Anda memerlukan opsi tambahan dan fungsionalitas lebih lanjut, Anda bisa mendapatkan bantuan lebih lanjut dari Komunitas Let's Encrypt:

  • Ayo Enkripsi
  • Ayo Enkripsi Dokumentasi
  • Ayo Enkripsi Forum Komunitas

Linux
  1. Amankan Apache dengan Lets Encrypt di CentOS 7

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

  3. Instal Apache dan PHP di CentOS 7

  1. Cara Menginstal Shopware dengan NGINX dan Mengenkripsi di CentOS 7

  2. Cara Menginstal WonderCMS dengan Nginx dan Mengenkripsi SSL di CentOS 7

  3. Cara Instal Pico CMS dengan Nginx dan Lets Encrypt di CentOS 7

  1. Instal Automad CMS dengan Nginx dan Mari Enkripsi SSL di CentOS 7

  2. Cara Install Automad CMS dengan Apache dan Lets Encrypt di Debian 10

  3. Cara Menginstal Forum ElkArte dengan Apache dan Mengenkripsi di Debian 10