Како да се обезбеди Apache со Let's Encrypt на Debian 11


Вовед

Certbot, кој се обидува да ги автоматизира повеќето (ако не и сите) од потребните чекори. Во моментов, целиот процес на добивање и инсталирање сертификат е целосно автоматизиран и на Apache и на Nginx.

Во ова упатство, ќе го користите Certbot за да добиете бесплатен SSL сертификат за Apache на Debian 11 и да го поставите вашиот сертификат да се обновува автоматски.

Ова упатство ќе користи посебна датотека за виртуелен домаќин на Apache наместо стандардната конфигурациска датотека. Препорачуваме да креирате нови датотеки за виртуелен домаќин на Apache за секој домен бидејќи помага да се избегнат вообичаени грешки и ги одржува стандардните датотеки како резервна конфигурација.

Предуслови

За да го следите ова упатство, ќе ви треба:

  • Еден Debian 11 сервер е поставен со следење на ова почетно поставување сервер за Debian 11 туторијал, вклучувајќи корисник кој не еroot со привилегии sudo и заштитен ѕид.
  • Целосно регистрирано име на домен. Ова упатство ќе го користи your_domain како пример насекаде. Можете да купите име на домен на Freenom или да користите регистратор на домен по ваш избор.
  • Двете следни записи за DNS поставени за вашиот сервер. За да ги поставите овие, можете да ги следите овие упатства за креирање записи DNS.
    • Запис со your_domain што укажува на јавната IP адреса на вашиот сервер.
    • Запис со www.your_domain што укажува на јавната IP адреса на вашиот сервер.

    Apache е инсталиран со следење на датотеката за виртуелен домаќин поставен за вашиот домен. Ова упатство ќе користи /etc/apache2/sites-available/your_domain.conf како пример.

    Чекор 1 - Инсталирање Certbot

    Првиот чекор за користење на Let’s Encrypt за да се добие SSL сертификат е да го инсталирате софтверот Certbot на вашиот сервер.

    Забелешка: ова упатство го следи snappy, менаџер на пакети развиен за Linux системи кој инсталира пакети во формат наречен snaps. Може да го инсталирате Certbot од стандардните складишта на Debian користејќи apt, но ова ќе инсталира постара верзија (верзија 1.12.0) од Certbot snap (верзија 1.29.0, најновата верзија од ова пишување) .

    За да го инсталирате Certbot како snap на Debian, прво мора да имате инсталирано snapd на вашиот сервер. snapd е демон потребен за инсталирање, користење и управување со snaps. Инсталирањето на пакетот snapd ќе ја инсталира и командата snap на вашиот сервер.

    За да инсталирате snapd, ажурирајте го вашиот локален индекс на пакети ако не сте го направиле тоа неодамна:

    1. sudo apt update

    Потоа инсталирајте го пакетот snapd:

    1. sudo apt install snapd

    Откако ќе ја извршите оваа команда, ќе има известување за да потврдите дека сакате да инсталирате snapd и неговите зависности. Може да се согласите со притискање на Y и потоа ENTER.

    Следно, користете ја командата snap за да го инсталирате snap core. Ова ќе инсталира некои зависности на вашиот сервер кои се потребни за секој snap што го инсталирате, вклучувајќи го и Certbot snap:

    1. sudo snap install core

    Потоа, освежете го прилепувањето core. Со тоа ќе се осигурате дека ги имате инсталирано најновите верзии на snapd и неговите зависности:

    1. sudo snap refresh core

    Имајте предвид дека прилепувањата може да се инсталираат под едно од трите нивоа на затворање кои обезбедуваат различни степени на изолација од вашиот систем. На пример, повеќето снимки стандардно се инсталирани под нивото на ограничување --strict што ги спречува овие програми да пристапат до датотеките или мрежата на вашиот систем. Бидејќи на Certbot мора да му биде дозволено да уредува одредени конфигурациски датотеки за правилно да ги постави сертификатите, оваа команда ја вклучува опцијата --classic. Ова ниво на затворање им овозможува на сите снимки инсталирани под него ист пристап до системските ресурси како традиционалните пакети.

    Имајќи го ова на ум, можете да го инсталирате snap certbot со следнава команда.

    1. sudo snap install --classic certbot

    Овој процес на инсталација ќе го инсталира извршниот certbot во директориумот /snap/bin/. Направете симболична врска до оваа датотека во директориумот /usr/bin/ за да се осигурате дека можете да ја извршите командата certbot каде било на вашиот систем:

    1. sudo ln -s /snap/bin/certbot /usr/bin/certbot

    Certbot сега е подготвен за употреба, но за да може да го конфигурира SSL за Apache, треба да потврдите дали Apache-то е правилно конфигуриран.

    Чекор 2 - Поставување на SSL сертификат

    Certbot треба да може да го најде точниот виртуелен хост во вашата конфигурација на Apache за тој автоматски да го конфигурира SSL. Поточно, тоа го прави со пребарување на директива ServerName што одговара на доменот за кој барате сертификат.

    Ако го следевте чекорот за поставување виртуелен хост во упатството за инсталација на Apache, треба да имате блок VirtualHost за вашиот домен на /etc/apache2/sites-available/your_domain.conf со директивата ServerName веќе соодветно поставена.

    За да проверите, отворете ја датотеката за виртуелен домаќин за вашиот домен користејќи nano или вашиот омилен уредувач на текст:

    1. sudo nano /etc/apache2/sites-available/your_domain.conf

    Најдете ја постоечката линија Име на сервер. Треба да биде како следново, со сопствено име на домен наместо your_domain:

    ...
    ServerName your_domain;
    ...
    

    Ако веќе не е, ажурирајте ја директивата ServerName за да укаже на името на вашиот домен. Потоа зачувајте ја датотеката и излезете од уредникот. Ако сте користеле nano, направете го тоа со притискање на CTRL + X, Y, потоа ENTER.

    Следно, потврдете ја синтаксата на вашите конфигурациски уредувања:

    1. sudo apache2ctl configtest

    Ако нема синтаксички грешки, вашиот излез ќе го врати следново:

    Output
    . . . Syntax OK

    Ако добиете грешка, повторно отворете ја датотеката за виртуелен домаќин и проверете дали има печатни грешки или знаци што недостасуваат. Откако синтаксата на вашата конфигурациска датотека е точна, повторно вчитајте го Apache за да ја вчитате новата конфигурација:

    1. sudo systemctl reload apache2

    Certbot сега може да го најде точниот блок VirtualHost и да го ажурира.

    Следно, ајде да го ажурираме заштитниот ѕид за да дозволиме сообраќај HTTPS.

    Чекор 3 - Дозволување на HTTPS преку заштитниот ѕид

    Ако го имате овозможено заштитниот ѕид ufw, како што е препорачано во водичот за предуслов, ќе треба да ги приспособите поставките за да овозможите сообраќај HTTPS. За среќа, кога е инсталиран на Debian, ufw доаѓа спакуван со неколку профили кои помагаат во процесот на менување на правилата за заштитен ѕид за сообраќајот HTTP и HTTPS.

    Можете да ја потврдите тековната поставка со извршување на:

    1. sudo ufw status

    Ако го следевте чекор 2 од нашиот водич за Како да инсталирате Apache на Debian 11, излезот од оваа команда ќе биде како што следува, што покажува дека само сообраќајот HTTP е дозволен до веб-серверот:

    Output
    Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

    За да дозволите сообраќај HTTPS, дозволете го профилот \WWW Full и избришете го вишокот додаток \WWW на профилот:

    1. sudo ufw allow 'WWW Full'
    2. sudo ufw delete allow 'WWW'

    Вашиот статус сега треба да биде следниот:

    1. sudo ufw status
    Output
    Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW Full ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW Full (v6) ALLOW Anywhere (v6)

    Следно, да го извршиме Certbot и да ги преземеме нашите сертификати.

    Чекор 4 - Добивање SSL сертификат

    Certbot обезбедува различни начини за добивање SSL сертификати преку приклучоци. Приклучокот Apache ќе се грижи за реконфигурирање на Apache и повторно вчитување на конфигурацијата секогаш кога е потребно. За да го користите овој приклучок, извршете го следново:

    1. sudo certbot --apache -d your_domain -d www.your_domain

    Ова го извршува certbot со додатокот --apache, користејќи -d за да ги наведете имињата за кои сакате сертификатот да биде валиден.

    Ако ова е вашиот прв пат да користите certbot, ќе ви биде побарано да внесете адреса за е-пошта и да се согласите со условите за користење. Дополнително, ќе ве праша дали сте спремни да ја споделите вашата адреса за е-пошта со Electronic Frontier Foundation, непрофитна организација која се залага за дигитални права и исто така е производител на Certbot. Слободно внесете Y за да ја споделите вашата адреса на е-пошта или N за да одбиете.

    Откако ќе го стори тоа, certbot ќе комуницира со серверот Let’s Encrypt, а потоа ќе изврши предизвик за да потврди дека го контролирате доменот за кој барате сертификат.

    Ако тоа е успешно, конфигурацијата ќе се ажурира автоматски и Apache ќе се вчита повторно за да ги подигне новите поставки. certbot ќе заврши со порака која ќе ви каже дека процесот бил успешен и каде се зачувани вашите сертификати:

    Output
    Successfully received certificate. Certificate is saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Key is saved at: /etc/letsencrypt/live/your_domain/privkey.pem This certificate expires on 2022-10-31. These files will be updated when the certificate renews. Certbot has set up a scheduled task to automatically renew this certificate in the background. Deploying certificate Successfully deployed certificate for your_domain to /etc/apache2/sites-available/your_domain-le-ssl.conf Successfully deployed certificate for www.your_domain to /etc/apache2/sites-available/your_domain-le-ssl.conf Congratulations! You have successfully enabled HTTPS on https://your_domain and https://www.your_domain - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Вашите сертификати се преземаат, инсталираат и вчитуваат. Обидете се повторно да ја вчитате вашата веб-локација користејќи https:// и забележете го безбедносниот индикатор на вашиот прелистувач. Треба да означи дека страницата е правилно обезбедена, обично со зелена икона за заклучување. Ако го тестирате вашиот сервер користејќи го SSL Labs Server Test, тој ќе добие оценка A.

    Ајде да завршиме со тестирање на процесот на обновување.

    Чекор 5 - Потврдување на автоматско обновување на Certbot

    Ајде да криптираме сертификатите важат само деведесет дена. Ова е за да ги поттикне корисниците да го автоматизираат нивниот процес на обновување на сертификатот. Пакетот certbot што го инсталиравте се грижи за ова наместо вас со додавање на обнова скрипта на /etc/cron.d. Оваа скрипта работи два пати на ден и автоматски ќе го обнови секој сертификат што е во рок од триесет дена од истекувањето.

    За да го тестирате процесот на обновување, можете да направите суво возење со certbot:

    1. sudo certbot renew --dry-run

    Ако не примите грешки, сè сте подготвени. Кога е потребно, Certbot ќе ги обнови вашите сертификати и ќе го вчита Apache-то за да ги подигне промените. Ако автоматизираниот процес на обновување некогаш не успее, Let’s Encrypt ќе испрати порака на е-поштата што ја наведовте, предупредувајќи ве кога вашиот сертификат ќе истече.

    Заклучок

    Во ова упатство, го инсталиравте клиентот Let’s Encrypt certbot, преземавте SSL сертификати за вашиот домен, го конфигуриравте Apache да ги користи овие сертификати и поставивте автоматско обновување на сертификатот. Ако имате дополнителни прашања за користење на Certbot, нивната документација е добро место за почеток.