Tag Archive: ecs

部署在ECS上的WordPress全站启用HTTPS

前提条件
首先说明本次操作的软硬件环境,若有需要,请针对性参考。

  • WordPress 4.8.1
  • 阿里云ECS服务器
  • 万网已备案域名 [万网已与阿里云官网融合]

申请免费CA证书
云盾证书服务_数字证书管理_CA中心-阿里云

点击上方连接,根据操作步骤进行信息填写,官方说明免费CA证书用于个人测试使用,有效期一年,申请过程无须人工介入审核,等待几分钟之后,会通知你「审核通过」,状态变成「已签发」,如下图所示,进入「下载」环节。


安装OpenSSL
需明确把CA证书安装在哪个web服务器上,官方提供Nginx,Apache,Tomcat,IIS等证书配置说明。
笔者把CA证书安装在Apache上,接着检查Apache上是否已加载mod_ssl module,如无,请前往OpenSSL下载源码,进入安装流程:

或者直接使用yum命令进行安装

借助apxs安装mod_ssl模块
如何把已安装好的OpenSSL模块加载到Apache中着实花了一点时间,在网上搜索了一把,提到的方法基本上倾向于用Apache源码安装mod_ssl模块,显然这种方法会比较繁琐,也比较费时。
找到一种无须编译Apache也可安装mod_ssl模块的方法,但Apache源码也是需要的,安装步骤如下:

  1. 执行whereis openssl,定位openssl的lib和include路径;
  2. 切换到当前目录到/module/ssl;
  3. 执行/etc/httpd/bin/apxs -i -a -D HAVE_OPENSSL=1 -I/usr/include/openssl/ -L/usr/lib64/openssl/ -c *.c -lcrypto -lssl -ldl

安装证书
前面三个步骤来自官方说明。
1. 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214242643870408.key;
2. 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”:

3. 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句:

4. 修改DocumentRoot,打开conf/extra/httpd-ssl.conf,修改里面的DocumentRoot:
/etc/httpd/htdocs修改成/var/www/html,根据站点内容具体存放位置而定。

批量修改图片路径
在完成以上所有步骤之后,我们在访问站点时,打开浏览器的开发者工具->console,我们会看到大量的图片路径报警信息,原因是在配置https之前,所有站点文章中涉及的图片都以http打头的路径保存,现在切换到https,WordPress会提醒你图片应该以https打头的路径进行保存。
那么如何进行修改,网上主流的有两种方法:

  1. 修改站点主题中的functions.php文件,在文件末尾加上替换函数,把对图片的访问经过字符串替换之后,切换到https访问;
  2. 使用phpMyadmin登录站点mysql数据库,对图片路径进行批量更新;
    以上两种方法,网上一搜一大把,请自行前往。

这里介绍第三种,安装插件 点击下载WP Migrate DB ,操作界面干净简单,如下图所示:


操作简单,Find栏目填写源字符串,Replace填写目标字符串,点击执行即可。

以上所有就是实践全站启用https过程中所执行的步骤以及碰到的一些问题一并在步骤里面进行说明,但每个人碰到的情况不一样,欢迎各位进行交流。