本文于 20 天前发布,最后更新于 19 天前
一、概述
不需要了解太详细,我们只需要知道HTTPS比HTTP更安全。简单来说 HTTPS 是 HTTP 的安全版,是使用 TLS/SSL 加密的 HTTP 协议。
二、把HTTP换成HTTPS
2.1 申请证书
免费的,花钱的都可以,能够把证书申请下来就可以。各种云厂商都提供SSL证书服务,例如:阿里云、腾讯云、华为云……也可以用一些免费的,例如:来此加密、FREESSL、Cloudflare等等。
申请证书的过程就不在此介绍了,在申请证书的网站一步一步照着做就可以。
证书申请成功后,将证书文件下载,上传到服务器nginx目录。一般只需要上传证书中的证书链文件(fullchain.crt)和私钥文件(private.pem)。【证书文件名大多类似,名字或格式略有差别】
我在nginx目录下创建了ssl文件夹,用于存放证书文件:
[root@dameng ssl]# pwd
/usr/local/nginx/ssl
[root@dameng ssl]# ll
total 20
-rw-r--r-- 1 root root 2836 Dec 2 13:29 fullchain.crt
-rw-r--r-- 1 root root 6372 Dec 2 16:47 full_chain.pem
-rw-r--r-- 1 root root 1732 Dec 2 16:47 private.key
-rw-r--r-- 1 root root 241 Dec 2 11:31 private.pem
注意
我存放了两套证书,所以有四个文件,正常情况下有一套就可以。
2.2 修改nginx配置
编辑配置文件nginx.conf,只需要修改server部分就行
server {
listen 80;
server_name 你的域名;
#将HTTP重定向到HTTPS
return 301 https://$server_name$request_uri;
}
server
{
listen 443 ssl;
ssl_stapling on;
ssl_stapling_verify on;
#请填写证书文件的相对路径或绝对路径
ssl_certificate "/usr/local/nginx/ssl/full_chain.pem";
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key "/usr/local/nginx/ssl/private.key";
#listen 80 default_server reuseport;
#listen [::]:80 default_server ipv6only=on;
server_name 你的域名;
……
……
……
保存并重新加载nginx
[root@dameng conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@dameng conf]# nginx -s reload
三、其他问题
由于我在申请SSL证书的同一天将域名解析到我的IP(也就是网站IP与域名绑定),碰到了一些意料之外的问题:
- 网站上所有的图片都加载不出来。
- 还有一个神奇的现象,就是页面加载后会把我底部音乐播放器的音乐封面铺满整个网页。
后续我也找到了解决的方法:准备工作是要下载一个插件Unlimited Elements for Elementor。
- 图片加载不出来是因为图片都在WordPress媒体库并且图片的链接还是以前的IP链接,例如:https://xxx.xxx.xxx.xxx/wp-content/uploads/2024/11/头像-e1731570721610.jpg,需要将媒体库文件链接中所有的IP替换掉。当然不用一个一个的改,从WordPress的设置-常规里把WordPress地址(URL)和站点地址(URL)修改成域名。修改完成后,再次登录WordPress管理界面时,上述插件Unlimited Elements for Elementor会提示将网站从IP地址迁移到新的域名,点击迁移即可解决问题。
- 另外,音乐播放器封面的问题,我怀疑是我在申请SSL证书时没有填写顶级域名(lemonary.cn)而是只填了二级域名(www.lemonary.cn)导致的,我没有证实这一问题。但是在我将只填了二级域名的SSL证书替换掉后,这个现象也就没再出现过。
所以大家在替换域名和申请SSL证书时要注意以下两点:
- WordPress的媒体库中的文件链接需要修改,可以用插件统一修改。
- SSL证书申请时一定要写好两个域名:顶级域名和二级域名(带www的和不带www的)。