Конфигурация Nginx использует certbot для автоматической подачи заявки на сертификаты HTTPS.
Ван Сяньсен2024-06-272024-06-27
В сегодняшней среде Интернета,веб-сайтиз Безопасность Секс привлекает все больше и больше внимания。HTTPS Будучи протоколом, обеспечивающим зашифрованную связь и проверяющим подлинность веб-сайта, он стал основным стандартом безопасности веб-сайтов. Однако многие платформы предлагают HTTPS Сертификаты часто имеют срок действия.,напримерТенсент Облакождать В настоящее время платформа предоставляетиз Сертификаттолько3месяцыиз Срок действия。Это не только увеличивает Сертификатуправлятьизсложность,Доступ к веб-сайту также может быть прерван из-за истечения срока действия сертификата.
Чтобы решить эту проблему,мы можем использоватьCertbot
Это мощноиз工具来自动申请иуправлять HTTPS Сертификат。Certbot
это программное обеспечение с открытым исходным кодом,это может пройтиавтоматизацияизпуть отLet's Encrypt
ждать Сертификаторган, выдавший документ(CA)
Получите и установите HTTPS Сертификат。более важныйизда,Эти сертификаты взяты бесплатно,и может оставаться активным в течение длительного времени благодаря автоматическому продлению.。Certbot
Поддержка несколькихсервери платформа,включатьApache
、Nginx
ждать。
Сначала вам необходимо установить его на свой сервер. Certbot
。Конкретный способ установки зависит от вас.использоватьиздействоватьсистемаиWebсерверпрограммное обеспечение。вы можете посетитьCertbotизчиновниквеб-сайт https://certbot.eff.org/ Получите подробное руководство по установке.
Официальное использование клиента Snap для установки клиента cerbot,дляCentOS
система,Можно использовать следующие команды:
yum -y install epel-release #Установить зависимости
yum -y install snapd #установить оснастку
systemctl enable --now snapd.socket #Запускаем сокет связи Snap
ln -s /var/lib/snapd/snap /snap #Создайте следующее мягкое соединение, чтобы включить классический поддержка оснастки
Если один шаг пропущен, при установке cerbot будет сообщено об ошибке. Например: мягкое соединение не создается, и при установке cerbob сообщается о следующей ошибке; ошибка: невозможно установить «certbot»: классическое ограничение требует привязки под /snap или символической ссылки из /snap в /var/lib/snapd/snap
# Если вы уже устанавливали certbot ранее, сначала необходимо удалить его.
sudo yum remove certbot
# Установить сертификатбот
snap install --classic certbot
# Конфигурация командной строки Certbot, выполните следующую команду, чтобы убедиться, что командная строка Certbot доступна.
ln -s /snap/bin/certbot /usr/bin/certbot
Примечание. Если возникает ошибка: cannot communicate with server: Post http://localhost/v2/snaps/snap-store: dial хм, попробуй перезапустить снап
systemctl restart snapd.service
Certbot поддерживает множество плагинов веб-сервера. Например, если вы используете Nginx, вы можете использовать плагин nginx (выберите один из двух):
Запустите эту команду, чтобы получить сертификат, и позвольте Certbot автоматически редактировать конфигурацию Nginx для обслуживания, включив доступ HTTPS всего за один шаг:
certbot --nginx
Примечание. По умолчанию Certbot имеет значение Файл конфигурации nginx находится в /etc/nginx/nginx.conf или /usr/local/etc/nginx/nginx.conf, если вашего файла конфигурации nginx здесь нет (в качестве примера возьмем /usr/local/nginx/conf/nginx.conf), его нужно добавить после команды –nginx-server-root /usr/local/nginx/conf. Если появляется nginx plugin is not working; there may be problems with your existing Configuration., что указывает на то, что Nginx не установлен. Если он установлен, используйте следующую команду для добавления переменных среды. Поскольку nginx не помещен в переменную окружения, установите мягкое соединение nginx.
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
ln -s /usr/local/nginx/conf/ /etc/nginx
Просто получите сертификат. Если вы хотите вручную настроить nginx,Введите следующую команду(рекомендовать):
$ certbot certonly --nginx --nginx-ctl /application/nginx-1.24/sbin/nginx --nginx-server-root /application/nginx-1.24/conf/
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): [Введите здесь свой адрес электронной почты]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y [Выбрать Y продолжать]
Account registered.
Which names would you like to activate HTTPS for?
We recommend selecting either all domains, or all domains in a VirtualHost/server block.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: chat.boysec.cn
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): [Здесь не требуется ввод данных, нажмите Enter, чтобы выбрать все]
Requesting a certificate for chat.boysec.cn
Successfully received certificate.
Certificate is saved at:
# [Здесь сообщите нам сгенерированный путь к файлу и срок действия]
/etc/letsencrypt/live/chat.boysec.cn/fullchain.pem
Key is saved at: /etc/letsencrypt/live/chat.boysec.cn/privkey.pem
This certificate expires on 2024-09-25.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
server {
listen 80;
server_name chat.boysec.com;
return 302 https://chat.boysec.com;
}
server {
#Прослушиваем порт 443
listen 443 ssl;
#Соответствующие доменные имена, просто разделяйте доменные имена пробелами.
server_name chat.boysec.com;
#certificatelatedКонфигурация
ssl_ciphers HIGH:!aHULL:!MD5:!DES:!DES3;
ssl_certificate /etc/letsencrypt/live/chat.boysec.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/chat.boysec.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
......
}
Проверьте сайт выдачи сертификата:
Несмотря на то, что certbot бесплатен, он действителен только в течение 90 дней, но у него есть команда автоматического продления, поэтому нет необходимости снова запускать certbot для повторной подписи сертификата. Вы можете проверить, работает ли обновление сертификата правильно, выполнив следующую команду.
certbot renew --dry-run
Если об ошибке не сообщается, команда автоматического обновления выполняется нормально.
Наконец, мы настроили запланированную задачу для автоматического выполнения команды обновления по истечении срока ее действия.
использоватьcertbot renew --force-renewal
Обязательное продление,В противном случае срок его действия не истек.,Невозможно продлить.
#Введите редактирование запланированных задач
crontab -e
#Добавьте следующее: каждые три месяца в 1:00 ночи обязательное продление
0 1 24 3,6,9,12 * /usr/bin/certbot renew --dry-run --force-renewal && /application/nginx-1.24/sbin/nginx -s reload
certbot certonly --manual --preferred-challenges dns --nginx-ctl /application/nginx-1.24/sbin/nginx --nginx-server-root /application/nginx-1.24/conf/ -d *.boysec.com -d boysec.com
Добавьте запись разрешения доменного имени текстового типа. Запись хоста: wangxiansen.boysec.com. Значение генерируется подсказкой certbot: arCjK1Xoi_xxxxxxxxxxxxx.
Проверьте, успешно ли разрешение DNS
nslookup -type=txt wangxiansen.boysec.com 8.8.8.8