GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Lets Encrypt Sertifikat SSL di Ubuntu 18.04

Certbot adalah klien otomatis yang mudah digunakan yang mengambil dan menyebarkan sertifikat SSL/TLS untuk server web Anda. Ini adalah alat EFF yang digunakan untuk mendapatkan sertifikat dari Let's Encrypt dan mengaktifkan HTTPS secara otomatis di server Anda. Singkatnya, ini bertindak sebagai "klien Let's Encrypt" resmi atau "klien Let's Encrypt Python." Ini menggunakan Lingkungan Manajemen Sertifikat Otomatis (ACME) untuk secara otomatis menyebarkan sertifikat SSL gratis yang dipercaya oleh sebagian besar browser. Oleh karena itu, ini berfungsi untuk CA lain yang mendukung protokol ACME.

Pada artikel ini, saya akan menjelaskan cara mendapatkan dan menginstal gratis Let's encrypt SSL certificates menggunakan Certbot untuk Apache dan Nginx di server Ubuntu 18.04.

Prasyarat

  • Server Ubuntu Bionic Beaver (18.04) dengan hak akses root untuk menginstal paket yang diperlukan sesuai persyaratan.
  • Domain yang sepenuhnya memenuhi syarat yang terdaftar dan memiliki catatan DNS yang tepat. Di sini, di artikel ini, saya menggunakan domain fosscloudy.com secara keseluruhan.

Instal Certbot

Awalnya, untuk mengambil sertifikat SSL Letsencrypt, kita perlu menginstal perangkat lunak Certbot. Meskipun Certbot tersedia di Ubuntu akhir-akhir ini, paket-paketnya cenderung ketinggalan zaman. Oleh karena itu, disarankan untuk menggunakan repositori Perangkat Lunak Ubuntu dengan perangkat lunak terbaru untuk instalasi. Anda dapat menginstal Certbot menggunakan perintah berikut di bawah ini:

#add-apt-repository ppa:certbot/certbot
#apt update
#apt install certbot 

Anda dapat mengonfirmasi versi Certbot yang diinstal dengan perintah di bawah ini:

# certbot --version
certbot 0.23.0 

Selain itu, kita dapat menggunakan perintah ini "plugin certbot" untuk mengetahui plugin Certbot yang tersedia yang terpasang di server Anda.

# certbot plugins
Saving debug log to /var/log/letsencrypt/letsencrypt.log

* standalone
Description: Spin up a temporary webserver
Interfaces: IAuthenticator, IPlugin
Entry point: standalone = certbot.plugins.standalone:Authenticator

* webroot
Description: Place files in webroot directory
Interfaces: IAuthenticator, IPlugin
Entry point: webroot = certbot.plugins.webroot:Authenticator
------------------------------------------------------------------------------- 

Secara default, hanya plugin Standalone dan webroot yang akan disertakan dalam paket ini. Sesuai tujuan kami, kami selanjutnya dapat mengaktifkan semua plugin yang diperlukan satu per satu.

Menyiapkan Let's Encrypt SSL certificate di Apache

Certbot menyediakan plugin Apache untuk menerbitkan sertifikat SSL lebih mudah dengan alat ini. Kita dapat menginstal plugin ini dengan menjalankan perintah di bawah ini:

#apt install python-certbot-apache 

Kami sekarang siap menggunakan alat ini, tetapi untuk mengonfigurasi SSL untuk domain, kami perlu memverifikasi beberapa file konfigurasi Apache. Untuk menerbitkan sertifikat SSL untuk sebuah domain, Certbot akan mencoba mengambil host virtual domain yang tepat di konfigurasi Apache server Anda. Anda dapat merujuk artikel saya sebelumnya yang akan membantu Anda dalam menyiapkan domain virtual host. Dengan asumsi, keberadaan virtual host yang tepat untuk domain kami, kami dapat menjalankan perintah ini untuk menginstal SSL untuk domain kami fosscloudy.com.

# certbot --apache -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Enabled Apache rewrite module
Waiting for verification...
Cleaning up challenges
Created an SSL vhost at /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Enabling available site: /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf
Deploying Certificate to VirtualHost /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

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): 2
Enabled Apache rewrite module
Redirecting vhost in /etc/apache2/sites-enabled/fosscloudy.com.conf to ssl vhost in /etc/apache2/sites-available/fosscloudy.com-le-ssl.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0002/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- 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 

Prosedur interaktif di atas akan memandu Anda melalui semua informasi yang diperlukan untuk menandatangani/memasang sertifikat untuk domain yang Anda pilih. SSL domain Anda akan diunduh, diinstal, dan dikonfigurasi dengan benar di domain Anda Virtual host secara otomatis dengan eksekusi perintah ini. Sekarang Anda dapat mengakses domain Anda dengan HTTPS dan mengonfirmasi bahwa domain tersebut berfungsi atau memverifikasi status SSL di pemeriksa SSL.

