作者:小傅哥
博客:https://bugstack.cn

沉淀、分享、成长,让自己和他人都能有所收获!😄

大家好,我是技术UP主小傅哥。

从今年开始,越来越多的云服务厂商开始限制了 ssl 1年期的申请,只提供3个月有效期并且限制数量申请。而购买一个 ssl 证书,一年都至少几千块。那没有 ssl 不行吗?🤔 如果你不害怕自己的小网站被嵌入流量污染变成小yellow广告网站,还是建议你加下 ssl!

img

当你手里有超过1个以上的域名,如 a.comb.com,之后你还对域名使用了多级域名部署不同的服务,如;api.a.comopenai.b.comblog.b.com 那么这个时候一种是对每个域名都申请 ssl 证书,另外一种就是购买更贵的泛域名,支持 *.a.com

除了对域名证书的申请还包括了这些域名证书的管理工作,你得知道他们什么时候到期,什么时候要更新。我见过有些互联网公司也有忘记更新域名的情况,从 https 跳转到了访问微信提示的页面。所以我需要一款 自动续期支持泛域名可视化所有证书时效性可配置CDN的一款工具!好在,我找到了!

一、产品介绍

https://httpsok.com/?p=4kMR - 让证书续期更简单,一行命令,轻松搞定SSL证书自动续期!这一款工具的老板,竟然认识小傅哥!😂

img

已亲自体验,确实挺好用!像傻瓜相机一样,贼简单。

二、ssl证书

步骤1;点击申请

img

步骤2;填写域名

img

步骤3;域名验证

img

步骤4;验证成功

img

步骤5;等待下发

img

步骤6;下载证书

img

  • 这里我们下载 Nginx 的,因为我们的服务是部署 Nginx 的。

三、域名配置

img

  • 配置域名解析,把你要使用的域名和云服务器配置上A记录。这样请求到域名的时候就会解析到服务器的IP了,以及对应的 Nginx 转发。

四、Nginx配置

1. 脚本工程

img

1.1 修改域名

server {
    listen       80;
    listen  [::]:80;
    server_name  ssl01.xiaofuge.tech;

    rewrite ^(.*) https://$server_name$1 permanent;

}

server {
    listen       443 ssl;
    server_name  ssl01.xiaofuge.tech;

    ssl_certificate      /etc/nginx/ssl/_.xiaofuge.tech.pem;
    ssl_certificate_key  /etc/nginx/ssl/_.xiaofuge.tech.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
  • 首先,修改 ssl01.xiaofuge.tech 为你的域名。
  • 之后,修改 ssl 地址信息。这个地址是 docker-compose 映射的地址。如果你是 linux 直接安装,则可以直接使用 acme.sh 安装的时候生成的地址。
  • 注意,更多 Nginx 配置 https://bugstack.cn/md/road-map/nginx.html

1.2 修改证书

version: '3'
# docker-compose -f docker-compose.yml up -d
services:
  nginx:
    image: nginx:1.25.3
    container_name: nginx
    ports:
      - '443:443'
      - '80:80'
    volumes:
      - ./nginx/logs:/var/log/nginx
      - ./nginx/html:/usr/share/nginx/html
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/conf/conf.d:/etc/nginx/conf.d
      - ./nginx/ssl:/etc/nginx/ssl/
    privileged: true
    restart: always
  • 脚本映射了 ssl、conf.d 等文件内容。

2. 上传文件

img

  • 配置信息全部修改后,上传到你的云服务器上。

3. 执行脚本

[root@lavm-aatjb98slj httpsok]# docker-compose up -d
[+] Running 1/1
 ✔ Container nginx  Started    

img

五、访问验证

img

  • 访问地址;https://ssl01.xiaofuge.tech/https://ssl02.xiaofuge.tech/ 验证证书是否部署成功。
  • 如图,验证结果符合预期。

六、自动部署

这个自动部署非常重要,有了它我们就不用操心是什么时候过期,手动处理了!

1. 获取脚本

img

img

2. 执行脚本

img

img

  • 从 Docker Portainer 中的 Nginx 进入执行脚本。

3. 安装查看

img

  • 如上表示自动部署正常,当证书剩余15天过期后,会自动部署。

4. 证书监控

img

  • 这里还能看到每个证书剩余的有效期,还可以看到是哪个IP的服务器在使用。

小傅哥
4.7k 声望28.4k 粉丝

CodeGuide | 程序员编码指南 - 原创文章、案例源码、资料书籍、简历模版等下载。