写在前面......

看过上篇文章后大家应该都可以让自己的WordPress运行起来了。但是不容忽视的是,随着网络安全威胁的日益增加,采用HTTPS已成为网站保护用户数据、提升信任度和符合安全标准的必要措施。HTTPS(超文本传输安全协议)通过在HTTP的基础上增加SSL/TLS协议,实现了数据传输的加密。这种加密可以有效防止数据在传输过程中被截获或篡改,从而保护用户的敏感信息,如登录凭证、个人数据和交易信息等。此外,HTTPS还能防止中间人攻击(MITM),确保数据的完整性和来源的真实性。

在网站的长期运行时我们有时候会根据需要更新域名,更新域名时我们都想尽量让网站的停机或是服务异常的时长尽可能缩短,数据尽量不要出现异常,尽量不要影响搜索引擎排名......(更新域名请参看第二步)

这篇教程就将指导你申请免费的SSL证书并且将自己的Web服务从HTTP升级到HTTPS或者更新自己的域名。

1.申请免费SSL安全证书(已有证书的可跳过这一步)

申请证书大家可以咨询自己的服务器主机提供商是否提供免费的证书,或者看看自己所用的管理面板是否提供了申请证书的功能。

如果上述几条建议都没法让你获取证书的话我们转到OHTTPS

先注册一个账号,注册后登录我们就可以进入控制台了,然后依序点击左侧的证书管理,创建证书,就可以进入创建证书的页面了。

1733566717 2

我们选择右侧的免费版证书,然后选择多域名证书,接着在框中输入自己的域名,每行一个,如果没有特殊需求的话就按下面的格式填写

  • example.com
  • *.example.com

点击下一步就进入验证环节,大家根据自己的情况选择合适的验证方式即可,由于我的域名托管在CloudFlare上,因此我选择了DNS授权验证模式,然后是CloudFlare验证,本文也以此做示范,其他方式的细节在OHTTPS的帮助文档中可查。

先前往CloudFlare的个人资料页,点击API令牌,查看Global API Key,按要求输入自己的密码就可以看到Key了,复制自己的Key备用。

1733567594 Sxaz

然后回到OHTTPS的验证页面,选择自己的验证方式,在邮箱一栏填写自己注册CloudFlare时用的邮箱,密码填写刚刚复制的API Key,然后点击授权验证,等待几秒后显示成功授权即可前往下一步,创建证书。

1733567832 Sax
1733567959 Qq图片20241207183903

等待几分钟后应该就会进去下载证书的页面。

我们下载图示的两个文件,用自己熟悉的方式传输到服务器中,假设为/tmp/fullchain.pem和/tmp/cert.key两个文件。

1733568263 Key

然后我们用如下的命令将证书复制到Nginx的相关目录,你可能需要修改Nginx的配置目录以适应你的服务器环境

sudo mkdir -p /etc/nginx/ssl
sudo cp /tmp/fullchain.pem /etc/nginx/ssl
sudo cp /tmp/cert.key /etc/nginx/ssl

2.修改Nginx配置文件(更新域名的看这里)

由于我们更换了域名,或者想要升级HTTP到HTTPS,我们需要修改Nginx的配置,将证书配置进去,同时我们也要想到可能有部分用户仍然在使用旧的域名或是HTTP来访问我们的网站,我们也需要对这些用户进行引导,让他们跳转到新域名并使用HTTPS。

使用如下命令打开Nginx配置文件,你可能需要修改Nginx的配置目录以适应你的服务器环境

sudo nano /etc/nginx/sites-available/default

我们修改配置文件如下

#更新域名,将原始域名重定向到新域名
server {
    listen 80;
    listen 443 ssl;
    #原本的域名
    server_name olddomain.com ;

    #配置SSL证书和私钥
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;

    #返回301响应代码并跳转到新域名
    return 301 https://newdomain.com$request_uri ;

}

# 引导仍在使用HTTP的用户跳转到HTTPS
server {
    listen 80;
    server_name newdomain.com;
    rewrite ^(.*)$ https://$host$1 permanent;
}

#原本的代码区域
server {
    #更改端口到HTTPS默认使用的443端口
    listen 443 ssl;
    #更改为新域名
    server_name newdomain.com;

    root /var/www/html;
    index index.php index.html index.htm;

    #配置SSL证书和私钥
    ssl_certificate /etc/nginx/ssl/fullchain.pem ;
    ssl_certificate_key /etc/nginx/ssl/cert.key ;

    #以下是原本的配置代码,略
    #......
}

提示

HTTP的301响应代码表示资源已经永久移动到一个新地址了,这也可以指示搜索引擎进行流量转移,是一种SEO友好的跳转方式

请务必将上方配置文件中的olddomain.com,newdomain.com和证书/私钥的路径更改为自身实际。保存退出后使用命令测试配置文件,然后重载Nginx服务使新配置生效

#测试配置文件
sudo nginx -t
#重载Nginx服务
sudo service nginx reload

3.更新WordPress相关设置

当我们迁移到新域名或者升级到HTTPS后也要对WordPress相关设置进行更改

1733569959 1

进入后台,点击设置>常规

1733570010 Image

对这两个字段进行修改,前面为"https://",后面为自己的新域名

4.对页面资源进行修正

有时候我们会发现自己已经迁移到新域名或者使用了HTTPS,但是有部分图片资源无法加载或者浏览器左上角提示混合内容时该怎么办呢

1733570377 Not

首先对文章中的图片链接进行替换,在WordPress后台页面安装一个名为Better Search Replace的插件并启用。

1733570681 Replace

然后转到后台>工具>Better Search Replace

在上方的搜索替换栏中将“http://”更换为“https://”或者将旧域名替换为新域名,然后数据表选择wordpress_posts,不要勾选下方的“Run as Dry Run”,这样才能使操作生效

1733571002 Tab

这个操作将修复你在文章中引用的图片,对于其他图片资源,仔细检查你使用的各个主题,插件是否使用到了图片资源,如果有,手动去更新图片链接,直到所有页面浏览器都显示“连接安全”

1733571169 Safe

5.结语

经过上述步骤你就可以放心的升级到HTTPS以及切换到新域名了,谢谢你看到这里,希望对你有帮助,如有不足请在评论区里指正。

除非注明,否则均为天远日记原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.tqhyg.net/post279.html