Содержание статьи

SSL/TLS сертификат обеспечивает шифрование данных между пользователем и сервером. При истечении его срока действия браузеры начинают отображать предупреждения, а поисковые системы снижают рейтинг сайта. Проверка срока действия выполняется через команду openssl x509 -enddate -noout -in certificate.crt или через панель управления хостингом.
Перед заказом нового сертификата важно выбрать подходящий тип: DV для базовой проверки домена, OV для подтверждения организации и EV для расширенной проверки и отображения зелёной строки. Для генерации CSR используется команда openssl req -new -key private.key -out request.csr, где private.key – приватный ключ сервера.
После получения сертификата необходимо корректно установить его на веб-сервер. В Apache это выполняется через файлы SSLCertificateFile и SSLCertificateKeyFile, в Nginx – через директиву ssl_certificate и ssl_certificate_key. После установки проверяется корректность через сервисы типа SSL Labs или команду openssl s_client -connect domain:443.
Настройка автоматического обновления сертификата сокращает риск простоя сайта. Для сертификатов Let’s Encrypt используется certbot renew с добавлением задачи в cron. Любые ошибки при установке фиксируются через лог веб-сервера: /var/log/nginx/error.log или /var/log/apache2/error.log, что позволяет быстро выявить несовпадение ключей или проблемы с цепочкой сертификатов.
Проверка текущего сертификата и его срока действия

Для определения состояния сертификата первым шагом выполняется проверка даты окончания его действия. В Linux это можно сделать командой openssl x509 -enddate -noout -in /путь/к/certificate.crt, которая выведет точное время истечения. В Windows используется certutil -dump certificate.cer с поиском поля NotAfter.
Дополнительно следует проверить соответствие домена и цепочки сертификатов. Команда openssl s_client -connect ваш_домен:443 -showcerts отображает все промежуточные сертификаты и позволяет убедиться, что браузер примет их без ошибок.
Для автоматизации мониторинга рекомендуется настроить скрипт, который проверяет срок действия ежедневно и отправляет уведомление за 30 дней до истечения. Это снижает риск возникновения предупреждений у пользователей и блокировки HTTPS-соединений.
Если сертификат скоро истечет, важно заранее подготовить CSR и приватный ключ для заказа нового сертификата. Проверка текущего сертификата перед обновлением предотвращает простои сайта и ошибки при установке нового сертификата.
Выбор подходящего типа SSL/TLS сертификата

Сертификаты различаются по уровню проверки и охвату доменов. DV (Domain Validation) подходит для простых сайтов, подтверждает только владение доменом и выдается за несколько минут. Для бизнес-ресурсов предпочтительнее OV (Organization Validation), который проверяет юридическое лицо и обеспечивает отображение информации о компании в сертификате.
EV (Extended Validation) предоставляет расширенную проверку, включая юридический статус организации, и отображает зеленую строку в адресной строке браузера. Этот тип снижает риск фишинга и повышает доверие пользователей.
При необходимости защиты нескольких поддоменов используется Wildcard сертификат, который покрывает все поддомены одного уровня. Для большого количества отдельных доменов эффективен Multi-Domain (SAN), где один сертификат поддерживает несколько доменных имен.
Выбор типа сертификата должен учитывать объем трафика, требования к проверке и бюджет. Для сайтов с финансовыми транзакциями предпочтительны OV и EV, а для блогов и лендингов достаточно DV с регулярным обновлением.
Генерация CSR и подготовка ключей для нового сертификата

Для выпуска нового SSL/TLS сертификата требуется CSR (Certificate Signing Request) и приватный ключ. Эти элементы создаются на сервере и используются провайдером для генерации сертификата.
Основные шаги подготовки:
- Создание приватного ключа. Команда для OpenSSL: openssl genrsa -out private.key 2048. Рекомендуется длина 2048 бит или выше.
- Генерация CSR с использованием приватного ключа: openssl req -new -key private.key -out request.csr. Необходимо корректно заполнить поля:
- CN (Common Name) – основной домен сайта
- O (Organization) – полное название организации
- OU (Organizational Unit) – подразделение или отдел
- L (Locality), S (State), C (Country) – местоположение компании
- Проверка CSR перед отправкой: openssl req -text -noout -verify -in request.csr для подтверждения правильности данных и соответствия ключа.
- Хранение приватного ключа в защищенной директории с ограниченными правами доступа, чтобы предотвратить компрометацию.
После генерации CSR его передают поставщику сертификата для выпуска нового SSL/TLS сертификата, а приватный ключ остается на сервере и используется при установке.
Заказ и получение нового сертификата у провайдера

После генерации CSR необходимо выбрать поставщика сертификата и оформить заказ. Для этого на сайте провайдера выполняются следующие действия:
| Шаг | Действие | Рекомендации |
|---|---|---|
| 1 | Выбор типа сертификата | DV для простых сайтов, OV или EV для корпоративных ресурсов, Wildcard для всех поддоменов одного уровня, SAN для нескольких доменов |
| 2 | Ввод информации о компании и домене | Использовать точные юридические данные и совпадение с CSR |
| 3 | Передача CSR | Скопировать содержимое файла request.csr без изменений, проверить корректность формата |
| 4 | Оплата | Выбрать доступный способ оплаты, сохранить подтверждение |
| 5 | Получение сертификата | Сертификат приходит в формате .crt или .pem, а также промежуточные сертификаты, которые нужно сохранить для установки |
После получения сертификата важно сверить данные в сертификате с CSR и информацией о домене, чтобы исключить ошибки при последующей установке на сервер.
Установка сертификата на веб-сервер

