Могу ли я включить TLS 1.3 с помощью Certbot?

Вопрос или проблема

Я работаю с Nginx и Certbot, я обеспечил домен с HTTPS. Я хотел бы поднять уровень домена до TLS 1.3.

Серверный блок Nginx для моего домена получает свои SSL протоколы из включаемого файла, который создает Certbot.

Файл /etc/letsencrypt/options-ssl-nginx.conf утверждает, что если я изменю файл, Certbot не сможет автоматически предоставить обновления безопасности.

Я хочу изменить строку файла ssl_protocols, добавив TLSv1.3 в конец, но не хочу нарушить автоматические обновления certbot.

Возможно ли указать certbot включить TLS 1.3?

Версии программного обеспечения

  • Nginx 1.14.0
  • OpenSSL 1.1.1
  • Certbot 0.31.0
  • Ubuntu 18.04

Если вы установите обновленную версию Certbot, то у вас будет включен TLS 1.3 по умолчанию, Snap – лучший способ установить Certbot (Больше инструкций здесь: https://certbot.eff.org/).

#Эти инструкции работают для Ubuntu 18.04 и Ubuntu 20.04
#сначала нужно убедиться, что другой certbot не установлен    
sudo apt-get remove certbot -y < /dev/null
#установить Certbot с помощью упаковки Snap
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

Позже запустите Certbot так, как вам нужно

sudo certbot --nginx -d yourdomain.com --agree-tos -m [email protected] --redirect

Или

sudo certbot certonly --nginx -d yourdomain.com --agree-tos -m [email protected] --redirect

Или

sudo certbot certonly --webroot -w /var/www/yourdomain.com/public_html -d yourdomain.com

Nginx/ Ubuntu не поддерживает TLSv1.3 на уровне SSL библиотеки. Поэтому вам нужно будет пересобрать весь стек ssl и скомпилировать все из исходников. Ubuntu 18.04 поставляется с OpenSSL 1.1.0. Замена системной библиотеки OpenSSL не является хорошей идеей, но вы можете скачать исходный код OpenSSL 1.1.1 и скомпилировать Nginx с исходным кодом OpenSSL 1.1.1, чтобы включить TLS 1.3.

https://github.com/certbot/certbot/issues/6367#issuecomment-601937964 Certbot поддерживает tls1.3, когда nginx и openssl поддерживают его с самой последней версией

Ответ или решение

Вопрос: Могу ли я включить TLS 1.3 с помощью Certbot?

Можно, однако, необходимо учитывать несколько факторов, связанных с вашей текущей конфигурацией и версиями используемого программного обеспечения. Рассмотрим детально, как осуществить включение TLS 1.3 в вашем случае.

Комплектующее ПО

У вас установлены следующие версии программного обеспечения:

  • Nginx: 1.14.0
  • OpenSSL: 1.1.1
  • Certbot: 0.31.0
  • Ubuntu: 18.04

TLS 1.3 поддерживается начиная с OpenSSL 1.1.1. Таким образом, ваша версия OpenSSL поддерживает TLS 1.3, однако версия Nginx имеет значение, так как именно она отвечает за конфигурацию SSL.

Certbot и автоматические обновления

Файл, созданный Certbot, который вы упомянули (/etc/letsencrypt/options-ssl-nginx.conf), действительно не рекомендуется изменять вручную, так как это может привести к проблемам с автоматическими обновлениями сертификатов. Certbot ожидает, что его конфигурация остается неизменной, чтобы гарантировать корректную работу.

Как включить TLS 1.3

  1. Обновите Certbot: В более новых версиях Certbot поддержка TLS 1.3 активируется по умолчанию. Убедитесь, что вы используете последнюю версию Certbot, установив его через Snap, что является рекомендованным методом на Ubuntu.

    sudo apt-get remove certbot -y < /dev/null
    sudo snap install --classic certbot
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
  2. Обновление OpenSSL и Nginx: Поскольку вы используете Ubuntu 18.04, вам нужно будет обновить OpenSSL до версии 1.1.1, если это еще не сделано. Вы также должны убедиться, что ваша версия Nginx скомпилирована с поддержкой OpenSSL 1.1.1. Это может потребовать перекомпиляции Nginx из исходного кода, что может быть трудоемким процессом.

    • Чтобы включить поддержку TLS 1.3 в Nginx, вам необходимо скачивать исходный код Nginx и компилировать его с OpenSSL 1.1.1:
      
      # Установите необходимые зависимости
      sudo apt-get install build-essential libpcre3-dev libssl-dev zlib1g-dev

    Скачайте Nginx и OpenSSL

    wget http://nginx.org/download/nginx-1.14.0.tar.gz
    wget https://www.openssl.org/source/openssl-1.1.1.tar.gz

    Разархивируйте и соберите

    tar -xzvf nginx-1.14.0.tar.gz
    tar -xzvf openssl-1.1.1.tar.gz
    cd nginx-1.14.0
    ./configure –with-openssl=../openssl-1.1.1
    make
    sudo make install

  3. Настройка конфигурации Nginx: После успешной компиляции Nginx с поддержкой OpenSSL 1.1.1, вам нужно будет отредактировать файл конфигурации вашего сервера Nginx для включения TLS 1.3.

    В вашем файле конфигурации Nginx добавьте или измените строку с ssl_protocols:

    ssl_protocols TLSv1.2 TLSv1.3;
  4. Перезапустите Nginx: После внесения изменений перезапустите сервер:

    sudo systemctl restart nginx

Заключение

Включение TLS 1.3 с использованием Certbot возможно, но требует соблюдения ряда условий, включая обновление вашего программного обеспечения и возможно перекомпиляцию Nginx. После выполнения всех шагов убедитесь, что все работает корректно, и используйте инструменты, такие как SSL Labs для проверки конфигурации безопасности вашего сервера.

Оцените материал
Добавить комментарий

Капча загружается...