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:
-
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
-
Simpan perubahan dan keluar.
-
Jalankan perintah berikut untuk melakukan pemeriksaan sintaks:
httpd -t
-
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:
-
Perintahnya,
certbot renew
, memulai proses. -
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.
-
Certbot mencoba memperbarui sertifikat yang kedaluwarsa ini dengan menggunakan metode validasi yang sama dengan yang digunakan untuk permintaan sertifikat asli.
-
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:
-
Konfirmasikan jalur yang benar dengan mengeluarkan perintah secara langsung:
[root@leexample-centos7 ~]# which certbot /usr/bin/certbot
-
Tentukan metode cron mana yang ingin Anda gunakan:
-
Anakron :buat file baru di
/etc/cron.weekly/
- Anda dapat menamainya seperticertbotrenew
-
Cron :gunakan
crontab -e
-
-
Buat entri cron, seperti berikut ini, dalam metode yang Anda pilih:
0 3 * * 0 /usr/bin/certbot renew
-
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