申请免费SSL证书
前面已经将hexo博客搭建好了,但通过域名访问,浏览器会显示不安全,这是因为没有进行加密传输,也就是没有配置HTTPS导致的
关于HTTPS为什么能够保证安全,已经有很多相关文章了,这里就不过多阐述,重点放在如何将我们之前搭建起来的Hexo博客配置为HTTPS访问
在阿里云可以申请免费SSL证书,如下:
1.登录阿里云找到SSL证书,如果没有可以直接搜索或用右边的箭头查找
2.点击购买证书
3.进行如下选择
4.购买后一般需要填写各种信息进行验证,验证后就签发给你
5.拿到证书后再SSL证书管理控制台将证书下载下来
6.选择Nginx下载,因为之前搭建博客的时候使用的是nginx服务器
7.下载后是一个压缩包,将其解压会得到两个文件,一个是以.pem
结尾的公钥文件,另一个是.key
结尾的私钥文件
安装SSL模块
需要连接远程服务器进行配置
首先切换到源码包下
#cd /usr/local/nginx/nginx-1.19.2
配置信息
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
配置完后,运行make进行编译,注意不要使用make install
命令
#make
然后备份原有已经安装好的nginx
#cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
停止nginx进程
#nginx -s stop
将刚刚编译好的nginx覆盖掉原有的nginx
#cp ./objs/nginx /usr/local/nginx/sbin/
使用下面的命令查看是否加入成功
#nginx -V
出现如下就是成功
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module
开放ECS443端口
因为HTTPS使用的是443端口,因此要在ECS安全组中,开放443端口
Nginx配置
先切换到nginx配置目录下,这里可以使用FTP工具直接使用记事本编辑更方便
#cd /usr/local/nginx/conf
打开nginx.conf
,进入编辑模式
#vim nginx.conf
将listen为80的那个server里添加一行如下代码,位置在location之前都可以
作用是将所有的http,即80端口访问全部转到https访问
rewrite ^(.*)$ hhtps://$host$1 permanent;
在conf这个目录下新建一个cert文件夹,并将之前得到的两个.pem
和.key
文件复制进去
往下将HTTPS server下面的server所有注释取消,改为如下
listen 443 ssl;
server_name 你的域名;
ssl_certificate cert/pem文件全名;
ssl_certificate_key cert/key文件全名;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /home/www/hexo;
index index.html index.htm;
}
保存退出即可
可能出现的问题
我在配置SSL模块的时候出现了一些问题,就是./configure
一直配置不上
如果使用nginx -V
不能显示出正确的configure,那么需要先配置非SSL模块的配置
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module
再使用
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module