CodeGym /Kurslar /Docker SELF /HTTPS (SSL/TLS) qurulması Let's Encrypt istifadə ilə

HTTPS (SSL/TLS) qurulması Let's Encrypt istifadə ilə

Docker SELF
Səviyyə , Dərs
Mövcuddur

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.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION