HTTPS (SSL/TLS) qurulması Let's Encrypt istifadə ilə
1. Bu mövzu nə haqqındadır və niyə lazımdır
Müasir dünyada HTTPS artıq bütün saytlar üçün standart halına gəlib. Əgər istəyirsiniz ki, istifadəçiləriniz özlərini təhlükəsiz hiss etsinlər və Google saytınızı axtarış sıralamasında aşağı endirməsin (bəli, HTTPS SEO-ya təsir edir), mütləq SSL/TLS qurmalısınız. HTTPS protokolu istifadəçi ilə server arasında ötürülən məlumatları şifrələmə vasitəsilə qoruyur və bu, məlumatların cinayətkarlar tərəfindən ələ keçirilməsini qeyri-mümkün edir.
Bu mövzuda addım-addım Let's Encrypt vasitəsilə veb-serveriniz üçün HTTPS-i necə pulsuz qoşacağımızı öyrənəcəyik. Let's Encrypt — bu, pulsuz sertifikatlar və onları quraşdırmaq üçün vasitələr təqdim edən nüfuzlu sertifikatlaşdırma mərkəzidir (CA). Həmçinin sertifikatlarımızın müddətini avtomatik olaraq uzatmağı da öyrənəcəyik ki, müddətin bitməsi ilə bağlı baş ağrılarından qurtulaq.
HTTP vs HTTPS
HTTP (Hypertext Transfer Protocol) — məlumat ötürmə protokoludur. Bu protokol pişik memlərinə baxmaq üçün əladır, ANCAQ! Əgər kimsə sizin Wi-Fi şəbəkənizə (məsələn, kafedə) qoşulsa, serverə göndərdiyiniz məlumatları ələ keçirə bilər (dəhşət, sizin şifrəniz "onların şifrəsinə" çevriləcək).
HTTPS (Hypertext Transfer Protocol Secure) — HTTP-nin şifrələməni dəstəkləyən versiyasıdır. Müştəri ilə server arasında ötürülən məlumatlar SSL/TLS (Secure Sockets Layer / Transport Layer Security) vasitəsilə qorunur. Artıq cinayətkarlar məlumat "paketlərinin" içindəkiləri, hətta onları ələ keçirsələr belə, görə bilməyəcəklər.
2. Let's Encrypt və Certbot'un Qurulması
Certbot — Let's Encrypt'in inkişaf etdiricilərindən olan bir alətdir və SSL-sertifikatlarını veb serveriniz üçün asanlıqla əldə edib ayarlamağınıza kömək edir. O qədər ağıllıdır ki, Nginx və ya Apache ilə özü işləyə bilər və bütün çətin işləri bizim yerimizə həll edir. Gəlin quraşdırmaya başlayaq.
Certbot'un Qurulması
Serverinizin yeniləndiyindən əmin olun:
sudo apt-get update
sudo apt-get upgrade
İndi Certbot və onun pluginlərini quraşdırırıq:
Nginx üçün:
sudo apt-get install certbot python3-certbot-nginx
Apache üçün:
sudo apt-get install certbot python3-certbot-apache
Certbot özü sadəcə Python-kodudur və ictimaiyyət tərəfindən aktiv şəkildə dəstəklənir. O, əksər serverlərlə asanlıqla inteqrasiya olunur.
3. Certbot vasitəsilə SSL-sertifikatın alınması
Nginx üçün
Certbot, əgər siz Nginx istifadə edirsinizsə, saytınız üçün avtomatik olaraq HTTPS qurmağınıza kömək edə bilər. Aşağıdakı komandadan istifadə edin:
sudo certbot --nginx
Certbot hazırki virtual host-larınızı (server
blokları konfiqurasiyada) skan edəcək. O soruşacaq ki, hansı domain üçün HTTPS quraşdırmaq istəyirsiniz. Əmin olun ki, domain DNS vasitəsilə sizin serverə yönəltməni (məsələn, A-record ilə) icra edir.
Nümunə çıxış:
Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: example.com
2: www.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Domaininizi seçin (məsələn, 1).
Certbot avtomatik olaraq Nginx konfiqurasiyasını tənzimləyəcək və onu yoxlayacaq. Uğurlu quraşdırmadan sonra siz bu cür mesaj görəcəksiniz:
Təbriklər! Sertifikatınız və zəncir...
İndi saytınız HTTPS üzərindən əlçatandır. Bunu https://example.com ünvanını brauzerinizdə açaraq yoxlaya bilərsiniz.
Apache üçün
Əgər siz Apache istifadə edirsinizsə, komanda bir az fərqli olacaq:
sudo certbot --apache
Certbot həmçinin virtual host-larınızı (<VirtualHost>
blokları) skan edəcək və seçilmiş domainlər üçün HTTPS qurmağı təklif edəcək. Lazımlı olanları seçin və Certbot hər şeyi sizin üçün edəcək.
Proses başa çatdığı zaman siz yenidən təbrik mesajı görəcəksiniz və saytınızın HTTPS üzərindən əlçatan olduğunu yoxlaya bilərsiniz.
4. Sertifikatların avtomatik yenilənməsi
Let's Encrypt sertifikatları sadəcə 90 gün ərzində qüvvədə olur, buna görə onları mütəmadi olaraq yeniləmək lazımdır. Certbot bunu avtomatik edə bilər, amma hər şeyin düzgün qurulduğuna əmin olmalıyıq.
Sertifikatların etibarlılıq müddətinin yoxlanılması
Sertifikatınızın bitmə tarixini yoxlaya bilərsiniz:
sudo certbot certificates
Nəticədə domenləriniz və onların sertifikat müddətlərinin bitmə tarixi göstəriləcək.
Avtomatik yeniləmə qurulması
Certbot quraşdırılması zamanı avtomatik olaraq Cron və ya Systemd Timer-də yeniləmələri yoxlamaq üçün bir tapşırıq əlavə edir. Hər şeyin işlədiyinə əmin olmaq istəyirsinizsə, Cron-da test tapşırığı əlavə edin:
sudo crontab -e
Bu sətiri əlavə edin:
0 0 * * * certbot renew --quiet
Bu komanda sertifikatları hər gecə yarısı yoxlayır və yeniləyir. --quiet
açarı lazım olmayan məlumatların çıxışını söndürür.
Əl ilə yeniləmə
Əgər sertifikatları əl ilə yeniləmək istəyirsinizsə (məsələn, test üçün), bu əmri istifadə edin:
sudo certbot renew
5. HTTP → HTTPS avtomatik yönləndirilmənin aktivləşdirilməsi
Saytınız hələ də HTTP ilə əlçatan ola bilər, amma bu təhlükəsiz deyil. Bütün sorğuları HTTPS-ə yönləndirmək üçün avtomatik yönləndirməni quracağıq.
Nginx üçün
Certbot, sertifikat verildiyi zaman avtomatik olaraq yönləndirməni konfiqurasiya edə bilər. Əgər bunu əvvəl aktiv etməmisinizsə, virtual server konfiqurasiya faylınıza əl ilə yönləndirmə əlavə edin:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
Dəyişiklikləri tətbiq etmək üçün Nginx-i yenidən başladın:
sudo systemctl restart nginx
Apache üçün
Certbot həmçinin avtomatik yönləndirməni aktivləşdirməyi təklif edir. Əgər bu addımı ötürmüsünüzsə, virtual host faylınıza əlavə edin:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://example.com/
</VirtualHost>
Apache-i yenidən başladın:
sudo systemctl restart apache2
6. Səhvlərin tənzimlənməsi
Əgər nəsə səhv gedibsə, loqlara baxmaqdan başlayın:
Nginx üçün
sudo tail -f /var/log/nginx/error.log
Apache üçün
sudo tail -f /var/log/apache2/error.log
Konfiqurasiyanın test edilməsi
Həmçinin, web serverin konfiqurasiyasını yoxlayın:
Nginx üçün:
sudo nginx -t
Apache üçün:
sudo apachectl configtest
HTTPS-in yoxlanılması
Saytınızın HTTPS üzərindən əlçatan olduğundan əmin olun:
curl -I https://example.com
Siz 200 OK
statusunu və Strict-Transport-Security
sətirini görməlisiniz ki, bu da HTTPS-in işlədiyini göstərir.
Artıq təhlükəsiz, qorunan HTTPS saytları yaratmağa hazırsınız. İstifadəçiləriniz məmnun qalacaq, Google - də həmçinin, və siz internetin pis adamlarından məlumatlarınızın qorunduğunu bilə-bilə rahat yatacaqsınız.
GO TO FULL VERSION