使用Halo搭建博客并配置HTTPS

PunkLu 2019年12月22日 2,229次浏览
搭建博客并配置HTTPS
本文记录使用开源博客工具Halo搭建此个人博客并配置的方法。

Halo开源博客项目官方Github地址:

Halo项目地址

安装环境

  1. 安装好JDK的一台云服务器

    安装JDK可参照

    CentOS7安装JDK1.8

  2. 云服务器上服务方提供的免费的有效期一年的SSL证书

下载Halo博客项目

使用如下命令在服务器上下载Halo的jar包:

wget https://github.com/halo-dev/halo/releases/download/v1.1.1/halo-1.1.1.jar -O halo-latest.jar

启动Halo项目

使用如下命令启动Halo项目:

nohup java -jar halo-latest.jar &

启动后的Halo项目默认使用内置的H2数据库,运行在8090端口。

配置HTTPS

首先按照下面这篇文章安装Nginx:

使用yum安装nginx

把云服务器上服务方提供的两个免费SSL证书相关文件下载下来(一个以key为后缀名的文件、一个以pem为后缀名的文件),传到以下Nginx默认配置目录:

/etc/nginx

然后使用下面的命令更改nginx配置:

cd /etc/nginx/conf.d
vi default.conf

将此文件中的默认内容全部清除,替换成以下内容:

server {
listen 443 ssl;
server_name aaa.com;  # 填写服务器域名
root html;
index index.html index.htm;
ssl_certificate 2557946.pem;
ssl_certificate_key 2557946.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;   #站点目录。
index index.html index.htm;
proxy_pass http://1.1.1.1:8090/;  # 填写云服务器的ip及Halo服务对应的8090端口
}
}

server {
 listen 80;
 server_name aaa.com;  # 填写服务器域名
 if ($host = www.aaa.com) {
        return 301 https://$host$request_uri;
 }
 if ($host = aaa.com) {
        return 301 https://$host$request_uri;
 }


 return 404;

}

保存后,使用如下命令检查配置是否正确:

nginx -t

没有问题的话就可以使用如下命令重新加载Nginx配置:

nginx -s reload

重新加载完之后,开启服务器的80端口和HTTPS对应的443端口,并且在配置好云服务器安全组的前提下访问网站,即可发现项目已搭建完成并已配置HTTPS加密。