几年来, 随着越来越多的人们意识到网络安全的重要性, 将网站从Http转向Https已经成为大势所趋. Http的危险性来源于其信息传输的方式, 因为http是直接以"明文"传输的. 所以, 访问未经加密网站的用户极容易泄露重要的隐私或个人信息.(以后我可能会写一些关于中间人攻击和网路嗅探的博客). 或许很多人已经知道了, 谷歌和百度正在极力地推广https的并努力使其全覆盖. Google Chrome就算是很好的例子, 当其用户在访问http网站的时候, 谷歌浏览器会在左上角直接弹出提示"Not secure" - 毫不留情!

https科普

我在这篇博客就不细讲https的工作原理和好处了, 其大概也就是使用SSL证书 + 公钥加密技术而已. 很多人认为https会减慢页面加载速度并增加服务器负担, 但事实是完全相反的 - https的加载速度比http快(经测试有超过60%的提升)! 测试链接. 看你还转不转https!

转https注意事项

网站转https是一件很严肃的事情, 如操作不慎, 极有可能造成严重的后果, 如:

  • 谷歌百度搜索排名惩罚.
  • Soical counts 丢失
  • 页面部分服务无法访问

所以说, 在执行以下操作时, 请先请备服务器重要数据.

转https To Do List

  • 获取SSL证书(免费)
  • 在wordpress中设置强制Https(Https重定向)
  • 更新博客所有 hard-coded 链接, 并将其改为https
  • 修复 Mixed Content(混合内容) 错误
  • CDN更新

教程需知

本篇博客仅覆盖何获取免费的SSL证书和nginx服务器配置, 本主机地环境为 Ubuntu18.10 + nginx + PHP7.2, 其它系统环境不保证此方案地可行性.

SSL证书安装教程

本次教程采用是SSL证书来自LetsEncrypt, 是一个能免费为网站提供SSL的公益机构???

准备步骤 - git的安装

你需要在Linux中安装 git

Ubuntu, Debian
sudo apt-get update
sudo apt-get install git-all
RedHat, CentOS
sudo yum update
sudo yum install git-all
LetsEncrypt 安装步骤
mkdir ~/src
cd ~/src
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
sudo chmod g+x letsencrypt-auto
./letsencrypt-auto

当letsencrypt-auto 运行后, 会自行为你配置所有的配置文件, 有几个交互需要你输入相关信息.

  • 首先你需要输入你的邮箱地址, 这个邮箱将会用于发送一些关于SSL证书的紧急通知
  • 随后便是一些服务条款, 确认就是了.
  • 紧接着输入你的服务器域名, 邮箱等

当所有交互完成后, letsencrypt-auto一般会自动为你配置好nginx配置, 但是不妨去检查一下.

sudo vim /etc/nginx/sites-enabled/default

在配置文件中,应确保服务器是否正在侦听443端口并正确定义了SSL证书位置。你的nginx配置文件应更新了如下配置:

server {
    listen 443;
    server_name yourdomain.com sub.yourdomain.com;

    root /usr/share/nginx/www;
    index index.html index.htm;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; 
}

随后, 重启nginx服务器:

sudo service nginx restart

之后, SSL就正式安装完成了, 但是注意还要在wordpress常规设置中修改: WordPress地址(URL) 和 站点地址(URL)哦.

其他步骤不做详解, 具体请按照 "转https To Do List".


一沙一世界,一花一天堂。君掌盛无边,刹那成永恒。