WordPress安全篇(1):WordPress网站启用HTTPS详细教程

以前我们浏览网页使用的都是HTTP协议,HTTP使用明文传输,所以传输过程中很容易遭受黑客窃取、篡改数据,很不安全。在WordPress网站上启用HTTPS协议访问后,能大大提升站点的安全性,启用HTTPS协议的网站也更容易被搜索引擎收录,提升网站的访问量。
 

HTTPS是什么?

HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer)是安全的超文本传输协议,通过安装SSL证书,用户与服务器之间传输的数据是经过加密的,部署SSL证书后,采用超强加密方式以防数据中途被盗取,大大提升了安全性。要启用HTTPS必须安装SSL证书,SSL证书分收费和免费两种,企业建议购买收费证书,个人用户可考虑申请免费证书。华为云阿里云目前都提供申请免费SSL证书服务。

WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

注意事项:
1、申请SSL证书的前提条件必须拥有一个域名,因为SSL证书需要与域名绑定。
2、内网域名或私有IP不可以使用公网数字证书,即公网SSL证书不能配置到内网。
3、配置WordPress之前请备份WordPress数据及数据库,万一因配置不成功,可以回滚到配置前的状态。

 

环境信息

系统、软件名称 版本 官网下载地址
Linux CentOS 7.9 CentOS 7.9
Nginx Nginx 1.18.0 Nginx 1.18.0
MySQL MySQL 8.0.23 MySQL 8.0.23
PHP PHP 7.4.19 PHP 7.4.19
WordPress WordPress 5.7 中文版

 

操作步骤

WordPress网站全站启用HTTPS协议的流程如下所示:
①申请SSL证书并下载SSL证书 → ②WEB服务器安装SSL证书 → ③WordPress启用HTTPS协议 → ④HTTPS访问效果验证

 

步骤一:申请SSL证书并下载SSL证书

1、申请SSL证书

登录华为云,点击搜索工具(下图中的放大镜图标),在弹出的搜索框内输入“ccm”,选择“云证书管理服务CCM”下方的 『控制台』后打开“云证书管理服务”页面,选择『证书管理』→『SSL证书』,点击右上角的『购买证书』按钮。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

证书类型选择 DV(Basic),证书品牌选择 DigiCert,其它参数默认即可,点击 『立即购买』,DigiCert的免费SSL证书的有效期为一年。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

勾选 “我已阅读并同意《SSL证书管理(SCM)免责声明》”,点击右下角的 『去支付
按钮进入下一步,接着点击 『确认付款』按钮,提示“订单支付成功!”

 

返回“云证书管理服务”控制台,选择『证书管理』→『SSL证书』,点击 『申请证书』。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

输入证书绑定的域名,点击『下一步』按钮进入下一个页面。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

填写姓名,电话,邮箱,勾选“我已阅读、理解并同意……”,点击 『提交申请』,接着点击『去DNS验证』按钮转到下一个页面。

WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

记录好下图中的三个参数,主机记录:_dnsauth 记录类型:TXT 记录值:以20210开头的字符。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

打开浏览器新建一个标签页,登录您的域名服务商的“域名解析后台”,本文以华为云的DNS解析来演示如何增加一条DNS记录。华为云添加DNS记录的操作如下,主机记录填写 _dnsauth ,类型选择TXT-设置文本记录,值填写以202105开头的字符串,然后点击 『确定』。切换到上图中的窗口,点击 『我已完成以上验证』,等待完成验证。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

通常在10分钟之内就会完成域名验证,验证通过后证书的状态变更为“已签发”,现在SSL证书可以下载使用了。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

2、下载SSL证书

点击上图中的『下载』,再点击下图中的 『下载证书』,将证书下载到您的电脑中。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

如何在阿里云申请免费SSL证书?请点击以下链接。
在阿里云申请免费SSL证书教程

 

步骤二:WEB服务器安装SSL证书

1、在本地解压已下载的证书文件,文件包含了Apache、IIS、Nginx、Tomcat4个文件夹和1个“domain.csr”文件,如下图所示:
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

2、上传SSL证书
在WEB服务器上新建cert目录,用于存储SSL证书文件。

mkdir /etc/nginx/cert

上传SSL证书文件到WEB服务器
使用WinSCP工具以SFTP方式登录WEB服务器,上传“cert.key”及“cert.crt”到WEB服务器的 /etc/nginx/cert目录中,如下图所示。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 

3、修改Nginx配置文件
编辑Nginx的default.conf配置文件,修改配置前请备份default.conf。

vim /etc/nginx/conf.d/default.conf

 

删除server上下文中的如下配置内容

listen       80;server_name  localhost;

 

配置SSL证书,在server上下文中添加以下配置:

    listen       443 ssl;
    server_name  www.useclouds.cn;		    #修改为您证书绑定的域名
    ssl_certificate      /etc/nginx/cert/cert.crt;	    #替换成您的证书文件的路径
    ssl_certificate_key  /etc/nginx/cert/cert.key; #替换成您的私钥文件的路径
    ssl_session_cache    shared:SSL:1m;		
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;		#加密套件
    ssl_prefer_server_ciphers  on;

 

配置HTTP跳转到HTTPS,将所有访问HTTP的请求全部重定向到HTTPS,添加以下配置内容并保存配置。

server{
	listen       80;
        server_name  www.useclouds.cn; 
	if ($server_port = 80){
		return 301 https://$server_name$request_uri;
	}
	if ($scheme = http) {
		return 301 https://$server_name$request_uri;
	}
	error_page 497 https://$server_name$request_uri;
}

 

default.conf配置示例如下:

server {
    listen       80;
    server_name  www.useclouds.cn;
 
    if ($server_port = 80){
        return 301 https://$server_name$request_uri;
    }
    if ($scheme = http) {
        return 301 https://$server_name$request_uri;
    }
    error_page 497 https://$server_name$request_uri;
}
 
server {
    listen       443 ssl;
    server_name  www.useclouds.cn;
    ssl_certificate      /etc/nginx/cert/useclouds.crt;
    ssl_certificate_key  /etc/nginx/cert/useclouds.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
 
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
 
    location / {
        root   /data/wordpress;
        index  index.php index.html index.htm;
 
        if (-f $request_filename/index.html){
                rewrite (.*) $1/index.html break;
        }
        if (-f $request_filename/index.php){
                rewrite (.*) $1/index.php;
        }
        if (!-f $request_filename){
                rewrite (.*) /index.php;
        }
    }
 
    #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   /usr/share/nginx/html;
    }
 
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
 
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /data/wordpress;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
 
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

 

4、验证Nginx配置文件是否正确?
当回显信息如下所示,代表Nginx配置正确

[root@Linux ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

5、重启Nginx

systemctl restart nginx

 

如何在其它WEB服务器上安装SSL证书?请参考以下文档:
华为云证书管理服务

阿里云SSL证书服务

 

步骤三:WordPress启用HTTPS协议

登录WordPress后台,『设置』→ 『常规』,将WordPress地址(URL)与站点地址(URL)由https://www.useclouds.cn 改为https://www.useclouds.cn ,然后点击『保存更改』按钮保存WordPress配置。

 

步骤四:HTTPS访问效果验证

部署成功后,在浏览器的地址栏中输入 https://www.useclouds.cn 回车,如果浏览器地址栏显示安全锁标识,则说明证书安装成功,如下图所示。
WordPress安全篇(1):WordPress网站启用HTTPS详细教程

 


本文转自 云引未来-www.useclouds.cn

上一篇:wordpress添加https


下一篇:2021-05-28 部署wordpress