如何给你的wordpress站点(LNMP环境)安装SSL证书

前提条件

  在依据本教程给你的个人网站安装SSL证书之前,请先确认你已经满足如下几点:

  • 你的wordpress站点是基于LNMP环境搭建的,即(Linux + Nginx + Mysql + PHP)。当然LAMP环境可能大同小异,可是我不会(
  • 请确认你已经准备好安装SSL所需要的证书文件。
    由于本站的服务器是腾讯云的,所以下面以腾讯云为例。在腾讯云购买的域名进行相关申请后即可以下载ssl证书文件,如下图所示:

    然后我们点击Nginx类型的证书进行下载就会得到文件xxx.com_nginx.zip(xxx.com就是你网站相应的域名),该文件解压后会获得如下几个文件:

    • xxx.com_bundle.crt 证书文件
    • xxx.com_bundle.pem 证书文件
    • xxx.com.key 私钥文件
    • xxx.com.csr CSR文件

至此,我们所需要的准备工作都已完成。

安装证书

上传证书文件至服务器

  其实上传的路径并不严格限制,只要最后你在配置文件中填写的路径可以找到证书文件就可以,一般只需要将xxx.com_bundle.crt 证书文件和xxx.com.key 私钥文件上传至Nginx的/usr/local/nginx/conf路径下即可。

编辑Nginx配置文件

  Nginx配置文件nginx.conf同样位于该路径下/usr/local/nginx/conf,文件具体修改内容如下:

server {
    root /home/wordpress;
    listen 443 ssl;
    #填写绑定证书的域名
    server_name xxx.com;
    #证书文件名称
    ssl_certificate xxx.com_bundle.crt;
    #私钥文件名称
    ssl_certificate_key xxx.com.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    #表示使用的加密套件的类型。
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    #表示使用的TLS协议的类型。
    ssl_prefer_server_ciphers on;
    location / {
    #略 原来啥样就啥样,憋改!
        }
    }

检查配置文件并重启服务

运行以下命令

nginx -t
service nginx restart

现在,你的网站应该用可以用https访问了。

重定向 http转https

最后,我们希望当有人用Http访问网站时可以自动跳转到Https,这时我们只需要在上面提到的nginx.conf中补充如下代码即可:

server {
    listen 80;
    #填写绑定证书的域名
    server_name xxx.com;
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
}

  其实重定向的方法并不只有这一种写法,本文展示的应该是比较新的写法,其他方法的总结,这位大佬的文章已经总结的十分清楚了,有兴趣的可以前去学习,本文就不赘述了。