TLS 1.3 - это версия протокола безопасности транспортного уровня (TLS), который был опубликован в 2018 году в качестве предлагаемого стандарта в RFC 8446. Он обеспечивает повышение безопасности и производительности по сравнению со своими предшественниками.
В этом руководстве будет показано, как включить TLS 1.3 с помощью веб-сервера Apache в Fedora 30.
Требования
	- Экземпляр Vultr Cloud Compute (VC2) под управлением Fedora 30.
- Действительное имя домена и правильно настроенные A/AAAA/CNAMEDNS записи для вашего домена.
- Действительный сертификат TLS. Мы получим один от Let's Encrypt.
- Версия Apache 2.4.36или выше.
- Версия OpenSSL 1.1.1или выше.
Прежде чем вы начнете
Проверьте версию Fedora.
cat /etc/fedora-release
# Fedora release 30 (Thirty)
Создайте новую non-rootучетную запись пользователя с sudoдоступом и переключитесь на нее.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
ПРИМЕЧАНИЕ.  Замените johndoeна свое имя пользователя.
Установите часовой пояс.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Убедитесь, что ваша система обновлена.
sudo dnf check-upgrade || sudo dnf upgrade -y
Установите необходимые пакеты.
sudo dnf install -y socat git
Отключить SELinux и Firewall.
sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld
Установите acme.shклиент и получите сертификат TLS от Let's Encrypt
Установите acme.sh.
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~
source ~/.bashrc
Проверьте версию.
/etc/letsencrypt/acme.sh --version
# v2.8.2
Получите сертификаты RSA и ECDSA для вашего домена.
# RSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength 2048
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone -d example.com --ocsp-must-staple --keylength ec-256
ПРИМЕЧАНИЕ.  Замените example.comв командах имя вашего домена.
Создайте разумные каталоги для хранения ваших сертификатов и ключей. Мы будем использовать /etc/letsencrypt.
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
Установите и скопируйте сертификаты в /etc/letsencrypt.
# RSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem 
# ECC/ECDSA
sudo /etc/letsencrypt/acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem
После выполнения вышеуказанных команд ваши сертификаты и ключи будут находиться в следующих местах:
	- RSA :/etc/letsencrypt/example.com
- ECC / ECDSA :/etc/letsencrypt/example.com_ecc
Установите Apache
В Apache добавлена поддержка TLS 1.3 в версии 2.4.36. Система Fedora 30 поставляется с Apache и OpenSSL, которые поддерживают TLS 1.3 из коробки, поэтому нет необходимости создавать пользовательскую версию.
Загрузите и установите последнюю ветку 2.4 Apache и его модуль для SSL через dnfменеджер пакетов.
sudo dnf install -y httpd mod_ssl
Проверьте версию.
sudo httpd -v
# Server version: Apache/2.4.39 (Fedora)
# Server built:   May  2 2019 14:50:28
Запустите и включите Apache.
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
Теперь, когда мы успешно установили Apache, мы готовы настроить его, чтобы начать использовать TLS 1.3 на нашем сервере.
Запустите sudo vim /etc/httpd/conf.d/example.com.confи заполните файл следующей базовой конфигурацией.
<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    # RSA
    SSLCertificateFile "/etc/letsencrypt/example.com/fullchain.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/example.com/private.key"
    # ECC
    SSLCertificateFile "/etc/letsencrypt/example.com_ecc/fullchain.pem"
    SSLCertificateKeyFile "/etc/letsencrypt/example.com_ecc/private.key"
  </VirtualHost>
</IfModule>
Сохраните файл и выйдите.
Проверьте конфигурацию.
sudo apachectl configtest
Перезагрузите Apache, чтобы активировать новую конфигурацию. 
sudo systemctl reload httpd.service
Откройте ваш сайт по протоколу HTTPS в вашем веб-браузере. Для проверки TLS 1.3 вы можете использовать инструменты разработчика браузера или службу SSL Labs. На скриншотах ниже показана вкладка безопасности Chrome с TLS 1.3 в действии.


Вы успешно включили TLS 1.3 в Apache на своем сервере Fedora 30. Окончательная версия TLS 1.3 была определена в августе 2018 года, поэтому нет лучшего времени, чтобы начать применять эту новую технологию.