搭建一个https的hexo博客

搭建一个https的hexo博客

0x00 安装环境

1
Ubuntu 16.04.3 LTS

0x01安装nodejs

安装高版本的nodejs,默认的包版本太低。

1
2
3
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt-get install nodejs

0x02安装nginx

用来做服务器,方便后面使用https

1
sudo apt-get install nginx

0x03安装hexo

hexo就是我博客使用的系统,node.js开发的

1
2
3
4
5
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

基本的博客就搭完了,可以选取自己喜欢的主题 :

1
https://hexo.io/themes/

这里我用的是:

1
https://github.com/AlynxZhou/hexo-theme-aria

1
2
3
npm install --save hexo-renderer-njucks hexo-renderer-stylus hexo-generator-search hexo-generator-feed

git clone https://github.com/AlynxZhou/hexo-theme-aria themes/aria

修改你blog目录下的 _config.yml:

修改theme to aria:

1
theme: aria

安装hexo-admin,方便我们在线编辑网站

1
2
npm install --save hexo-admin
hexo server -d

打开 http://3cac:4000/admin/ 可以编辑网站

点击Settings –>Setup authentification here

1
2
3
Username:你的用户名
Password:你的密码
Secret:用于生成cookie的密钥

然后会在Admin Config Section生成代码
复制到你blog目录下的 _config.yml, 然后重启Hexo.就可以用了!

1
2
3
4
admin:
username: username
password_hash: $****$***$***.**************
secret: my super secret phrase

0x04配置博客

修改nginx配置文件

/etc/nginx/sites-enabled/default

1
2
3
4
5
6
7
8
server {
listen 80;
server_name 3cac.com;
location / {
root /home/**/**/blog/public; //你博客的物理地址+public
index index.html;
}
}

为了防止nginx修改root路径之后导致的403,我们需要执行如下命令,赋予nginx目录权限

1
sudo chmod o+x blog

使用pm2启动博客,是一个带有负载均衡功能的Node应用的进程管理器.

1
npm install -g pm2

保存下面代码为start.js

1
2
3
4
5
6
7
8
9
10
11
var spawn = require('child_process').spawn;
free = spawn('hexo', ['server', '-p 1337']); // 其实就是等于执行hexo server -p 1337 将博客启在1337端口上
free.stdout.on('data', function (data) {
console.log('standard output:\n' + data);
});
free.stderr.on('data', function (data) {
console.log('standard error output:\n' + data);
});
free.on('exit', function (code, signal) {
console.log('child process eixt ,exit:' + code);
});

用pm2启动hexo

1
pm2 start app.js

0x05使用Certbot 打造自己免费的https博客

1
2
3
4
5
6
7
8
9
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx

sudo certbot --nginx //按照提示输入邮箱等操作,然后访问3cac.com,已经用上https了

sudo certbot renew --dry-run //自动更新https