以前我们浏览网页使用的都是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. Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章!

    Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章! 转载 原文章地址:点击 2014-01-09 Windows 怎么知道我已经连接到互联网而不是局域网? 原来当中大有文章! ...

  2. 【maven】Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site)

    问题描述 site一点击就报错,如下 Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (defau ...

  3. Ubuntu20.04安装和配置JDK

    首先在官网下载Linux系统的jdk到本地 创建/java目录 sudo mkdir /java 这是直接创建在根目录下的. 3. 将下载的jdk压缩包移动到java文件夹 sudo mv 你的安装包 ...

  4. 浅谈持续集成(CI)、持续交付(CD)、持续部署(CD)

    CI/CD是实现敏捷和Devops理念的一种方法,具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的 整个生命周期(从集成和测试阶段,到交付和部署).这些关联的事务通常被统称为"CI ...

  5. Python JWT 介绍

    Python JWT 介绍 目录 Python JWT 介绍 1. JWT 介绍 2. JWT 创建 token 2.1 JWT 生成原理 2.2 JWT 校验 token 原理 3. 代码实现 4. ...

  6. 浅入浅出 MySQL 索引

    简单了解索引 首先,索引(Index)是什么?如果我直接告诉你索引是数据库管理系统中的一个有序的数据结构,你可能会有点懵逼. 为了避免这种情况,我打算举几个例子来帮助你更容易的认识索引. 我们查询字典 ...

  7. 记一次 .NET 车联网云端服务 CPU爆高分析

    一:背景 1. 讲故事 前几天有位朋友wx求助,它的程序CPU经常飙满,没找到原因,希望帮忙看一下. 这些天连续接到几个cpu爆高的dump,都看烦了,希望后面再来几个其他方面的dump,从沟通上看, ...

  8. BUAAOO第四单元总结与学期回顾

    第四单元架构设计 第四单元要完成的是对给定UML元素的建模/统计/分析,考虑到UML元素的组织是树状的,很容易想到基于树状的数据结构完成 由于UML元素已经由官方接口给出,因此结点类采用wrapper ...

  9. ZOHO的下一个25年:用心为企业服务

    来源:中国软件网 作者:海策 在25周年会上,ZOHO大中华区总裁侯康宁先生豪情壮志,"25岁的ZOHO,已经成长为非典型一线大厂." 1996年,ZOHO成立.截止2021年,Z ...

  10. 有哪些适合中小企业使用的PaaS平台?

    对于中小企业来说,在业务上同样需要工作流.应用平台来进行支持,但是,面对诸如ERP等动辄好几十万的费用来说,完全是在增加运营成本.如何解决中小企业对于业务应用.工作流管理的需求问题呢?使用PaaS低代 ...