Evgenii Legotckoi
Evgenii LegotckoiҚаң. 22, 2017, 3:05 Т.Ж.

Django - 019-сабақ. Let's Encrypt сайтында HTTPS протоколын орнату

Кеше мен Google -дан бақыт хатын алдым, себебі мен Google іздеу жүйесінде сайттың индекстелуін бақылау үшін Google Search Console пайдаланамын. Хаттың мәні мынада: Google Chrome құпия сөзді қажет ететін беттерде http протоколын пайдаланатын сайттың қауіпсіздігі туралы хабарлайды. Егер сіз менің сайтымда авторизация формасы барлық беттерде орналасқан деп есептесеңіз, онда ескерту сайттың барлық беттерінде болады. Ең жағымды жағдай емес, сондықтан мен тез SSL сертификатын алып, https конфигурациялауым керек болды.

Қазіргі уақытта 90 күн мерзімге тегін сертификаттар беретін Let`s Encrypt сертификаттау орталығы жұмыс істейді. Бұл CA-ға Electronic Frontier Foundation (EFF), Mozilla Foundation, Akamai, Cisco Systems қолдау көрсетеді.

Сертификат алу және орнату процесі автоматтандырылған, бірақ сайт Django және Nginx жүйелерінде жұмыс істейтін жағдайда, Nginx сервер параметрлерінде қосымша жұмыс істеу қажет болады.


Сертификат алу

Сертификат алу және автоматты түрде жаңарту үшін Certbot бағдарламалық құралы пайдаланылады. Let`s encrypt веб-сайтында осы бағдарламалық құралға сілтеме бар, онда операциялық жүйенің түрін және пайдаланылатын серверді таңдауға болады. сайтыңыздағы мазмұнды көрсету. Менің жағдайда бұл Nginx және Ubuntu 16.04 .

Сондай-ақ сертификатты орнату және алу бойынша нұсқаулықтар болады.

Сертификаттау бағдарламалық құралын орнату үшін келесі пәрменді пайдаланыңыз:

sudo apt-get install letsencrypt 

Одан кейін келесі пәрменмен webroot плагинін пайдаланып сертификат алу керек:

sudo letsencrypt certonly --webroot -w /var/www/example -d example.com -d www.example.com 

Сайтыңызды сертификаттауға арналған каталог көрсетілген жағдайда, бұл жағдайда /var/www/example , оны және сертификаттар алатын сәйкес домендерді жасау керек.

Бұл жағдайда бір ескерту бар. Бұл қадамда сіз Nginx конфигурациялауыңыз керек, өйткені /var/www/example каталогында жасырын .well-known каталогы жасалады, ол алу үшін қажет. сертификат. Nginx бастапқы орнату туралы қосымша ақпаратты тиісті мақаладан оқи аласыз.

Сондықтан біз алдымен Nginx параметрін төменде көрсетілгендей конфигурациялап, оны қайта іске қосамыз.

