章工运维 章工运维
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)

章工运维

业精于勤,荒于嬉
首页
  • linux
  • windows
  • 中间件
  • 监控
  • 网络
  • 存储
  • 安全
  • 防火墙
  • 数据库
  • 系统
  • docker
  • 运维工具
  • other
  • elk
  • K8S
  • ansible
  • Jenkins
  • GitLabCI_CD
  • 随笔
  • 面试
  • 工具
  • 收藏夹
  • Shell
  • python
  • golang
友链
  • 索引

    • 分类
    • 标签
    • 归档
    • 首页 (opens new window)
    • 关于我 (opens new window)
    • 图床 (opens new window)
    • 评论 (opens new window)
    • 导航栏 (opens new window)
周刊
GitHub (opens new window)
  • linux

  • windows

  • 中间件

  • 网络

    • tcpdump 抓包分析全攻略
    • 网络代理
    • 网络工具
    • 给你的域名申请一个泛域名证书
      • tcpdump抓包教程
      • Wireshark抓包教程
      • 使用frp实现内网穿透
      • nat vps配置ddns
    • 安全

    • 存储

    • 防火墙

    • 数据库

    • 系统

    • docker

    • other

    • 监控

    • 运维
    • 网络
    章工运维
    2023-04-25
    目录

    给你的域名申请一个泛域名证书

    # 简介

    你还在为个人域名的证书而烦恼嘛?试试 Let’s Encrypt 吧,它能提供免费的泛域名证书,让你的子域名都能有一个安全的小锁头,非常适合因国内云计算厂商 ssl 证书数量限制而困扰的小伙伴,快来试试吧。

    先介绍一下这次主角:letsencrypt.org , 是一个免费的、自动化的、开放的证书颁发机构。截至 2018 年 9 月,它的全球 SSL 证书市场份额已超过 50%,得到主流浏览器和厂商的认可与支持。Let’s Encrypt 证书提供免费的申请,但每次申请到的 SSL 证书有效期只有 90 天,可以通过脚本实现提前自动续约达到自动化永久免费使用的目的。

    利用 Let’s Encrypt 免费提供泛域名证书的申请,我们可以借助服务器脚本实现到期续签,自动刷新过期时间。

    # 准备

    一个域名

    一台服务器(用于申请证书以及运行续签脚本)

    本教程以申请 aqcoder.cn(腾讯云)以及 notifyou.top(阿里云)的泛域名证书为例

    # 下载仓库

    下载仓库:

    git clone https://github.com/acmesh-official/acme.sh.git 
    
    1

    下载仓库 (加速):

    git clone https://gitclone.com/github.com/acmesh-official/acme.sh.git 
    
    1

    # 上传acme.sh

    上传 acme.sh 到服务器 /root 目录,使用 root 用户执行后面的命令(acme.sh 也有说明可以使用其他用户运行,但为确保一些权限问题,先使用 root 用户运行成功,再尝试使用其他用户)

    # 执行安装命令

    sh acme.sh --install
    
    1

    # 申请阿里云key和Secret

    # 配置secretkey和secretid

    域名服务商申请 SecretId 和 SecretKey,阿里云的查看这里,腾讯云的查看这里

    将上述的 SecretKey 和 SecretId 写到 ~/..bash_profile,保存方法:https://github.com/acmesh-official/acme.sh/wiki/dnsapi

     .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    
    PATH=$PATH:$HOME/bin
    
    #腾讯云
    export DP_Id="A1111111111111111s"
    export DP_Key="F11111111111111111b"
    
    #阿里云
    export Ali_Key="L1111111111111111111t"
    export Ali_Secret="p1111111111111111C"
    
    export PATH
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    # 申请证书

    #腾讯云
    sh acme.sh --issue --dns dns_dp -d aqcoder.cn  -d *.aqcoder.cn
    
    #阿里云
    sh acme.sh --issue --dns dns_ali -d aqcoder.cn  -d *.aqcoder.cn
    
    1
    2
    3
    4
    5

    出现错误是因为还没有通过 Let’s Encrypt 验证,而 Let’s Encrypt 提供两种方式验证,一个是 HTTP 文件验证,一个是 DNS-API 验证,这里推荐使用 DNS-API 验证

    26b4449f62ecc258.png

    # 添加解析

    阿里云添加 TXT 解析

    341efe7c875cefa2.png

    腾讯云添加 TXT 解析

    74fc803e7329a33a.png

    # 重新运行

    稍等片刻重新运行,记得添加 --renew 参数

    #腾讯云
    sh acme.sh --issue --dns dns_dp -d aqcoder.cn  -d *.aqcoder.cn --renew
    
    #阿里云
    sh acme.sh --issue --dns dns_ali -d aqcoder.cn  -d *.aqcoder.cn --renew
    
    1
    2
    3
    4
    5

    39c23fa47657420a.png

    # 查看定时任务

    crontab -e
    
    1

    可以看到,acme.sh 已经生成一个定时任务了

    ba6bcd825492a274.png

    # 拷贝证书

    sh acme.sh --install-cert -d aqcoder.cn \ 
    --key-file /etc/ssl/aqcoder.cn/aqcoder.cn.key  \
    --fullchain-file /etc/ssl/aqcoder.cn/aqcoder.cn.cer  \
    --reloadcmd 'service nginx force-reload'
    #cer证书windows用的比较多
    
    #linux另外一种格式证书
    acme.sh --install-cert -d zzppjj.top \
    --cert-file /data/acme/zzppjj.top/cert.pem \
    --key-file /data/acme/zzppjj.top/key.pem \
    --fullchain-file /data/acme/zzppjj.top/fullchain.pem \
    --reloadcmd "echo \$(date -d \"\$current\" +%s) > /data/acme/zzppjj.top/time.log"
    
    
    #另一种创建方式,crt证书linux系统比较多
    /root/.acme.sh/acme.sh --install-cert -d zzppjj.top --key-file /cert/zzppjj.top.key  --fullchain-file /cert/zzppjj.top.crt --reloadcmd   "/data/nginx/sbin/nginx -s reload"
    #添加定时任务
    
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    拷贝证书可以让 acme.sh 申请到的证书复制到指定目录,执行后拷贝证书的操作也会在定时任务中。

    # 测试

    # 添加解析

    341efe7c875cefa2.png

    # nginx配置

    zzppjj.top

    #test.aqcoder.cn
    server {
        listen 80;
        server_name test.zzppjj.top;
    
        rewrite ^(.*)$ https://$host$request_uri;
    }
    
    
    server {
        listen 443 ssl;
        server_name test.zzppjj.top;
    
        ssl_certificate /etc/ssl/aqcoder.cn/aqcoder.cn.cer;
        ssl_certificate_key /etc/ssl/aqcoder.cn/aqcoder.cn.key;
        ssl_session_cache    shared:SSL:4m;
        ssl_session_timeout  10m;
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;
        charset utf-8;
    
        location / {
            proxy_pass http://127.0.0.1:5704;
        }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    # 访问成功,出现https安全小锁头

    db9eacf052839dca.jpg


    [原文链接](给你的域名申请一个泛域名证书吧 | 枫叶 (opens new window))

    # 参考文章

    Let’s Encrypt 免费泛域名 SSL 证书申请及自动续签 (opens new window))

    第一次使用acme.sh 手动生成证书 (opens new window)

    acme从letsencrypt 生成免费通配符/泛域名SSL证书并自动续期 (opens new window)

    dnsapi · acmesh-official/acme.sh Wiki (opens new window)

    微信 支付宝
    上次更新: 2024/12/10, 11:13:28

    ← 网络工具 tcpdump抓包教程→

    最近更新
    01
    shell脚本模块集合
    05-13
    02
    生活小技巧(认知版)
    04-29
    03
    生活小技巧(防骗版)
    04-29
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 | 点击查看十年之约 | 鄂ICP备2024072800号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式