hexo博客部署云服务器开启https
自己的博客也开通一段时间了,一直没有开启https,今天开启顺便记录一下自己的开启过程。
我的服务器是阿里云的,域名也是再阿里云购买,所以在此选择SSL证书也是阿里云的DV免费版。
获取证书
我这里选择的是阿里云SSL证书,DV免费版,有效期一年。
阿里云SSL证书申请流程可以到阿里云官方网站获取。
在验证域名所有权审核通过后,就可以到SSL证书管理控制台下载对应服务器的证书。
我使用的是Nginx,所以下载对应Nginx版本,解压下载文件后得到两个文件:.key文件和.pem文件。
上传证书到服务器
再服务器上创建一个文件夹,用于存放证书文件,我的路径是:/home/SSL
Nginx配置文件中证书设置
编辑Nginx的配置文件,如/usr/local/nginx/conf/nginx.conf
在配置文件的后边添加下述配置保存重启nginx
1 | server { |
如果使用全站加密,有些用户不知道https访问情况,可以让服务器自动把http的请求重定向到https。再Nginx支持rewrite
再nginx的server listen 80配置中添加
1 | rewrite ^(.*)$ https://$host$1 permanent; |
这样的配置,实现http80请求进来,重定向为https了。
在配置文件配置可能的报错
在centos中,配置nginx的https时,出现如下错误。
nginx: [emerg] unknown directive “ssl” in /usr/local/nginx/conf/nginx.conf:102
解决方法如下
1.到解压的nginx目录下
1 | ./configure --with-http_ssl_module |
2.执行以上仍然出现问题
1 | yum -y install openssl openssl-devel |
3.重新执行
1 | ./configure --with-http_ssl_module |
4.把原来nginx备份,把新的nginx覆盖旧的
1 | cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak |
以上操作就可以解决问题
有些还可能再执行4时候出现
1 | cp: cannot create regular file ‘/usr/local/nginx/sbin/nginx’: Text file busy |
测试nginx是否正确
1 | /usr/local/nginx/sbin/nginx -t |