Для корректной работы HTTPS сертификат необходимо установить вместе с приватным ключом и промежуточными сертификатами. На серверах Apache используется конфигурация виртуального хоста:
SSLEngine on
SSLCertificateFile – путь к основному сертификату (.crt)
SSLCertificateKeyFile – путь к приватному ключу (.key)
SSLCertificateChainFile – путь к промежуточным сертификатам
На Nginx установка выполняется через директивы в блоке server:
ssl_certificate – объединенный файл основного и промежуточных сертификатов
ssl_certificate_key – приватный ключ
После изменения конфигурации необходимо проверить синтаксис командой apachectl configtest для Apache или nginx -t для Nginx и перезапустить сервер: systemctl restart apache2 или systemctl restart nginx.
Рекомендуется протестировать работу HTTPS через браузер и сервисы проверки SSL, чтобы убедиться в правильной цепочке сертификатов и отсутствии ошибок безопасности.
Настройка автоматического обновления и тестирование работы

Для сертификатов Let’s Encrypt автоматическое обновление выполняется с помощью certbot. Основная команда: certbot renew, которая проверяет срок действия сертификатов и обновляет их при необходимости.
Для регулярного запуска используется cron или systemd timer. Пример записи в cron для ежедневной проверки:
0 3 * * * /usr/bin/certbot renew —quiet —deploy-hook «systemctl reload nginx»
Эта команда обновляет сертификаты и перезагружает сервер, чтобы применить изменения.
После настройки автоматического обновления необходимо протестировать работу HTTPS:
- Команда openssl s_client -connect domain:443 показывает цепочку сертификатов и дату истечения.
- Сервисы SSL Labs или Why No Padlock проверяют корректность установки и конфигурации.
- Браузерная проверка: доступ к сайту по HTTPS без предупреждений.
Регулярное тестирование помогает выявить ошибки, например, несовпадение домена или проблемы с промежуточными сертификатами, до возникновения сбоев для пользователей.
Проверка корректности установки и устранение ошибок
Ошибки, которые могут возникнуть:
- Несовпадение домена – CN или SAN не совпадает с адресом сайта. Решение: заказать новый сертификат с правильными доменами.
- Отсутствие промежуточных сертификатов – браузеры не доверяют цепочке. Решение: объединить основной и промежуточные сертификаты в один файл для Nginx или использовать SSLCertificateChainFile для Apache.
- Неверные права доступа к ключу – сервер не может прочитать private.key. Решение: установить права 600 и владельца root.
- Истекший сертификат – HTTPS блокируется. Решение: повторная генерация CSR и установка нового сертификата.
После исправления ошибок необходимо перезапустить веб-сервер (systemctl restart nginx или systemctl restart apache2) и повторно проверить работу HTTPS через браузер и сервисы типа SSL Labs, чтобы убедиться в отсутствии предупреждений и корректной цепочке сертификатов.
Вопрос-ответ:
Как проверить срок действия текущего SSL-сертификата на сайте?
Срок действия сертификата можно узнать с помощью команды openssl x509 -enddate -noout -in certificate.crt в Linux. Для Windows используется certutil -dump certificate.cer с поиском строки NotAfter. Также большинство хостингов показывают дату окончания действия в панели управления.
Какие типы SSL/TLS сертификатов подходят для корпоративного сайта?
Для корпоративных сайтов лучше использовать OV (Organization Validation), который подтверждает юридическое лицо, или EV (Extended Validation), который дополнительно отображает зелёную строку в браузере. DV сертификаты подходят для простых сайтов и блогов, но не отображают данные компании и не повышают доверие посетителей.
Как правильно создать CSR и приватный ключ для нового сертификата?
Сначала генерируется приватный ключ командой openssl genrsa -out private.key 2048. Затем создается CSR через openssl req -new -key private.key -out request.csr, где нужно указать CN (домен), O (организацию), OU (отдел), L (город), S (регион) и C (страна). После этого CSR отправляется поставщику сертификата.
Как установить SSL-сертификат на Nginx и Apache?
Для Nginx используется директива ssl_certificate с объединённым файлом основного и промежуточных сертификатов и ssl_certificate_key с приватным ключом. Для Apache нужно указать SSLCertificateFile, SSLCertificateKeyFile и SSLCertificateChainFile. После изменения конфигурации выполняется проверка синтаксиса (nginx -t или apachectl configtest) и перезапуск сервера.
Какие методы помогают автоматизировать обновление сертификата?
Для Let’s Encrypt используется certbot renew, который проверяет сертификаты и обновляет их при необходимости. Чтобы запускать проверку регулярно, создается cron-задача или systemd timer, например: 0 3 * * * /usr/bin/certbot renew —quiet —deploy-hook «systemctl reload nginx». После обновления рекомендуется проверять цепочку сертификатов через SSL Labs или openssl s_client.
Что делать, если после установки нового сертификата сайт показывает предупреждение о безопасности?
Причины предупреждений чаще всего связаны с неправильной цепочкой сертификатов или несовпадением домена. Нужно проверить, что основной сертификат и промежуточные сертификаты объединены корректно. В Nginx для этого используют один файл с ssl_certificate, а в Apache — SSLCertificateFile и SSLCertificateChainFile. Также важно убедиться, что CN или SAN совпадают с доменом сайта. После исправлений необходимо перезапустить веб-сервер и повторно протестировать HTTPS через openssl s_client -connect domain:443 или онлайн-сервисы проверки сертификатов.
