如何在Nginx上启用SSL和TLS 1.3

2022-07-24 13:22:51 浏览数 (1)

现在是时候从的'HTTP迁移到HTTPS了。 由于最新的浏览器迭代,尤其适用于网站不安全的情况。 当您将SSL与TLS的一两个结合(请参阅如何在Ubuntu Server 18.04上构建具有TLS支持的Nginx)时,您的站点将获得更高的安全性和性能。

但是如何为Nginx启用SSL? 我将带你走过那个过程。 我将使用自签名证书在Ubuntu Server 18.04上进行演示。 您可能会使用从提供商处购买的证书。 如果是这种情况,请确保编辑步骤以反映这一点。

我们来配置吧。

生成自签名证书

请记住,这仅用于演示目的。 在生产服务器上,您希望使用从信誉良好的证书颁发机构(CA)购买的证书。 但出于测试目的,自签名证书可以正常运行。 这是你如何创建它们。

打开终端窗口并按照以下步骤操作:

1.使用命令sudo openssl genrsa -out ca.key 2048  生成私钥

2.使用命令sudo openssl req -new -key ca.key -out ca.csr  生成CSR

3.使用命令sudo openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt  生成自签名密钥

现在我们需要使用以下命令将新生成的文件复制到正确的位置:

sudo cp ca.crt /etc/ssl/certs/ sudo cp ca.key /etc/ssl/private/ sudo cp ca.csr /etc/ssl/private/

创建Nginx配置

请记住,我们希望通过TLS支持启用SSL。 为此,我们必须使用以下命令创建一个新的Nginx配置文件:

sudo nano /etc/nginx/conf.d/ssl.conf

在该文件中,粘贴以下内容:

server {

    location / {         root  /usr/share/nginx/html;         index  index.html index.htm;     }

    listen              443 ssl;     server_name        www.example.com;     ssl_certificate    /etc/ssl/certs/ca.crt;     ssl_certificate_key /etc/ssl/private/ca.key;     ssl_protocols      TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;     ssl_ciphers    TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:HIGH:!aNULL:!MD5;

}

注意:确保更改根位置以反映您的Nginx安装。 但是,如果您按照步骤构建支持TLS的Nginx,则上述配置应该可行。

保存并关闭文件。 使用以下命令测试新的Nginx配置文件:

sudo nginx -t

您应该看到测试通过了.

重启并测试

现在我们需要重启NGINX。 使用以下命令执行此操作:

sudo systemctl restart nginx

将浏览器指向https://SERVER_IP,您应该看到NGINX欢迎屏幕。 要确保在启用TLS 1.3的情况下交付网站,您可以使用浏览器的内置工具。 例如,在Firefox中,打开页面,然后单击安全按钮(地址栏左侧的锁定图标)。 单击与页面关联的向右箭头,然后单击“更多信息”。 在结果窗口(图B)中,您应该看到连接使用TLS 1.3加密。

这就是在Nginx网站上启用SSL和TLS的全部内容。 请记住,您应该使用来自信誉良好的证书颁发机构的SSL证书。 但是,将自签名证书用于测试目的始终是个好主意。 一旦您对此过程充满信心,请购买证书并将其部署到您的Nginx站点。

0 人点赞