通过 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天
,快到期时会有邮件提示,也是一个不错的选择哦