手把手教你使用Halo用Caddy或Nginx来进行Https访问

配置Nginx

这里为了配置方便使用了Halo官方的配置。

安装Nginx

# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 安装 Nginx
sudo yum install -y nginx

# 启动 Nginx
sudo systemctl start nginx.service

# 设置开机自启 Nginx
sudo systemctl enable nginx.service

配置Nginx

# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/nginx.conf

防止小伙伴无法科学上网。可以拷贝一下内容到/etc/nginx/conf.d/halo.conf中。

server {
    listen 80;

    server_name example.com www.example.com;

    client_max_body_size 1024m;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://127.0.0.1:8090/;
    }
}

注意:请把 example.com 改为自己的域名。

重载Nginx

# 检查配置是否有误
sudo nginx -t

# 重载 Nginx 配置
sudo nginx -s reload

配置SSL证书

这里是自动申请并配置证书。

# 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python2-certbot-nginx -y

# 执行配置,中途会询问你的邮箱,如实填写即可
sudo certbot --nginx

# 自动续约
sudo certbot renew --dry-run

在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功

使用Caddy

Caddy 是一款使用Go语言开发的Web服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书。

这里为了配置方便使用了Halo官方的配置。

安装Caddy

# 安装 Caddy 软件包
yum install caddy -y

配置Caddy

# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs https://raw.githubusercontent.com/halo-dev/halo-common/master/Caddyfile

配置内容:

https://www.simple.com {
 gzip
 tls xxxx@xxx.xx
 proxy / localhost:port {
  transparent
 }
}

# 请把 https://www.simple.com 改为自己的域名。
# tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书。
# localhost:port 请将 port 修改为 Halo 的运行端口,默认为 8090。

操作Caddy

# 开启自启 Caddy 服务
systemctl enable caddy

# 启动 Caddy
service caddy start

# 停止运行 Caddy
service caddy stop

# 重启 Caddy
service caddy restart

# 查看 Caddy 运行状态
service caddy status

如果 Caddy 启动出现诸如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 这样的问题,请使用 yum update -y 更新系统。 然后再使用 service caddy restart 重启。 已知 CentOS 7.3 会出现该问题。

Caddy进阶设置

多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com 应该怎么做呢?

# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

修改配置:


# 打开之后我们在原有的基础上添加以上配置
# 将 https://simple.com 和 https://www.simple.com{url} 
# 修改为自己需要的网址就行了,
# 比如我要求访问 ryanc.cc 跳转到 www.ryanc.cc,
# 完整的配置如下:

http://ryanc.cc {
  redir https://www.ryanc.cc{url}
}


https://www.ryanc.cc {
  gzip
  tls i@ryanc.cc
  proxy / localhost:8090 {
    transparent
  }
}

最后重启Caddy即可。

查看原文

修改不是Https的链接

修改域名为Https链接后,如果包含Http链接,同样会被不认为是安全链接。

修改七牛云域名配置

需要下图的协议HTTPS

Https协议查看

如果您还是 HTTP可以修改下图配置来设置HTTPS

1567576319(1)

修改数据库

由于文章等内容的图片路径为绝对路径,所以在更换域名之后,可能会造成部分资源无法正常显示,所以需要去数据库全局替换一下域名。

登录到服务器,使用 vim 打开配置文件:

vim ~/.halo/application.yaml

修改内容如下:

  h2:
    console:
      settings:
        web-allow-others: true
      path: /h2-console
      enabled: true

也就是将web-allow-othersenabledfalse改为了true

改完之后重启 Halo。

接着访问 ip:端口/h2-console 即可登录到控制台,输入配置文件的JDBC,NAME,PASSWORD进行连接H2,执行以下 SQL 语句即可。

UPDATE OPTIONS SET OPTION_VALUE  = replace(OPTION_VALUE , '旧域名','新域名') ;
UPDATE COMMENTS SET AUTHOR_URL  = replace(AUTHOR_URL , '旧域名','新域名') ;
UPDATE PHOTOS SET THUMBNAIL  = replace(THUMBNAIL , '旧域名','新域名') ;
UPDATE PHOTOS SET URL  = replace(URL , '旧域名','新域名') ;
UPDATE POSTS SET FORMAT_CONTENT  = replace(FORMAT_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET ORIGINAL_CONTENT = replace(ORIGINAL_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET THUMBNAIL = replace(THUMBNAIL, '旧域名','新域名') ;
UPDATE THEME_SETTINGS SET SETTING_VALUE = replace(SETTING_VALUE, '旧域名','新域名') ;

查看原文

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.xiaofsu.com/archives/手把手教你如何使用Caddy来使用Https进行访问