Opsional, jika Anda memiliki beberapa host/domain virtual yang dikonfigurasi, Anda dapat menggunakan perintah di bawah ini untuk menginstal sertifikat SSL untuk mereka.

#certbot --apache 

Certbot akan meminta Anda untuk memilih domain yang disertakan dalam sertifikat baru.

Selanjutnya, jika Anda tidak ingin Certbot menginstal/mengonfigurasi domain Anda secara otomatis Virtual host dengan sertifikat SSL baru, Anda dapat menggunakan perintah berikut untuk membuat sertifikat SSL. Anda dapat mengonfigurasinya secara manual nanti.

#certbot --apache certonly 

Menyiapkan Let's Encrypt SSL certificate di Nginx

Untuk server Anda yang menjalankan server web Nginx, kami dapat menggunakan plugin Certbot Nginx untuk mendapatkan dan menginstal sertifikat SSL secara otomatis. Anda dapat menginstal plugin ini dengan mengeluarkan perintah di bawah ini:

#apt install python-certbot-nginx 

Kami sekarang siap untuk menggunakan alat ini, tetapi untuk mengonfigurasi SSL untuk domain, kami perlu memverifikasi beberapa file konfigurasi Nginx untuk hal yang sama. Untuk menerbitkan sertifikat SSL untuk sebuah domain, Certbot akan mencoba mengambil host virtual domain yang tepat di konfigurasi server Nginx Anda. Dengan asumsi, keberadaan virtual host yang tepat untuk domain kami, kami dapat menjalankan perintah ini untuk menginstal SSL untuk domain kami fosscloudy.com.

# certbot --nginx -d fosscloudy.com -d www.fosscloudy.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A

-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for fosscloudy.com
http-01 challenge for www.fosscloudy.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/fosscloudy.com.conf

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): 2
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf
Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/fosscloudy.com.conf

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://fosscloudy.com and
https://www.fosscloudy.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=fosscloudy.com
https://www.ssllabs.com/ssltest/analyze.html?d=www.fosscloudy.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. 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 

Prosedur interaktif yang cukup jelas ini akan membantu Anda membuat/menginstal/mengonfigurasi sertifikat SSL untuk domain Anda secara otomatis. SSL domain Anda akan diunduh, diinstal, dan dikonfigurasi dengan benar di domain Anda Virtual host secara otomatis dengan eksekusi perintah ini. Sekarang Anda dapat mengakses domain Anda dengan HTTPS dan mengonfirmasinya berfungsi atau memverifikasi status SSL di pemeriksa SSL. Anda dapat mengganti domain saya fosscloudy.com dengan domain Anda dan menjalankan perintah yang sama untuk membuat sertifikat SSL Anda.

Mirip dengan plugin Apache, jika Anda memiliki beberapa host/domain virtual yang dikonfigurasi, Anda dapat menggunakan perintah di bawah ini untuk menginstal sertifikat SSL untuk semuanya.

#certbot --nginx 

Certbot akan meminta Anda untuk memilih domain yang disertakan dalam sertifikat baru.

Selain itu, jika Anda tidak ingin Certbot secara otomatis menginstal/mengonfigurasi domain Anda Virtual host dengan sertifikat SSL baru, Anda dapat menggunakan perintah berikut untuk membuat sertifikat SSL yang nantinya dapat Anda konfigurasikan secara manual.

#certbot --nginx certonly 

Menyiapkan Let's Encrypt Wildcard Certificates menggunakan Certbot

Let's Encrypt baru-baru ini mulai mendukung sertifikat wildcard menggunakan protokol ACME2 baru. Ini berarti Anda dapat memiliki satu sertifikat wildcard seperti *.fosscloudy.com dan menggunakannya di semua sub-domain domain lain seperti docs.fosscloudy.com, blog.fosscloudy.com, mail.fosscloudy.com, dll. sangat mudah untuk mengelola sertifikat untuk banyak sub-domain domain secara efisien. Anda dapat membuat sertifikat SSL wildcard ini untuk fosscloudy.com dengan menjalankan perintah di bawah ini. Anda dapat memodifikasi perintah ini dengan domain pilihan Anda menggantikan fosscloudy.com.

# certbot certonly --manual -d *.fosscloudy.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator manual, Installer None
Obtaining a new certificate
Performing the following challenges:
dns-01 challenge for fosscloudy.com

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com-0001/privkey.pem
Your cert will expire on 2018-09-03. 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"
- 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 

Seperti yang disebutkan dalam prosedur interaktif ini, Ini akan meminta Anda untuk menambahkan catatan TXT tertentu ke catatan DNS Anda. Dalam kasus saya, dilaporkan untuk menyiapkan TXT seperti di bawah ini:

