如何在Fedora 29的Nginx中启用TLS 1.3

介绍

TLS 1.3是传输层安全性(TLS)协议的版本,该协议于2018年作为RFC 8446中的建议标准发布。与以前的产品相比,它提供了安全性和性能方面的改进。

本指南将演示如何使用Fedora 29上的Nginx Web服务器启用TLS 1.3。

要求

  • Nginx版本1.13.0或更高版本。
  • OpenSSL版本1.1.1或更高版本。
  • 运行Fedora 29的Vultr Cloud Compute(VC2)实例。
  • 有效的域名和正确配置A/ AAAA/ CNAME为您的域DNS记录。
  • 有效的TLS证书。我们将从“加密”中获取一个。

在你开始之前

检查Fedora版本。

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

创建一个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和防火墙。

sudo setenforce 0 ; sudo systemctl stop firewalld ; sudo systemctl disable firewalld

安装Acme.sh客户端并从Let's Encrypt获取TLS证书

在本指南中,我们将使用Acme.sh客户端从Let's Encrypt获取SSL证书。您可以使用最熟悉的客户端。

下载并安装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 your_email@example.com
cd ~

检查版本。

/etc/letsencrypt/acme.sh --version
# v2.8.1

为您的域获取RSA和ECDSA证书。

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --ocsp-must-staple --keylength ec-256

注意: 用您的域名替换example.com命令。

运行前面的命令后,可以在以下位置访问您的证书和密钥:

  • RSA :/etc/letsencrypt/example.com
  • ECC / ECDSA :/etc/letsencrypt/example.com_ecc

安装Nginx

Nginx在版本1.13.0中添加了对TLS 1.3的支持。Fedora 29带有Nginx和OpenSSL,它们均支持开箱即用的TLS 1.3,因此无需构建自定义版本。

安装Nginx。

sudo dnf install -y nginx

检查版本。

nginx -v
# nginx version: nginx/1.14.2

检查编译了Nginx的OpenSSL版本。

nginx -V
# built with OpenSSL 1.1.1b FIPS  26 Feb 2019

启动并启用Nginx。

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

配置Nginx

既然我们已经成功安装了Nginx,我们就可以对其进行适当的配置,以开始在服务器上使用TLS 1.3。

运行sudo vim /etc/nginx/conf.d/example.com.conf命令,并使用以下配置填充文件。

server {
  listen 443 ssl http2;
  listen [::]:443 ssl http2;

  server_name example.com;

  # RSA
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
  # ECDSA
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

  ssl_protocols TLSv1.2 TLSv1.3;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;
}

保存文件并使用:+ W+ 退出Q

注意指令的新TLSv1.3参数ssl_protocols。仅在Nginx上启用TLS 1.3时才需要此参数。

检查配置。

sudo nginx -t

重新加载Nginx。

sudo systemctl reload nginx.service

要验证TLS 1.3,可以使用浏览器开发工具或SSL Labs服务。下面的屏幕快照显示了Chrome的“安全性”标签。

如何在Fedora 29的Nginx中启用TLS 1.3

如何在Fedora 29的Nginx中启用TLS 1.3

就这样。您已经在Fedora 29服务器上的Nginx中成功启用了TLS 1.3。TLS 1.3的最终版本于2018年8月定义,因此没有更好的时间开始采用这项新技术了。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息