Како да се обезбеди Nginx со Ајде да шифрираме на CentOS 7


Вовед

Let’s Encrypt е нов орган за сертификати (CA) кој обезбедува начин за добивање и инсталирање бесплатни TLS/SSL сертификати, со што се овозможува шифриран HTTPS на веб-серверите. Го насочува процесот со обезбедување софтверски клиент, Certbot, кој се обидува да ги автоматизира повеќето (ако не и сите) од потребните чекори. Во моментов, целиот процес на добивање и инсталирање сертификат е целосно автоматизиран и на веб-серверите Apache и Nginx.

Во ова упатство, ќе ви покажеме како да го користите certbot Ајде да го шифрираме клиентот за да добиеме бесплатен SSL сертификат и да го користиме со Nginx на CentOS 7. Ќе ви покажеме и како автоматски да го обновите вашиот SSL сертификат .

Предуслови

Пред да го следите ова упатство, ќе ви требаат неколку работи.

  • Сервер CentOS 7 со корисник кој не е root и има привилегии sudo. Можете да научите како да поставите таква корисничка сметка следејќи ги чекорите 1-3 во нашето почетно поставување на серверот за CentOS 7 упатство.
  • Морате да го поседувате или контролирате регистрираното име на домен со кое сакате да го користите сертификатот. Ако веќе немате регистрирано име на домен, може да регистрирате кај еден од многуте регистратори на домени (на пр. Namecheap, GoDaddy итн.).
  • ДНС Запис што го насочува вашиот домен на јавната IP адреса на вашиот сервер. Ова е потребно поради тоа како Let’s Encrypt потврдува дека го поседувате доменот за кој издава сертификат. На пример, ако сакате да добиете сертификат за example.com, тој домен мора да се реши на вашиот сервер за да функционира процесот на валидација. Нашето поставување ќе користи www.example.com како имиња на домени, така што потребни се и двете записи DNS.

Откако ќе ги отстраните сите предуслови, ајде да продолжиме со инсталирање на клиентскиот софтвер Let’s Encrypt.

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

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

Овозможете пристап до складиштето EPEL на вашиот сервер со внесување:

  1. sudo yum install epel-release

Откако складиштето е овозможено, можете да го добиете пакетот certbot-nginx со внесување:

  1. sudo yum install certbot-nginx

Клиентот certbot Let’s Encrypt сега е инсталиран и подготвен за употреба.

Чекор 2 - Поставување Nginx

Ако сè уште не сте го инсталирале Nginx, можете да го сторите тоа сега. Складиштето EPEL веќе треба да биде овозможено од претходниот дел, за да можете да инсталирате Nginx со внесување:

  1. sudo yum install nginx

Потоа, стартувајте го Nginx користејќи systemctl:

  1. sudo systemctl start nginx

Certbot може автоматски да го конфигурира SSL за Nginx, но треба да може да го најде точниот блок сервер во вашата конфигурација. Тоа го прави така што бара директива server_name што одговара на доменот за кој барате сертификат. Ако започнувате со нова инсталација на Nginx, можете да ја ажурирате стандардната конфигурациска датотека користејќи vi или вашиот омилен уредувач на текст:

  1. sudo vi /etc/nginx/nginx.conf

Најдете ја постоечката линија server_name:

server_name _;

Заменете ја долната ознака _ со името на вашиот домен:

server_name example.com www.example.com;

Зачувајте ја датотеката и излезете од уредникот. Ако користите vi, внесете :x, потоа y кога ќе биде побарано, за да зачувате и да излезете. Потврдете ја синтаксата на вашите конфигурациски уредувања со:

  1. sudo nginx -t

Ако работи без грешки, повторно вчитајте го Nginx за да ја вчитате новата конфигурација:

  1. sudo systemctl reload nginx

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

Чекор 3 - Ажурирање на заштитниот ѕид

Ако имате овозможен заштитен ѕид, проверете дали портите 80 и 443 се отворени за дојдовен сообраќај. Ако не користите заштитен ѕид, можете да прескокнете напред.

Ако имате заштитен ѕид заштитен ѕид што работи, можете да ги отворите овие порти со пишување:

  1. sudo firewall-cmd --add-service=http
  2. sudo firewall-cmd --add-service=https
  3. sudo firewall-cmd --runtime-to-permanent

Ако имате заштитен ѕид iptables што работи, командите што треба да ги извршите многу зависат од вашето тековно множество правила. За почетен сет на правила, можете да додадете пристап до HTTP и HTTPS со пишување:

  1. sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
  2. sudo iptables -I INPUT -p tcp -m tcp --dport 443 -j ACCEPT

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

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

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

  1. sudo certbot --nginx -d example.com -d www.example.com

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

Ако ова е вашиот прв пат да го стартувате certbot, ќе ви биде побарано да внесете адреса за е-пошта и да се согласите со условите за користење. Откако ќе го стори тоа, certbot ќе комуницира со серверот Let’s Encrypt, а потоа ќе изврши предизвик за да потврди дека го контролирате доменот за кој барате сертификат. Конфигурацијата ќе се ажурира, а Nginx повторно ќе се вчита за да ги подигне новите поставки. certbot ќе заврши со порака која ќе ви каже дека процесот бил успешен и каде се зачувани вашите сертификати:

Output
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your certificate will expire on 2022-10-20. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - 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:// и забележете го безбедносниот индикатор на вашиот прелистувач. Треба да претставува дека страницата е правилно обезбедена, обично со зелена икона за заклучување.

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

Сертификатите на Let’s Encrypt важат само деведесет дена. Ова е за да ги поттикне корисниците да го автоматизираат нивниот процес на обновување на сертификатот. Ќе треба да поставиме команда за редовно извршување за да провериме дали истекуваат сертификати и да ги обновуваме автоматски.

За да ја извршуваме проверката за обновување секој ден, ќе користиме cron, стандардна системска услуга за извршување на периодични работи. Му кажуваме на cron што да прави со отворање и уредување на датотека наречена crontab.

  1. sudo crontab -e

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

. . .
15 3 * * * /usr/bin/certbot renew --quiet

Делот 15 3 * * * од оваа линија значи \изврши ја следнава команда во 3:15 часот секој ден. Може да изберете во секое време.

Командата обнови за Certbot ќе ги провери сите сертификати инсталирани на системот и ќе ги ажурира сите што се поставени да истечат за помалку од триесет дена. --quiet му кажува на Certbot да не издава информации или да чека за внесување од корисникот.

cron сега ќе ја извршува оваа команда секој ден. Сите инсталирани сертификати автоматски ќе се обноват и повторно ќе се вчитаат кога ќе имаат триесет дена или помалку пред да истечат.

За повеќе информации за тоа како да креирате и закажувате cron работни места, можете да го проверите нашиот Како да го користите Cron за автоматизирање на задачите во водичот VPS.

Заклучок

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