server {
    listen 80;
    listen [::]:80;
    server_name example.com;

    location /.well-known {
        alias /var/www/example/.well-known;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Содан кейін сіз SSL сертификатын сәтті аласыз.

https протоколын орнату

Біз сертификатты алғаннан кейін https протоколын конфигурациялауымыз керек және ол үшін серверде 443 портын ашуымыз керек.

sudo ufw allow 443/tcp

Және Nginx. конфигурациялаңыз.

server {    
    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  

    location /.well-known {
        alias /var/www/example/.well-known;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Бұл жағдайда сіз сертификаттарыңызға жолдарды және сервер қосылымды күтетін порттарды көрсетесіз.

http қосылымын орнату

Пайдаланушылар үшін http протоколы арқылы қосылу мүмкіндігін қалдыру - бұл сізге байланысты, бірақ https бар болса, осы протоколды пайдаланып жұмыс істеу мүмкіндігін қалдырудың мәні неде. пайдаланушы http бар беттерден https** бар бір бетке.

server {
    listen 80;
    listen [::]:80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  


    location /.well-known {
        alias /var/www/example/.well-known;
    }

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Біз Nginx жүйесін қайта іске қосамыз және http арқылы қосылуға тырысқанда, https арқылы қосылуға автоматты түрде қайта бағытталатынымызды тексереміз.

Куәлікті автоматты түрде жаңарту

Сертификатты жаңарту үшін келесі пәрмен пайдаланылады:

letsencrypt renew 

Бірақ процесті cron (белгілі бір уақытта немесе белгілі бір аралықтарда тапсырмаларды орындауға арналған демон бағдарламасы) көмегімен автоматтандыруға болады.

Кронды түбірлік пайдаланушы ретінде өңдеу үшін келесі пәрменді іске қосыңыз:

sudo crontab -e

Сізге ықтимал редакторлар арасында таңдау беріледі, өз қалауыңыз бойынша редакторды таңдаңыз. Мен nano қолданамын. Содан кейін келесі жолды cron. конфигурациясына қойыңыз

30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log

Бұл жағдайда дүйсенбі күні сағат 2:30-да куәлікті жаңарту әрекеті жасалады.

Мазмұнды түзету

Соңғысы - сайттағы барлық сілтемелерді реттеу. Яғни, сайттың ішкі сілтемесі қосымша қайта бағыттаулар жасамауы үшін http-ді https-қа өзгерту керек.

Django үшін Timeweb хостының VDS-сервері ұсынамын.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

ArtDev
  • Маусым 2, 2017, 2:58 Т.Қ.

Добрый день хочу обновить сертификат, но получаю следующее

The following certs are not due for renewal yet: /etc/letsencrypt/live/mysite_ru/fullchain.pem (skipped) No renewals were attempted
. Как правильно обновить сертифика, подскажите? Может что в конфиге поправить?
Evgenii Legotckoi
  • Маусым 3, 2017, 2:34 Т.Ж.

Добрый день. Либо webroot не отработал как следует, либо вы где-то в настройке http накосячили. Смотрите строчки, где указывается путь к ssl сертификату в конфиге nginx.

Пікірлер

Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
Кіріңіз немесе Тіркеліңіз
AD

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:50ұпай,
  • Бағалау ұпайлары-4
m
  • molni99
  • Қаз. 26, 2024, 11:37 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:80ұпай,
  • Бағалау ұпайлары4
m
  • molni99
  • Қаз. 26, 2024, 11:29 Т.Ж.

C++ - Тест 004. Указатели, Массивы и Циклы

  • Нәтиже:20ұпай,
  • Бағалау ұпайлары-10
Соңғы пікірлер
i
innorwallҚар. 14, 2024, 8:09 Т.Қ.
Qt/C++ - 068-сабақ. CLion жүйесінде CMAKE құрастыру жүйесін пайдаланатын Hello World ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
i
innorwallҚар. 14, 2024, 3:05 Т.Қ.
ЖАМАНДЫҚ ЯРЕК. Google reCAPTCHA пайдалану 2001; 98 29 34 priligy buy
i
innorwallҚар. 14, 2024, 1:54 Т.Қ.
Джанго - Сабақ 003. Джангодағы үлгі, үлгі және көрініс Hair follicles are believed to produce approximately 20 individual hair shafts over the life of the follicle as the follicle progresses through cycles of hair production, shedding ejection, invo…
i
innorwallҚар. 14, 2024, 10:03 Т.Ж.
Qt тілінде ойын қалай жазылады - 3-сабақ. Басқа объектілермен әрекеттесу what is priligy tablets What happens during the LASIK surgery process
Енді форумда талқылаңыз
i
innorwallҚар. 14, 2024, 2:39 Т.Қ.
добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
i
innorwallҚар. 11, 2024, 9:55 Т.Қ.
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
9
9AnonimҚаз. 25, 2024, 7:10 Т.Қ.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

Бізді әлеуметтік желілерде бақылаңыз