Како да се обезбеди 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
, ажурирајте го вашиот локален индекс на пакети ако не сте го направиле тоа неодамна:- sudo apt update
Потоа инсталирајте го пакетот
snapd
:- sudo apt install snapd
Откако ќе ја извршите оваа команда, ќе има известување за да потврдите дека сакате да инсталирате
snapd
и неговите зависности. Може да се согласите со притискање наY
и потоаENTER
.Следно, користете ја командата
snap
за да го инсталирате snapcore
. Ова ќе инсталира некои зависности на вашиот сервер кои се потребни за секој snap што го инсталирате, вклучувајќи го и Certbot snap:- sudo snap install core
Потоа, освежете го прилепувањето
core
. Со тоа ќе се осигурате дека ги имате инсталирано најновите верзии наsnapd
и неговите зависности:- sudo snap refresh core
Имајте предвид дека прилепувањата може да се инсталираат под едно од трите нивоа на затворање кои обезбедуваат различни степени на изолација од вашиот систем. На пример, повеќето снимки стандардно се инсталирани под нивото на ограничување
--strict
што ги спречува овие програми да пристапат до датотеките или мрежата на вашиот систем. Бидејќи на Certbot мора да му биде дозволено да уредува одредени конфигурациски датотеки за правилно да ги постави сертификатите, оваа команда ја вклучува опцијата--classic
. Ова ниво на затворање им овозможува на сите снимки инсталирани под него ист пристап до системските ресурси како традиционалните пакети.Имајќи го ова на ум, можете да го инсталирате snap
certbot
со следнава команда.- sudo snap install --classic certbot
Овој процес на инсталација ќе го инсталира извршниот
certbot
во директориумот/snap/bin/
. Направете симболична врска до оваа датотека во директориумот/usr/bin/
за да се осигурате дека можете да ја извршите командатаcertbot
каде било на вашиот систем:- 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
или вашиот омилен уредувач на текст:- sudo nano /etc/apache2/sites-available/your_domain.conf
Најдете ја постоечката линија
Име на сервер
. Треба да биде како следново, со сопствено име на домен наместоyour_domain
:... ServerName your_domain; ...
Ако веќе не е, ажурирајте ја директивата
ServerName
за да укаже на името на вашиот домен. Потоа зачувајте ја датотеката и излезете од уредникот. Ако сте користелеnano
, направете го тоа со притискање наCTRL + X
,Y
, потоаENTER
.Следно, потврдете ја синтаксата на вашите конфигурациски уредувања:
- sudo apache2ctl configtest
Ако нема синтаксички грешки, вашиот излез ќе го врати следново:
Output. . . Syntax OKАко добиете грешка, повторно отворете ја датотеката за виртуелен домаќин и проверете дали има печатни грешки или знаци што недостасуваат. Откако синтаксата на вашата конфигурациска датотека е точна, повторно вчитајте го Apache за да ја вчитате новата конфигурација:
- sudo systemctl reload apache2
Certbot сега може да го најде точниот блок
VirtualHost
и да го ажурира.Следно, ајде да го ажурираме заштитниот ѕид за да дозволиме сообраќај HTTPS.
Чекор 3 - Дозволување на HTTPS преку заштитниот ѕид
Ако го имате овозможено заштитниот ѕид
ufw
, како што е препорачано во водичот за предуслов, ќе треба да ги приспособите поставките за да овозможите сообраќај HTTPS. За среќа, кога е инсталиран на Debian,ufw
доаѓа спакуван со неколку профили кои помагаат во процесот на менување на правилата за заштитен ѕид за сообраќајот HTTP и HTTPS.Можете да ја потврдите тековната поставка со извршување на:
- sudo ufw status
Ако го следевте чекор 2 од нашиот водич за Како да инсталирате Apache на Debian 11, излезот од оваа команда ќе биде како што следува, што покажува дека само сообраќајот HTTP е дозволен до веб-серверот:
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)За да дозволите сообраќај HTTPS, дозволете го профилот \WWW Full и избришете го вишокот додаток \WWW на профилот:
- sudo ufw allow 'WWW Full'
- sudo ufw delete allow 'WWW'
Вашиот статус сега треба да биде следниот:
- sudo ufw status
OutputStatus: 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 и повторно вчитување на конфигурацијата секогаш кога е потребно. За да го користите овој приклучок, извршете го следново:
- 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
ќе заврши со порака која ќе ви каже дека процесот бил успешен и каде се зачувани вашите сертификати:OutputSuccessfully 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
:- sudo certbot renew --dry-run
Ако не примите грешки, сè сте подготвени. Кога е потребно, Certbot ќе ги обнови вашите сертификати и ќе го вчита Apache-то за да ги подигне промените. Ако автоматизираниот процес на обновување некогаш не успее, Let’s Encrypt ќе испрати порака на е-поштата што ја наведовте, предупредувајќи ве кога вашиот сертификат ќе истече.
Заклучок
Во ова упатство, го инсталиравте клиентот Let’s Encrypt
certbot
, преземавте SSL сертификати за вашиот домен, го конфигуриравте Apache да ги користи овие сертификати и поставивте автоматско обновување на сертификатот. Ако имате дополнителни прашања за користење на Certbot, нивната документација е добро место за почеток. - Запис со