Nginx或Tengine服务器配置SSL证书
本文将全面介绍如何在Nginx或Tengine服务器配置SSL证书,具体包括下载和上传证书文件,在Nginx上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Nginx服务器。
本文将全面介绍如何在Nginx或Tengine服务器配置SSL证书,具体包括下载和上传证书文件,在Nginx上配置证书文件、证书链和证书密钥等参数,以及安装证书后结果的验证。成功配置SSL证书后,您将能够通过HTTPS加密通道安全访问Nginx服务器。
前提条件
- 已通过 https://letsencrypt.top/ 免费申请签发SSL证书。具体操作,请参见文章 申请SSL证书时,如何完成域名验证(二)- 自动续期。
-
SSL证书绑定的域名已完成DNS解析,即您的域名与主机IP地址相互映射。您可以通过DNS验证证书工具,检测域名DNS解析是否生效。具体操作,请参见DNS生效验证。
-
已在Web服务器开放443端口(HTTPS通信的标准端口)。
如果您使用的是阿里云ECS服务器,请确保已经在安全组规则入方向添加TCP 443端口。具体操作,请参见添加安全组规则。
步骤一:下载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替换成证书绑定的域名。
如果网页地址栏出现小锁标志,表示证书已经安装成功。

更多推荐


所有评论(0)