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

HTTPS是什么?

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

注意事项:

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证书』,点击右上角的『购买证书』按钮。

证书类型选择 DV(Basic),证书品牌选择 DigiCert,其它参数默认即可,点击 『立即购买』,DigiCert的免费SSL证书的有效期为一年。

勾选 “我已阅读并同意《SSL证书管理(SCM)免责声明》”,点击右下角的 『去支付

按钮进入下一步,接着点击 『确认付款』按钮,提示“订单支付成功!”

返回“云证书管理服务”控制台,选择『证书管理』→『SSL证书』,点击 『申请证书』。

输入证书绑定的域名,点击『下一步』按钮进入下一个页面。

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

记录好下图中的三个参数,主机记录:_dnsauth 记录类型:TXT 记录值:以20210开头的字符。

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

通常在10分钟之内就会完成域名验证,验证通过后证书的状态变更为“已签发”,现在SSL证书可以下载使用了。

2、下载SSL证书

点击上图中的『下载』,再点击下图中的 『下载证书』,将证书下载到您的电脑中。

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

在阿里云申请免费SSL证书教程

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

1、在本地解压已下载的证书文件,文件包含了Apache、IIS、Nginx、Tomcat4个文件夹和1个“domain.csr”文件,如下图所示:

2、上传SSL证书

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

mkdir /etc/nginx/cert

上传SSL证书文件到WEB服务器

使用WinSCP工具以SFTP方式登录WEB服务器,上传“cert.key”及“cert.crt”到WEB服务器的 /etc/nginx/cert目录中,如下图所示。

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 回车,如果浏览器地址栏显示安全锁标识,则说明证书安装成功,如下图所示。


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

WordPress安全篇(1):WordPress网站启用HTTPS详细教程的更多相关文章

  1. 记一次免费让网站启用HTTPS的过程

    写在前面 个人网站运行将近2个月了,期间根据酷壳的一篇教程如何免费的让网站启用HTTPS做了一次,中间遇到问题就放下了.昨天孙三苗问我网站地址说要添加友链,出于好奇想看他网站长什么样,顺道也加一下友链 ...

  2. 如何免费的让网站启用https

    本文源自酷壳:如何免费的让网站启用HTTPS 今天,我把CoolShell变成https的安全访问了.我承认这件事有点晚了,因为之前的HTTP的问题也有网友告诉我,被国内的电信运营商在访问我的网站时加 ...

  3. 如何为网站启用HTTPS加密传输协议

    前言 当今时代对上网的安全性要求比以前更高,chrome和firefox也都大力支持网站使用HTTPS,苹果也从2017年开始在iOS 10系统中强制app使用HTTPS来传输数据,微信小程序也是要求 ...

  4. Java自动化测试框架-07 - TestNG之Factory篇 - 欢快畅游梦幻工厂(详细教程)

    简介 最近忙着装修博客园,没时间更新文章,今天终于抽出时间把上次写的一半的文章给写完了,新的博客园风格,希望大家喜欢.今天继续介绍testng的相关知识--工厂. 工厂允许你动态的创建测试.例如,假设 ...

  5. 🔥《手把手教你》系列练习篇之1-python+ selenium自动化测试(详细教程)

    1.简介 相信各位小伙伴或者同学们通过前面已经介绍了的Python+Selenium基础篇,通过前面几篇文章的介绍和练习,Selenium+Python的webUI自动化测试算是 一只脚已经迈入这个门 ...

  6. 《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)

    1.  简介 今天我们继续前边的练习,学习和练习一下:如何使用webdriver方法获取操作复选框-CheckBox.测试不同的分辨率.如何断言title.如何获取某一个元素的text属性值等等,这些 ...

  7. 阿里云服务器,http免费转https详细教程

    1.搜ssl证书,点击立即购买 2.这里我们选择免费证书,点击右边立即购买,去支付 购买完成之后,申请证书状态会显示在审核中,不过很快的,几分钟就申请成功了,以下就是我申请成功的界面,因为我服务器用的 ...

  8. 《手把手教你》系列练习篇之2-python+ selenium自动化测试(详细教程)

    1. 简介 今天我们还是继续练习练习基本功,各位小伙伴要耐住住性子,要耐得住寂寞啊,不要急躁,后面你会感谢你在前边的不断练习的.到后面也是检验你前边的学习成果的一次很好实践. 本文介绍如何通过link ...

  9. 《手把手教你》系列练习篇之3-python+ selenium自动化测试(详细教程)

    1.  简介 前面介绍了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介绍webdriver ...

随机推荐

  1. Win64 驱动内核编程-26.强制结束进程

    强制结束进程 依然已经走到驱动这一层了,那么通常结束掉一个进程不是什么难的事情.同时因为win64 位的各种保护,导致大家慢慢的已经不敢HOOK了,当然这指的是产品.作为学习和破解的话当然可以尝试各种 ...

  2. Mybatis 遍历 List<Map<String,Object>>

    在上一篇博客中总结了MyBatis Plus 实现多表分页模糊查询(链接在最后).返回类型是编写一个专门的vo类.这次是返回List < Map > 前言 ​ 编写一个专门的vo返回类,主 ...

  3. JPEG头部解析

    6.3 JPEG格式       6.3.1简介  微处理机中的存放顺序有正序(big endian)和逆序(little endian)之分.正序存放就是高字节存放在前低字节在后,而逆序存放就是低字 ...

  4. HEVC学习(一) —— HM的使用

    http://blog.csdn.net/hevc_cjl/article/details/8169182 首先自然是先把这个测试模型下载下来,链接地址如下:https://hevc.hhi.frau ...

  5. 百万级数据mysql查询优化

    一.limit越往后越慢的原因 当我们使用limit来对数据进行分页操作的时,会发现:查看前几页的时候,发现速度非常快,比如 limit 200,25,瞬间就出来了.但是越往后,速度就越慢,特别是百万 ...

  6. 【转载】使用rdp协议访问远程Linux桌面

    使用rdp协议访问远程Linux桌面 2017年03月31日 16:23:49 太阳之影 阅读数:2169   一般情况下,如果需要登陆远程Linux系统,我们会使用ssh/telnet来完成,如果需 ...

  7. 【BIGDATA】Grafana告警之webhook的坑

    近日搭建一套基于ELK&Grafana的监控告警平台,目的是将生产端某性能日志导入ES中,通过Grafana进行可视化监测,同时设置告警. 告警内容推送到自建的webhook服务后,转发到指定 ...

  8. /etc/ssh/sshd_config ssh自动断 cent7

    vim /etc/ssh/sshd_config ClientAliveInterval 60ClientAliveCountMax 8630000 ClientAliveInterval 30Cli ...

  9. 自用Chrome插件推荐【附教程及下载】

    自用Chrome插件推荐[附教程及下载] 豆子   1,675 人赞同了该文章 2019.11.03更新 原文同步发布在我的个人博客 Chrome插件自用​blog.douzi.work 都是我自己一 ...

  10. DOCKER学习_016:Docker镜像仓库和HARBOR的简单安装和管理

    一 镜像仓库介绍 1.1 简介 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有 ...