标签:HTTPS

站点、MYSQL跨服务器迁移及申请泛域名SSL证书并向HTTPS迁移

站点、MYSQL跨服务器迁移及申请泛域名SSL证书并向HTTPS迁移

花了一个通宵完成了个人站点、博客、数据库的迁移并且全站到CDN、对象存储都上了HTTPS。然而找性价比高的服务商花了一个月。贫穷是原罪。

最终找到的是腾讯云的服务,发现还有学生体验名额?果断买了一年……独立1C2G1M¥10/M还要什么自行车,配上¥3/M的乞丐版独立MYSQL数据库虽然种种功能都不对我开放但我好歹把MYSQL请了出去。

记正题。新服务器为了省心采用了著名的LNMP安装包,时下最新1.5稳定版。单作客户端无需安装MYSQL,使用PHP7.2。下载安装时间都稍长,建议在tmux或screen等辅助下进行以便(ssh session)断线重连。静态站点迁移就是想办法复制文件夹到新目的地。Wordpress站点也并无太大差别,大可放心迁移。

数据库迁移稍显麻烦。腾讯云提供了数据迁移功能奈何乞丐版无法使用。phpMyadmin提供的导入选项文件不超过2M属实鸡肋。最终采用在原始主机上使用mysqldump命令序列化指定数据库为sql文件,再连接远程数据库source进去的方法实现。需要注意的是为了避免编码问题,尽管查看了dump下来的sql文件包含了创建同名数据库语句,但我仍事先手动建立了utf8编码数据库,use之后进行的source。虽然结果可能没有什么差别。

之后远程连接数据库为Wordpress建立一个账户,只对目标数据库grant所有权限。在Wordpress目录下wp-config中修改database host、database username和database password(这几个变量好像叫这个名字……总之进去一看就认出来了)。需要说明的是这里的host测试下是可以带端口的,即ip:port格式。

回到LNMP设置。接下来配置Nginx及申请泛域名证书并上HTTPS。泛域名证书属实昂贵,但开源界提供了应该是全球唯一的一个乞丐之选,Let’s Encrypt。唯一的缺点是有效期仅三个月,我刚申请完导入到腾讯云证书管理它就提示我“即将过期”……不过无妨,申请过程基本实现了全自动化,可以自动续期。

我拥有darkray.cn域名,目前公开使用的二级域名有blog.darkray.cn、wx***.darkray.cn(API用途)、www。思路是除去API不动,blog单指向博客,其他包括一级域名全部解析到个人主页上去,且除API,其余全部使用泛域名一张证书,也方便管理。那么流程是首先给泛域名申请证书,之后将证书放在blog上使用。

尝试了LNMP在新建虚拟主机(vhost add)时是不能申请泛域名证书的。

    1. 首先需要参考LNMP.org关于申请Let’s Encrypt泛域名证书的说明,获取你域名DNS服务商的API密钥,并按说明export到环境中。腾讯的是DNSPod+。必须使用lnmp dnsssl [DNS服务商简称如dp]命令先为泛域名申请证书,该命令似乎同时会添加虚拟主机。主域名darkray.cn,其他域名*.darkray.cn。申请完成后nginx配置也应完成,可以自行修改Nginx vhost conf添加301http强制跳转规则。

  1. 之后使用lnmp vhost add添加其他虚拟主机,SSL证书一步选择自行添加证书,证书应填写fullchain.cer路径,密钥为domain.key的路径。设置完成后同样可自行修改conf添加HTTP301跳转HTTPS规则。

All done.