Поиск по сайту:

Как работают бесплатные сертификаты HTTPS/SSL от LetsEncrypt?


Let’s Encrypt бесплатно выпускает SSL-сертификаты, которые используются для защиты и шифрования трафика на вашем веб-сайте, а в адресной строке отображается зеленый замок. Без него вы застрянете на HTTP, который не очень безопасен.

Что такое сертификат HTTPS/SSL?

Когда кто-то подключается к вашему веб-сайту, браузер этого человека запрашивает у вашего веб-сайта идентификацию, чтобы убедиться, что никто не вторгается в ваше соединение. Это делается с помощью SSL-сертификата, который выдается вам центром сертификации (CA).

Центр сертификации отслеживает ваше доменное имя и связывает его с вашим открытым ключом, используемым для шифрования. Каждый, кто подключается к вашему веб-сайту, может видеть, что вы используете правильный ключ для шифрования трафика вашего веб-сайта, поэтому вы должны быть тем, за кого себя выдаете. Пока все доверяют ЦС, никто из злоумышленников не сможет подделать новые SSL-сертификаты, поскольку они будут подписаны ЦС и могут быть выпущены только им.

Это означает, что пока у вас есть SSL-сертификат, никто не может следить за подключениями людей, когда они используют ваш сайт, или выдавать себя за ваш сайт. Это делает HTTPS очень полезным и гораздо более безопасным. С появлением Let’s Encrypt 93% веб-трафика (через Google) теперь использует HTTPS, и если ваш веб-сайт не использует HTTPS, вы будете занимать гораздо более низкие позиции в результатах поиска Google.

Чем отличается Let’s Encrypt?

Let’s Encrypt можно использовать совершенно бесплатно. Это необычно для CA, так как большинство из них требуют от вас платить сотни долларов в год. Это главное преимущество Let’s Encrypt — если вам не нужно ничего особенного, вы можете легко защитить свой сайт с помощью HTTPS.

Однако у Let’s Encrypt есть несколько недостатков. Их сертификаты действительны только в течение 90 дней, но вы можете автоматизировать их продление, так что это не нарушит сделку. Они также предлагают только сертификаты проверки домена (DV), которые просто защищают ваш домен. Они не предлагают сертификаты проверки организации (OV), которые требуют, чтобы вы зарегистрировали свой бизнес вместе с ними, и они не предлагают сертификаты расширенной проверки (EV), которые требуют обширного процесса проверки и показывают название вашей компании в URL-адресе. бар.

Однако в сертификате OV не так много преимуществ, и вам, вероятно, не нужен сертификат EV, если вы не управляете банком или крупным учреждением, и в этом случае вы, вероятно, можете сэкономить деньги. Даже у Amazon нет сертификата EV.

Для большинства людей, если вы не возражаете против необходимости обновлять свой сертификат каждые 90 дней, в настоящее время нет особого смысла иметь что-то более красивое, чем LetsEncrypt.

Как настроить сертификаты Let’s Encrypt

Вам потребуется доступ из командной строки к серверу, на который вы собираетесь установить SSL-сертификат. В качестве альтернативы, если у вас есть провайдер управляемого хостинга, такой как SquareSpace, ваш хост может поддерживать Let’s Encrypt, а у некоторых он включен по умолчанию. Другие, например GoDaddy, включают SSL в свои платные планы и могут заблокировать использование альтернативных вариантов. Вы можете проверить, есть ли ваш провайдер в списке, и как включить Let’s Encrypt, если он есть. В этой статье мы сосредоточимся на ручной настройке на вашем собственном веб-сервере.

Чтобы получить сертификат, вам нужно использовать клиент ACME, программу, которая будет общаться с Let’s Encrypt для вас и проверять, является ли ваше доменное имя законным. Let’s Encrypt рекомендует использовать certbot, утилиту командной строки, которая создаст для вас сертификаты, а также автоматически установит их на используемый вами веб-сервер.

Если вы не хотите, чтобы certbot возился с вашими конфигурационными файлами nginx или Apache, вы можете вручную сгенерировать сертификат с другим клиентом ACME. Вам придется вручную добавить его в свою конфигурацию, и вам придется управлять обновлением сертификата каждые 90 дней (что вы можете делать автоматически, вам просто нужно настроить это самостоятельно). Для большинства людей Certbot подойдет.

Установка и использование Certbot

Установка будет зависеть от того, какую ОС вы используете, но Certbot работает только в системах Unix, а не в Windows. Обычно это так же просто, как установить его из менеджера пакетов вашего дистрибутива. Для систем на основе Debian, таких как Ubuntu, это будет:

sudo apt-get install certbot

Хотя вам придется добавить репозиторий certbot в менеджер пакетов. К счастью, на веб-сайте Certbot есть более полные инструкции по установке для каждого дистрибутива. Выберите, какой веб-сервер вы используете и на какой ОС вы его используете. Certbot выдаст вам список команд для установки необходимых пакетов; запустите их и дождитесь установки.

Когда это будет сделано, вы захотите запустить:

sudo certbot --nginx

Замените флаг --nginx на любой используемый вами веб-сервер. Certbot сгенерирует новый сертификат и установит его в вашу конфигурацию nginx. На самом деле вы можете запустить Certbot как клиент ACME вручную с помощью:

sudo certbot --nginx certonly

Это создаст файл сертификата, который вы можете вручную развернуть на своем веб-сервере.

Certbot автоматически управляет продлением на большинстве дистрибутивов с помощью таймеров cron или systemd, поэтому вам не придется беспокоиться об истечении срока его действия. Это задание cron обычно находится в /etc/cron.d/certbot, если вы хотите убедиться.

Следует отметить, что это задание cron запускает certbot renew только после того, как оно будет выполнено, что не приведет к автоматическому перезапуску вашего веб-сервера для применения новой конфигурации. Вы можете прикрепить к этому заданию cron дополнительную команду с помощью --renew-hook и передать ей команду для перезагрузки nginx следующим образом:

certbot renew --renew-hook "/etc/init.d/nginx reload"

Вы также можете вручную обновить свои сертификаты непосредственно из командной строки с помощью:

sudo certbot renew

После этого вам также потребуется перезапустить веб-сервер.

Работа с HTTPS-трафиком

HTTPS работает немного иначе, чем обычный HTTP. Порт HTTP по умолчанию — 80, который обычно открыт на веб-серверах. HTTPS работает на порту 443, поэтому вам нужно убедиться, что этот порт открыт во всех брандмауэрах, которые могут быть у вас для работы HTTPS.

Кроме того, теперь, когда у вас есть HTTPS, вы, вероятно, захотите заблокировать весь HTTP-трафик. Вы можете сделать это с помощью правила nginx:

server {
    listen 80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}

Это перенаправит весь трафик порта 80 на ссылку HTTPS. Это заменяет сервер по умолчанию с портом 80, поэтому убедитесь, что на этом порту больше ничего не работает.