给nginx申请、配置和更新ssl证书
这篇文章简要介绍一下如何配置ssl证书,拿腾讯云上的ssl配置进行举例,让大家了解这个操作流程。
申请并验证ssl证书
腾讯云上的ssl证书主页:https://console.cloud.tencent.com/ssl
如截图所示:

你可以直接购买一个ssl证书,针对泛域名或者特定域名,当然也可以申请一个免费的ssl证书,但是当前时刻免费的ssl证书只有3个月90天的有效期,过期后ssl证书就不能使用了。

如上图所示,整个的ssl证书申请流程,就是简单的3步。
-
第一步,要在云平台上购买/申请ssl证书,绑定相应的域名;
-
第二步,选择dns验证方式,并且完成dns验证。有截图中所示的3种验证方式,我一般使用手动,你也可以使用其他验证方式。然后点击确定后,会生成一个dns记录,会提示让你将这条记录添加到云解析中。
主页:https://console.cloud.tencent.com/cns

-
第三步,云解析中添加完dns记录后,回到刚刚的dns验证页面,点击“验证dns”,现在基本几分钟就可以完成dns记录。
下载ssl证书:

配置nginx的ssl
找到你的nginx的nginx.conf文件,对于ssl证书配置,最终目的是要实现http传输时通过443端口进行ssl验证加密。
那么你需要在nginx.conf文件中配置443端口,需要分为2步:
-
需要将你刚刚下载的ssl证书解压得到以下几个文件:

如截图所示,会有4种格式的证书对应不同平台的ssl证书配置需要,在nginx.conf配置中,我们只需要使用到.key、.crt这2个文件。 -
将上面的2个文件上传到你的服务器中某一个位置。如果是使用docker的话,会比较方便,我自己也是配置的nginx的docker容器来进行配置,通过bind进行目录绑定。
-
配置nginx的443端口
nginx.conf
...
server {
listen 443 ssl;
listen [::]:443 ssl;
#请填写绑定证书的域名
server_name www.abc.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate ./cert/xxx/2025-02-02/xxx.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key ./cert/xxx/2025-02-02/xxx.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
charset utf-8;
location / {
root /usr/share/nginx/html/xxx;
index index.html index.htm;
# 此处一定要改成nginx容器中的目录地址,宿主机上的地址容器访问不到
# 命令必须用 root, 不能用 alias
#try_files $uri $uri/ /index.html;
proxy_pass http://xxx.xxx.xxx.xxx:1234; # ip端口转发
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
#add_header 'Access-Control-Allow-Origin' '*';
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
...
上面的配置就是针对域名www.abc.com配置443访问端口,配置对应的ssl证书。
这里的配置中,我有代理转发的配置,大家可以忽略,或者仅仅作为参考,我们的目的仅在于其中的ssl证书配置部分。
- 给nginx的ssl配置完成后,需要对nginx进行重载,那么你可以在nginx的环境下,执行以下命令,重载nginx的配置.
terminal
# 检测nginx.conf中的语法是否正确
nginx -t
# nginx重载
nginx -s reload
结束。
以上应该差不多讲清了这个ssl证书流程了吧。
希望对大家有帮助。
暂无评论,快来发表第一条评论吧