最近发现DNSPods可以免费申请SSL证书,就顺便把自己的网站从http升级到了https访问,下面记录本次升级过程。

      申请证书

      证书是与域名绑定到一起,所以在申请证书前需要申请一个域名,申请完成之后在DNSPod中为指定域名点击申请证书,步骤非常简单,申请完成之后点击下载证书即可。

      nginx配置

      由于我的wordpress是服务器厂商自带的应用程序镜像,参考帮助文章,替换文件即可:

      How to install a commercial SSL certificate
      1. Obtain a certificate from a certificate authority for your domain.
      2.Replace the server.crt and server.key files in /etc/nginx/ssl/ with the commercial certificate. Refer to your certificate vendor's documentation for details.
      3.Reboot the server.

      最后一句重启真是简单又直接。

      修复Bug

      重启完系统后,已经可以通过https访问网站了,但是部分资源是写死用http访问的,因此部分页面可能会出现如下错误提示:

      Mixed Content: The page at ‘xxx’ was loaded over HTTPS, but requested an insecure resource ‘xxx’. This request has been blocked; the content must be served over HTTPS.

      解决这个问题,只需要在head中添加如下标签,将不安全的请求提升为安全的请求:

      <meta http-equiv='Content-Security-Policy' content='upgrade-insecure-requests'>

      在wordpress中只需要修改对应主题文件和wp-admin的header文件,在其中加入上面的标签即可。