通过 GitLab CI 实现 Hexo 持续部署 & 设置 Https 域名
GitLab的持续部署容易解决, 主旨是设置Https 域名
部署
在本地部署成功,并hexo s都没有问题后,就可以开始线上(GitLab)部署啦
设定.gitignore
- 首先在
Repository根目录下编辑.gitignore,排除不需要上传的内容:
1 | .DS_Store |
如果采用 `next` 主题的话,则需要到`/themes/next/.gitnore`进行微调,同时删除`.git`文件夹,否则忽略
打开
/themes/next/.gitnore可以看到,next只保留了自身所需的基本套件,会忽略掉其他个人自定义部分,当gitlab自动部署时,因缺少这些套件,会导致渲染出现各种故障,如背景空白等
- 编辑
/themes/next/.gitnore
1 | ..... |
套件位于`/themes/next/source/lib`,首先删除各套件下`.git`文件夹,其次按需添加即可,前面要加`!`,表示不省略
设定.gitlab-ci.yml
在 Repository 的根目录下新建一个 .gitlab-ci.yml 你就可以实现 GitLab 的 CI 平台执行自动部署。
1 | image: node:v11.0.0 |
在 gitlab 上新建 project

推送 HEXO Repository
首先
在 根目录下,配置文件
_config.yml中,把deploy下推送到github的相关内容注释掉。
OR
在 根目录下.gitlab-ci.yml中,去掉hexo d命令
gitlab 自动构建,所以不需要重新部署,不然报错
在 Repository 的根目录下,运行如下命令
1 | $ git init |
这一步最大的坑,就是各`.git`文件夹必须删除干净,不然会导致推送失败
自定义域名
project -> Setting -> Pages页面中可以通过New Domain来自定义域名

如果你的域名不支持`HTTPS`请不要勾选`Force domain with SSL...`
这里我们将其勾选上,接着添加支持HTTPS的域名,步骤如下:
本文所用SSL证书的验证方式均为DNS(推荐)
Symantec (阿里云)SSL 证书
Symantec(赛门铁克)是信息安全领域全球领先的解决方案提供商,全球最大的信息安全厂商和服务商,最权威的数字证书颁发机构,为企业、个人用户和服务供应商提供广泛的内容和网络安全解决方案, 帮助个人和企业确保信息的安全性、可用性和完整性。 Symantec SSL 数字证书,以及更多安全辅助功能,将网站的安全性和信任度提升到全新水平。
- 首先,申请证书

- 验证

- 在阿里云域名云解析处,填上相应项的内容

- 稍等一会,证书申请成功,已签发,将其下载到本地,一个压缩包,包含
private.key和full_chain.pem这两个文件

- 开始配置自己的域名,拷贝秘钥到相应的条目内

- 配置完秘钥后,需要进行验证。复制
Verification status里面的内容到阿里云进行域名云解析


- 再回到
gitlab页面点击验证,成功后如图所示

- 最后,回到
pages页面,就可以看到添加成功的域名鸟

- 现在可以打开自己的网站,看看证书状态了,
有效期一年哦

Let’s Encrypt SSL 证书
Let's Encrypt是国外一个公共的免费SSL项目,由 Linux 基金会托管,它的来头不小,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由HTTP过渡到HTTPS,目前Facebook等大公司开始加入赞助行列。Let’s Encrypt已经得了 IdenTrust 的交叉签名,这意味着其证书现在已经可以被Mozilla、Google、Microsoft和Apple等主流的浏览器所信任,你只需要在Web 服务器证书链中配置交叉签名,浏览器客户端会自动处理好其它的一切,Let’s Encrypt安装简单,未来大规模采用可能性非常大。
- 同上,大同小异
- 首先,又来申请一个证书,填上自己的域名

- 输入一个邮箱,好方便接受续期邮件,如图所示勾选上后开始创建

- 生成了
2条需要解析的TXT记录

- 接着进行 DNS 验证,同上,去阿里云进行域名云解析

- 再回来
点击验证,生成了相关证书信息

- 下载证书,一个压缩包,包含
private.key和full_chain.pem这两个文件 - 后续,同上,这里略过
- 这个证书的有效期为
90天,快到期时会有邮件提示,也是一个不错的选择哦
