侧边栏壁纸
博主头像
LYMTICS

海纳百川,有容乃大

  • 累计撰写 45 篇文章
  • 累计创建 37 个标签
  • 累计收到 19 条评论

目 录CONTENT

文章目录

给我的Halo博客申请SSL证书

LYMTICS
2022-01-30 / 4 评论 / 0 点赞 / 104 阅读 / 2,151 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

给我的Halo博客申请SSL证书

博客旁边显示一个不安全,强迫症患者表示很难受!

另外还有就是之后想用服务器做微信小程序后端,但是我记得有 HTTPS 的强制要求。

于是乎花费若干时间把这个问题处理了。

应用场景

我的博客是运行在 Docker 里面的,端口映射为 80->80 ,我看了一下,腾讯云给了不同的验证方式,都是服务器的类型:

image

我好像只认识Nginx和Tomcat服务器??

然后我看了一下官方文档,并没有说具体要怎么做,他只说要加nginx配置,大概是要用nginx做一个反向代理吗?于是我在镜像中执行命令nginx,并没有发现安装nginx了。

于是我想,难道是要我自己安装一个nginx,然后做一个反向代理?

我不知道我这么想对不对,但是应该是一个方法。

操作步骤

搞一个证书

这个很简单,就按照腾讯云的教程步骤,很快就能申请成功

nginx 准备

虽然我可以直接在服务器里安装一个nginx,但是我更喜欢在docker中安装一个nginx

docker pull nginx

运行的命令:

docker run \
--name nginx \
-p 443:80 -d\
-v nginx:/etc/nginx \
nginx

没系统学过nginx,配置文件的位置还找了半天,刚开始还以为在 /usr/local/etc/nginx/nginx.conf

按照腾讯云官方说明 SSL 证书 Nginx 服务器 SSL 证书安装部署 上面的描述在 /var/lib/docker/volumes/nginx/_data/conf.d/default.conf 中添加SSL相关的几行配置

检查配置语法:

sudo nginx -t
# 重启
sudo nginx -s reload

image

此时 SSL 这边完成了,然后就要开始进行反向代理的配置了

反向代理

可以参考 教你如何修改运行中的容器端口映射

之前提到了,我的博客的端口映射是 80->80 ,我们要修改一下这个端口给 nginx,所以:

# 一定要先停止服务
service docker stop
# 然后编辑
vim var/lib/docker/containers/xxxx/hostconfig.json

修改映射:

"PortBindings": {
    "8090/tcp": [
        {
            "HostIp": "",
            "HostPort": "8888"
        }
    ]
},

同理,把80和443端口给nginx

然后修改nginx的配置文件

nginx 配置

按照 halo配置 域名和 ssl 这篇文章的说明,配置 nginx,让 80 端口的请求重定向到 443,443的请求重定向到 halo 博客打开的端口:

# 强制重定向
server {
    listen 80; # 监听80端口
    server_name halo.leader755.com;  # 自己的域名
    #把http的域名请求转成https
    return 301 https://$host$request_uri;
}
server {
    listen 443 ssl;
    server_name halo.leader755.com;  # 自己的域名

    # 配置 ssl
      ssl_certificate     /etc/nginx/cert/halo.leader755.com/halo.leader755.com.pem;  # pem文件的路径
    ssl_certificate_key  /etc/nginx/cert/halo.leader755.com/halo.leader755.com.key; # key文件的路径

    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    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://115.159.155.102:8090/; # 这里改为自己服务器ip
    }
}

然后 docker restart nginx 即可!

后记

我觉得这是一个曲线救国的方法,应该会有更正规的方法,因为我觉得既然halo博客自己可以跑起来,那应该是自带某种服务器的,比如绑在war包中的Tomcat?或者自带的nginx?但是我研究这条道路没有什么进展,自己还没来得及学习博客的源码,而且本文这个方法也确实好使,所以就暂时先用这个方法,之后如果有别的好方法再来修改!

之后闲下来可以学习 NGINX 了!!

0

评论区