🔐Ubuntu 20.04 da Let's Encrypt yordamida Apache-ni qanday himoyalash mumkin
// Qo'llanma //
Kirish
Let's Encrypt - bu bepul TLS/SSL sertifikatlarini olish va o'rnatishni osonlashtiradigan va shu bilan veb-serverlarda shifrlangan HTTPS-ni yoqadigan sertifikat organi (CA). Bu talab qilinadigan qadamlarning ko'pini (agar hammasi bo'lmasa ham) avtomatlashtirishga harakat qiladigan Certbot dasturiy mijozini taqdim etish orqali jarayonni soddalashtiradi. Hozirgi vaqtda sertifikat olish va o'rnatishning butun jarayoni ham Apache, ham Nginx-da to'liq avtomatlashtirilgan.
Ushbu qo'llanmada biz Ubuntu 20.04 da Apache uchun bepul SSL sertifikatini olish uchun Certbot -dan foydalanamiz va bu sertifikat avtomatik ravishda yangilanadigan qilib sozlanganligiga ishonch hosil qilamiz.
Ushbu qo'llanmada Let's Encrypt tomonidan himoyalanadigan veb-saytni sozlash uchun Apache standart konfiguratsiya fayli o'rniga alohida virtual xost faylidan foydalaniladi. Serverda joylashgan har bir domen uchun yangi Apache virtual xost fayllarini yaratishni tavsiya qilamiz , chunki bu keng tarqalgan xatolardan qochishga yordam beradi va standart konfiguratsiya fayllarini zaxira o'rnatish sifatida saqlaydi.
Shartlar
Ushbu qo'llanmani bajarish uchun sizga kerak bo'ladi:
Bitta Ubuntu 20.04 serveri Ubuntu 20.04 oʻquv qoʻllanmasi uchun ushbu dastlabki server sozlamalariga rioya qilish orqali oʻrnatildi , jumladan sudo root boʻlmagan foydalanuvchi va xavfsizlik devori.
To'liq ro'yxatdan o'tgan domen nomi. Ushbu qoʻllanmada sizning_domeningizdan namuna sifatida foydalaniladi. Siz Namecheap -da domen nomini sotib olishingiz, Freenom -da bepul olishingiz yoki o'zingiz tanlagan domen registratoridan foydalanishingiz mumkin.
Quyidagi ikkala DNS yozuvlari serveringiz uchun o'rnatilgan. Siz ularni qanday qo'shish haqida batafsil ma'lumot olish uchun DigitalOcean DNS-ga kirishni kuzatishingiz mumkin.
your_domain
Serveringizning umumiy IP manziliga ishora qiluvchi A yozuvi .Serveringizning umumiy IP manziliga ishora qiluvchi A yozuvi .
www.
your_domain
Apache Ubuntu 20.04-da Apache-ni qanday o'rnatish bo'yicha quyidagi orqali o'rnatildi . Domeningiz uchun virtual xost fayli mavjudligiga ishonch hosil qiling. Ushbu qo'llanma misol sifatida ishlatiladi.
/etc/apache2/sites-available/
your_domain
.conf
1-qadam - Certbotni o'rnatish
Let's Encrypt bilan SSL sertifikatini olish uchun avvalo serveringizga Certbot dasturini o'rnatishimiz kerak bo'ladi. Buning uchun standart Ubuntu paketi omborlaridan foydalanamiz.
Bizga ikkita paket kerak: certbot
, va python3-certbot-apache
. Ikkinchisi Certbot-ni Apache bilan birlashtirgan plagin bo'lib, bitta buyruq bilan sertifikat olishni va veb-serveringizda HTTPS-ni sozlashni avtomatlashtirish imkonini beradi.
$ sudo apt install certbot python3-certbot-apache
O'rnatishni tasdiqlash so'raladi Y
, keyin ni bosing ENTER
.
Certbot endi serveringizga o'rnatildi. Keyingi bosqichda virtual xostingiz toʻgʻri oʻrnatilganligiga ishonch hosil qilish uchun Apache konfiguratsiyasini tekshiramiz. Bu certbot
mijoz skripti sizning domenlaringizni aniqlay olishini va yangi yaratilgan SSL sertifikatingizdan avtomatik ravishda foydalanish uchun veb-serveringizni qayta sozlashini ta'minlaydi.
2-qadam - Apache virtual xost konfiguratsiyasini tekshirish
Veb-serveringiz uchun SSL-ni avtomatik ravishda olish va sozlash imkoniyatiga ega bo'lish uchun Certbot sizning Apache konfiguratsiya fayllaringiz ichida to'g'ri virtual xostni topishi kerak. Sizning server domen nomingiz(lar) ingiz konfiguratsiya blokida belgilangan ServerName
va direktivalaridan olinadi.ServerAliasVirtualHost
Agar siz Apache oʻrnatish boʻyicha qoʻllanmada virtual xostni oʻrnatish bosqichiga amal qilgan boʻlsangiz, domeningiz uchun VirtualHost blokiga ega boʻlishingiz va tegishli ravishda oʻrnatilgan koʻrsatmalarga ega boʻlishingiz kerak./etc/apache2/sites-available/
your_domain
.confServerNameServerAlias
Buni tekshirish uchun domeningiz uchun virtual xost faylini nano
yoki siz tanlagan matn muharriri yordamida oching:
$ sudo nano /etc/apache2/sites-available/your_domain.conf
ServerName
Mavjud va ServerAlias
qatorlarni toping . Ular shunday ko'rinishi kerak:
... ServerName your_domain ServerAlias www.your_domain ...
Agar sizda allaqachon mavjud bo'lsa ServerName
va ServerAlias
shunday sozlangan bo'lsa, matn muharriridan chiqib, keyingi bosqichga o'tishingiz mumkin. dan foydalanayotgan bo'lsangiz , tasdiqlash uchun , keyin va nano
tugmalarini terish orqali chiqishingiz mumkin .CTRL+XYENTER
Agar joriy virtual xost konfiguratsiyasi misolga mos kelmasa, uni mos ravishda yangilang. Ishingiz tugagach, faylni saqlang va tahrirlovchidan chiqing. Keyin o'zgarishlarni tasdiqlash uchun quyidagi buyruqni bajaring:
$ sudo apache2ctl configtest
Syntax OK
Javob sifatida siz javob olishingiz kerak . Xatoga duch kelsangiz, virtual xost faylini qayta oching va matn terish xatosi yoki etishmayotgan belgilarni tekshiring. Konfiguratsiya faylingiz sintaksisi to'g'ri bo'lsa, o'zgarishlar kuchga kirishi uchun Apache-ni qayta yuklang:
$ sudo systemctl reload apache2
Ushbu o'zgarishlar bilan Certbot to'g'ri VirtualHost blokini topishi va uni yangilashi mumkin bo'ladi.
Keyinchalik, HTTPS trafigiga ruxsat berish uchun xavfsizlik devorini yangilaymiz.
3-qadam - Xavfsizlik devori orqali HTTPS-ga ruxsat berish
Agar sizda UFW xavfsizlik devori yoqilgan bo'lsa, zarur qo'llanmalar tavsiya qilganidek, HTTPS trafikiga ruxsat berish uchun sozlamalarni o'zgartirishingiz kerak bo'ladi. O'rnatishdan so'ng, Apache bir nechta turli UFW dastur profillarini ro'yxatdan o'tkazadi. Biz serveringizda HTTP va HTTPS trafigiga ruxsat berish uchun Apache Full profilidan foydalanishimiz mumkin.
Hozirda serveringizda qanday trafikka ruxsat berilganligini tekshirish uchun siz quyidagilarni foydalanishingiz mumkin:
$ sudo ufw status
Agar siz Apache oʻrnatish qoʻllanmalarimizdan biriga amal qilgan boʻlsangiz, chiqishingiz shunday koʻrinishi kerak, yaʼni 80
hozirda portda faqat HTTP trafigiga ruxsat berilgan:
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)
HTTPS trafigiga qoʻshimcha ruxsat berish uchun “Apache Full” profiliga ruxsat bering va ortiqcha “Apache” profilini oʻchiring:
$ sudo ufw allow 'Apache Full'
$ sudo ufw delete allow 'Apache'
Sizning holatingiz endi shunday ko'rinadi:
$ sudo ufw status
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache Full (v6) ALLOW Anywhere (v6)
Endi siz Certbotni ishga tushirishga va sertifikatlaringizni olishga tayyorsiz.
4-qadam - SSL sertifikatini olish
Certbot plaginlar orqali SSL sertifikatlarini olishning turli usullarini taqdim etadi. Apache plagini Apache-ni qayta sozlash va kerak bo'lganda konfiguratsiyani qayta yuklash bilan shug'ullanadi. Ushbu plagindan foydalanish uchun quyidagilarni kiriting:
$ sudo certbot --apache
Ushbu skript sizni SSL sertifikatingizni sozlash uchun bir qator savollarga javob berishni taklif qiladi. Birinchidan, u sizdan to'g'ri elektron pochta manzilini so'raydi. Bu e-pochta yangilash bildirishnomalari va xavfsizlik bildirishnomalari uchun ishlatiladi:
OutputSaving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator apache, Installer apache Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): you@your_domain
Yaroqli elektron pochta manzilini kiritganingizdan so'ng ENTER
, keyingi bosqichga o'tish uchun bosing. Shundan so‘ng sizdan Let's Encrypt xizmat shartlariga roziligingizni tasdiqlash so‘raladi. Siz tugmani bosib tasdiqlashingiz mumkin A
va keyin ENTER
:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A
Keyin sizdan yangiliklar va boshqa maʼlumotlarni olish uchun elektron pochtangizni Electronic Frontier Foundation bilan baham koʻrishni xohlaysizmi, deb soʻraladi. Agar ularning mazmuniga obuna bo'lishni xohlamasangiz, yozing N
. Aks holda, yozing Y
. Keyin, ENTER
keyingi bosqichga o'tish uchun bosing.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: N
Keyingi qadam sizdan Certbot-ga HTTPS-ni qaysi domenlar uchun faollashtirmoqchi ekanligingizni bildirishingizni taklif qiladi. ServerName
Ro'yxatda keltirilgan domen nomlari avtomatik ravishda Apache virtual xost konfiguratsiyasidan olinadi, shuning uchun virtual xostingizda to'g'ri va ServerAlias
sozlamalar sozlanganligiga ishonch hosil qilish muhimdir . Agar roʻyxatdagi barcha domen nomlari uchun HTTPS-ni yoqmoqchi boʻlsangiz (tavsiya etiladi), soʻrovni boʻsh qoldirib, ENTER
davom etish uchun bosing. Aks holda, vergul va/yoki boʻshliqlar bilan ajratilgan har bir tegishli raqamni roʻyxatlash orqali HTTPS-ni yoqmoqchi boʻlgan domenlarni tanlang, soʻng tugmasini bosing ENTER
.
Which names would you like to activate HTTPS for? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: your_domain 2: www.your_domain - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown (Enter 'c' to cancel):
Siz shunday chiqishni ko'rasiz:
Obtaining a new certificate Performing the following challenges: http-01 challenge for your_domain http-01 challenge for www.your_domain Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/your_domain-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf Enabling available site: /etc/apache2/sites-available/your_domain-le-ssl.conf Deploying Certificate to VirtualHost /etc/apache2/sites-available/your_domain-le-ssl.conf
Keyinchalik, sizdan HTTP trafigini HTTPSga yo'naltirishni xohlaysizmi yoki yo'qligini tanlashingiz so'raladi. Amalda, bu shuni anglatadiki, kimdir shifrlanmagan kanallar (HTTP) orqali veb-saytingizga tashrif buyursa, ular avtomatik ravishda veb-saytingizning HTTPS manziliga yo'naltiriladi. 2
Qayta yo'naltirishni yoqishni tanlang yoki 1
HTTP va HTTPS-ni veb-saytingizga kirishning alohida usullari sifatida saqlamoqchi bo'lsangiz.
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
Ushbu bosqichdan so'ng, Certbot konfiguratsiyasi tugallanadi va sizga yangi sertifikatingiz, yaratilgan fayllarni qayerda joylashtirish va sertifikatingizning haqiqiyligini tahlil qiluvchi tashqi vosita yordamida konfiguratsiyangizni qanday tekshirish haqida yakuniy izohlar taqdim etiladi:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://your_domain and https://www.your_domain You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=your_domain https://www.ssllabs.com/ssltest/analyze.html?d=www.your_domain - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-27. 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
Sizning sertifikatingiz endi o'rnatildi va Apache konfiguratsiyasiga yuklandi. https://
Brauzeringiz xavfsizlik indikatoridan foydalanib veb-saytingizni qayta yuklashga harakat qiling . Shuni ta'kidlash kerakki, sizning saytingiz to'g'ri himoyalangan, odatda manzil satriga qulf belgisini qo'shish orqali.
Sertifikat bahosini tekshirish va tashqi xizmat nuqtai nazaridan u haqida batafsil ma'lumot olish uchun SSL Labs Server Testidan foydalanishingiz mumkin .
Keyingi va oxirgi bosqichda biz Certbot-ning avtomatik yangilanish xususiyatini sinab ko'ramiz, bu sizning sertifikatingiz amal qilish muddati tugagunga qadar avtomatik ravishda yangilanishini kafolatlaydi.
5-qadam — Certbotning avtomatik yangilanishini tekshirish
Let's Encrypt sertifikatlari faqat to'qson kun davomida amal qiladi. Bu foydalanuvchilarni sertifikatni yangilash jarayonini avtomatlashtirishga undash, shuningdek, noto‘g‘ri foydalanilgan sertifikatlar yoki o‘g‘irlangan kalitlarning muddati tezroq tugashini ta’minlash uchundir.
Biz certbot
o'rnatgan paket yangilanish skriptini qo'shish orqali yangilanishlar bilan shug'ullanadi, bu xizmat /etc/cron.d
tomonidan boshqariladi . Ushbu skript kuniga ikki marta ishlaydi va muddati tugaganidan keyin o'ttiz kun ichida bo'lgan har qanday sertifikat avtomatik ravishda yangilanadi.systemctlcertbot.timer
Ushbu xizmatning holatini tekshirish va uning faol va ishlayotganligiga ishonch hosil qilish uchun siz quyidagilarni foydalanishingiz mumkin:
$ sudo systemctl status certbot.timer
Siz shunga o'xshash natijani olasiz:
Output● certbot.timer - Run certbot twice daily Loaded: loaded (/lib/systemd/system/certbot.timer; enabled; vendor preset: enabled) Active: active (waiting) since Tue 2020-04-28 17:57:48 UTC; 17h ago Trigger: Wed 2020-04-29 23:50:31 UTC; 12h left Triggers: ● certbot.service Apr 28 17:57:48 fine-turtle systemd[1]: Started Run certbot twice daily.
Yangilash jarayonini sinab ko'rish uchun siz quyidagi bilan quruq ishga tushirishingiz mumkin certbot
:
$ sudo certbot renew --dry-run
Hech qanday xato ko'rmasangiz, hamma narsa tayyor. Zarur bo'lganda, Certbot sertifikatlaringizni yangilaydi va o'zgarishlarni qabul qilish uchun Apache-ni qayta yuklaydi. Agar avtomatik yangilash jarayoni muvaffaqiyatsiz tugasa, Let's Encrypt siz ko'rsatgan elektron pochta manziliga sertifikatning amal qilish muddati tugashi haqida ogohlantiruvchi xabar yuboradi.
Xulosa
Ushbu qo'llanmada siz Let's Encrypt mijozini certbot
o'rnatdingiz, domeningiz uchun SSL sertifikatini sozladingiz va o'rnatdingiz hamda Certbotning avtomatik yangilash xizmati ichida faol ekanligini tasdiqladingiz systemctl
. Certbot-dan foydalanish bo'yicha qo'shimcha savollaringiz bo'lsa, ularning hujjatlari boshlash uchun yaxshi joy.
Last updated
Was this helpful?