栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

阿里云+acme.sh通配符ssl证书

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

阿里云+acme.sh通配符ssl证书

前言 简介

Let’s Encrypt 是一个由非营利性组织互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。它只支持 DV 证书的签发,也就是通过验证域名所有权,然后签发该域名的证书。它支持两种验证方式,一种是通过 HTTP 的方式验证,另一种是通过 DNS 的方式验证,只有这种支持通配符,而今天要讲的就是第二种方式。
官网地址:https://letsencrypt.org

客户端

Let’s Encrypt 使用 ACME 协议来验证您对给定域名的控制权并向您颁发证书。要获得 Let’s Encrypt 证书,就需要选择符合 ACME 协议的客户端软件:

  • 官方

    提供了很多证书的申请方式方法:https://letsencrypt.org/zh-cn/docs/client-options/

  • certbot

    既可以获取证书,也可以安装证书,适用于许多操作系统,并且文档很详细、完善。

  • acme.sh

    目前 Let’s Encrypt 免费证书客户端中最简单、最智能的 shell 脚本,可以自动发布和续订 Let’s Encrypt 中的免费证书

阿里云

由于使用的是 dns 方式,且为了简化自动续签,因此为客户端提供阿里云操作 dns 的账号以及密钥

申请密钥
  1. 登录阿里云
  2. 进入 RAM 访问控制(可直接在右上角搜索:访问控制)
  3. 进入 RAM 中的身份管理中的用户组
  4. 创建用户组
  5. 进入新建的用户组新增授权
  6. 点击左侧用户菜单并创建用户 >访问方式一定要勾选 Open API 调用访问
  7. 将新建的用户添加到前面创建的用户组
  8. 到认证管理中创建 AccessKey

    创建成功后建议直接导出,防止忘了

acme.sh 安装 自动安装

邮箱用于提醒证书过期

curl  https://get.acme.sh | sh -s email=my@example.com
测试收否安装成功
[root@yedajiang44 .acme.sh]# acme.sh --version
https://github.com/acmesh-official/acme.sh
v3.0.1
生成证书 设置环境变量

Ali_Key和Ali_Secret会被保存至~/.acme.sh/account.conf文件中

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
生成

建议启用 --debug 参数,因为可以看到详细的执行过程,否则会很容易误以为命令假死

acme.sh --issue --dns dns_ali -d example.com -d www.example.com --debug

记住输出的目录

配置 nginx

示例:

server {
        listen                          80;
        listen                          443 ssl http2;
        listen                          [::]:443 ssl http2;
        server_name                     ip.yedajiang44.com;
        ssl_certificate                 /home/yedajiang44/.acme.sh/yedajiang44.com/fullchain.cer;
        ssl_certificate_key             /home/yedajiang44/.acme.sh/yedajiang44.com/yedajiang44.com.key;
        ssl_protocols                   TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers                     HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers       on;
        location / {
                default_type text/plain;
                return 200 "$remote_addrn";
        }
}
  • ssl_certificate 一定要设置为fullchain.cer
  • 手动重新加载 nginx
     nginx -s reload
    
总结

至此你的网站已经可以使用 https 了
其实比较麻烦的就是阿里云的密钥,其他的都还好。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号