本文将全面介绍如何在Nginx或Tengine服务器配置SSL证书,具体包括下载和上传证书文件,在Nginx上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Nginx服务器。

前提条件

步骤一:下载SSL证书

登录  https://letsencrypt.top/ ,下载nginx服务器对应的证书,如图:

解压缩已下载的SSL证书压缩包,解压后获得如下两个文件:

步骤二:在Nginx服务器安装证书

1. 执行以下命令,在Nginx的conf目录下创建一个用于存放证书的目录。

#进入Nginx默认配置文件目录。该目录为手动编译安装Nginx时的默认目录,如果您修改过默认安装目录或使用其他方式安装,请根据实际配置调整。
cd /usr/local/nginx/conf  

#创建证书目录,命名为cert。
mkdir cert  

2. 将证书文件和私钥文件上传到Nginx服务器的证书目录(/usr/local/nginx/conf/cert)

3. 编辑Nginx配置文件nginx.conf,修改与证书相关的配置

a. 执行以下命令,打开配置文件。

vi /usr/local/nginx/conf/nginx.conf

b. 在nginx.conf中定位到HTTPS server属性配置。

c. 删除行首注释符号#,并参考如下示例进行修改

server {
     #HTTPS的默认访问端口443。
     #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
     listen 443 ssl;
     
     #填写证书绑定的域名
     server_name <YOURDOMAIN>;
 
     #填写证书文件绝对路径
     ssl_certificate cert/<cert-file-name>.pem;
     #填写证书私钥文件绝对路径
     ssl_certificate_key cert/<cert-file-name>.key;
 
     ssl_session_cache shared:SSL:1m;
     ssl_session_timeout 5m;
	 
     #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
     #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
     ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

     #表示优先使用服务端加密套件。默认开启
     ssl_prefer_server_ciphers on;
 
 
    location / {
           root html;
           index index.html index.htm;
    }
}

d. 可选:设置HTTP请求自动跳转到HTTPS。

如果您希望所有的HTTP访问自动跳转到HTTPS页面,可通过rewrite指令重定向到HTTPS。

server {
    listen 80;
    #填写证书绑定的域名
    server_name <YOURDOMAIN>;
    #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    rewrite ^(.*)$ https://$host$1;
    location / {
        index index.html index.htm;
    }
}

配置效果如下图所示:

4. 执行以下命令,重启Nginx服务。

#进入Nginx服务的可执行目录。
cd /usr/local/nginx/sbin
#重新载入配置文件。
./nginx -s reload

步骤三:验证SSL证书是否配置成功

证书安装完成后,您可通过访问证书的绑定域名验证该证书是否安装成功。

https://yourdomain   #需要将yourdomain替换成证书绑定的域名。

如果网页地址栏出现小锁标志,表示证书已经安装成功。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