-------------------------------------------------------------------------------
Please deploy a DNS TXT record under the name
_acme-challenge.fosscloudy.com with the following value:

z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk

Before continuing, verify the record is deployed.
-------------------------------------------------------------------------------
Press Enter to Continue 

Di penyedia DNS, Anda akan membuat data TXT DNS baru dengan:

Record Name: _acme-challenge (you may or may not need the .fosscloudy.com suffix depending on your DNS provider.
Record Value: z25SzIfe37x5va0ynh6KdmEYVjjuSvdUOGM_t_twsVk (replace this with the value provided by Certbot) 
  

Simpan pengaturan DNS Anda dan tekan Enter di jendela Certbot untuk memicu pemeriksaan dan menyelesaikan verifikasi. Anda harus menunggu beberapa saat agar data DNS baru menyebar melalui internet. Saya menunggu selama 30 menit dan menekan enter. Anda bahkan dapat menyetel nilai TTL yang lebih rendah untuk mempercepat proses ini.

Selamat!! Sertifikat wildcard untuk domain Anda fosscloudy.com dibuat. Sekarang Anda dapat menggunakan sertifikat wildcard ini dengan sub-domain yang Anda buat untuk nama domain Anda. Sebagai contoh, saya telah membuat sub-domain untuk domain ini yaitu docs.fosscloudy.com. Ini akan menggunakan sertifikat SSL wildcard yang diinstal untuk domain utama. Anda dapat mengakses sub-domain Anda dengan HTTPS di browser dan mengonfirmasi bahwa itu berfungsi.

Perpanjangan otomatis sertifikat SSL

Anda dapat menggunakan salah satu metode yang disebutkan di atas untuk mendapatkan sertifikat SSL Anda. Tetapi semua sertifikat Let's Encrypt ini berumur pendek dan hanya akan berlaku selama 90 hari. Jadi wajib untuk memperbarui sertifikat ini sebelum kedaluwarsa untuk memudahkan fungsi normal situs web Anda. Anda dapat melakukannya secara manual jika perlu atau Anda dapat mengotomatiskan proses ini menggunakan cronjobs atau klien Certbot.

Ketika sertifikat berhasil diinstal dengan eksekusi metode di atas, Anda akan mendapatkan pesan yang mirip dengan ini:

IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/fosscloudy.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/fosscloudy.com/privkey.pem
Your cert will expire on 2018-09-03. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew" 

Pesan ini dengan jelas menyatakan cara memperbarui sertifikat Anda di masa mendatang dengan "certbot renew" perintah.

Mari kita uji proses autorenewal dengan perintah berikut:

#certbot renew 

Perintah ini akan memeriksa apakah SSL domain harus diperbarui dan memperbarui SSL domain yang perlu diperbarui.

Kabar baiknya adalah bahwa paket Certbot di server kami dilengkapi dengan cronjob yang akan memperbarui sertifikat SSL kami secara otomatis sebelum kedaluwarsa. Karena sertifikat Let's Encrypt bertahan selama 90 hari, sangat disarankan untuk memanfaatkan fitur ini.

# cat /etc/cron.d/certbot
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew 

Cron ini akan berjalan dua kali sehari, tetapi tidak akan memperbarui sertifikat kecuali sertifikat akan kedaluwarsa.

Baca Juga:

  • Instal WordPress di Docker LEMP Stack dengan Letsencrypt SSL

Let's Encrypt benar-benar mengubah cara kami membuat, menginstal, dan menggunakan sertifikat SSL. Dengan prosedur otomatisnya menggunakan alat Certbot, Anda dapat melihat betapa mudahnya Anda mendapatkan sertifikat SSL gratis hanya dalam beberapa detik, dari Let's Encrypt dan menginstalnya dalam hitungan menit, secara otomatis. Saya harap artikel ini informatif dan bermanfaat untuk Anda. Silakan kirim komentar dan saran Anda yang berharga tentang ini.


Ubuntu
  1. Cara Menginstal Nextcloud dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04 LTS

  2. Cara Menginstal Magento 2 dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  3. Bagaimana mengelola Lets Encrypt sertifikat SSL/TLS dengan certbot

  1. Cara Menginstal X-Cart dengan Nginx dan Mengenkripsi SSL di Ubuntu 18.04 LTS

  2. Cara Menginstal Drupal dengan Nginx dan Mengenkripsi SSL di Ubuntu 20.04 LTS

  3. Cara menginstal Webmin dan mengamankannya dengan Lets Encrypt SSL di Ubuntu 20.04 LTS

  1. Cara Menginstal Shopware 6 dengan Nginx dan Lets Encrypt SSL di Ubuntu 20.04

  2. Cara Menginstal CMS TYPO3 dengan Lets Encrypt SSL di Ubuntu 20.04

  3. Cara Menginstal ProjectSend dengan Apache dan Lets Encrypt SSL di Ubuntu 20.04