hexo配置https
Hexo配置Https
之前折腾过WordPress,想弄个SSL玩玩,所以就去申请了免费的证书,一顿操作也就搞定了,现在觉得Hexo也不错,所以就换到了Hexo上,也打算把SSL弄过来。
网上有人说去修改~/your_hexo/node_modules/hexo-server/lib/server.js
,引入express
,然后就修改默认的端口为443就可以,别说,还真的可以,但是也出现了一些其他的问题,比如hexo
有些命令无法执行,报错:80端口被占用。
我对前端的内容不是很了解,也就不想再去调试源码了,但是换个思路一想,其实只需要一个nginx转发一下就可以满足我的需求了,所以,那就动手把。
安装nginx
我目前的系统是Ubuntu 16.04,直接安装nginx,执行如下命令:
1 | apt install nginx |
上传证书
安装完毕之后,上传我们申请到的证书
1 | cd /etc/nginx |
之后将证书上传到新建的ssl文件夹下。
配置SSL并新增转发规则
新建nginx配置文件,监听80和443端口,另外将80端口的访问转发到443端口来
1 | cd /etc/nginx/conf.d/ |
在新增的配置文件中写入如下内容:
1 | server { |
文件保存完毕之后,由于nginx默认监听了80端口,所以需要将nginx默认监听的端口换掉(比如换成81,只要不被占用就行),需要修改如下文件:
1 | vi /etc/nginx/sites-enabled/default |
将默认监听的80换掉即可。
验证nginx配置是否正常,执行如下命令
1 | nginx -t |
没有错误提示即可!
重新加载nginx配置:
1 | nginx -s reload |
验证https是否生效
如果我们此时可以通过https正常访问,那么SSL的配置基本到此就结束了,如果访问不通,那么可以通过两个地方排查:
- hexo是否启动?如果没有启动,需要先执行
hexo s
指令,然后重试 - 服务器是否配置有白名单、防火墙之类的东西?
我目前是使用的云服务器,所以对80和443端口做了放行。
WordPress迁移带来的其他问题
由于之前使用的WordPress,迁移到Hexo之后,原来的链接(搜索引擎的快照)可能就失效了,所以为了避免出现通过搜索引擎无法访问的问题,最好找到那些失效的链接,然后在nginx里手动转发一下。
关于sitemap的问题,如果有需要,重新去生成一个sitemap.xml,然后在nginx中做好转发,然后提交给搜索引擎。