HTTPS 证书的免费获取

准备

域名(自备)

acme.sh
acme.sh 是一个自动申请 https 证书的脚本,使用方便,功能也非常强大。
安装:

curl https://get.acme.sh | sh

或者

wget -O - https://get.acme.sh | sh
这样你已经把 acme.sh 这个小工具安装到你本地的 ~/.acme.sh/中了,而不会在你系统的其它地方装些乱七八糟的东西。

常规路线
一些 DNS 服务商,没有提供 API 操作 DNS 的接口,所以整合不进这个工具里。当然我们也还是可以申请证书。
这种方式的好处是, 你不需要任何服务器, 不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次都需要手动再次重新解析验证域名所有权。

常规路线

  1. 通过服务器验证,请查网上资料,优点是可以自动更新证书,缺点是需要使用原域名的80端口进行验证,如果域名已经被墙,则无法使用该方法。
  2. 不需要服务器,不需要任何公网 ip, 只需要 dns 的解析记录即可完成验证. 坏处是,如果不同时配置 Automatic DNS API,使用这种方式 acme.sh 将无法自动更新证书,每次三个月证书过期后,都需要手动再次重新解析验证域名所有权。
本文介绍第二种方法
  1. 申请证书
    acme.sh --issue --dns -d [域名] --yes-I-know-dns-manual-mode-enough-go-ahead-please
    [域名]需替换成实际域名
    参数解释:

acme.sh :表示使用你刚安装好的acme.sh

–issue :申请证书

–dns:使用 DNS 的方式来验证你的所有权,你需要在域名上添加一条 txt 解析记录, 验证域名所有权。

-d [域名]:-d表示 domain,后面跟你要申请域名。

–yes-I-know-dns-manual-mode-enough-go-ahead-please:官方不推荐使用此方式来生成证书,所以有这个额外的参数来提醒你你在做什么。

  1. 添加 txt 记录

HTTPS 证书的免费获取_第1张图片

  • 加好记录后,重新申请证书

  • acme.sh --issue --dns -d [域名] --yes-I-know-dns-manual-mode-enough-go-ahead-please --renew

    1. 应用到 nginx

    修改你 nginx 的配置,配置 https

    server {
        listen 443 ssl;
            # 有了 https 可以尝试开启 http2,加速你的网站 
            # http2 需要你 nginx 加载了 http2 模块,用如下配置开启。
            # listen 443 ssl http2;
            server_name aiwdh.cn;
            ssl_certificate /root/.acme.sh/[域名]/fullchain.cer;
            ssl_certificate_key /root/.acme.sh/[域名]/[域名].key;
            # charset koi8-r;
            access_log  /var/log/nginx/host.access.log  main;
            # 下面写你之前的配置
         }

你可能感兴趣的:(网络协议,https)