分享

如何申请免费的HTTPS证书

 风声之家 2023-02-14 发布于江苏
原文链接

今天,如果你要运营一个网站,那HTTPS已经是必不可少的了. 现在,如果仍然使用HTTP,会面临一些障碍,包括但不限于:

  • 部分浏览器会将HTTP视为不安全的,给以警示甚至是阻止

  • 移动开发中(苹果)已默认禁止HTTP请求

  • HTTP网站容易被劫持并植入广告,非常影响体验

因而,给你的网站加上HTTPS是非常有必要的. 我个人的网站,都一律只支持HTTPS

但是一直以来,影响HTTPS普及的最大问题主要是HTTPS证书需要付费. 如果你知道有完全免费的HTTPS的证书,会不会更积极的使用HTTP?

今天我就简单讲下如何申请免费的HTTPS证书

1. 免费?

是的,有一些商业组织及非赢利组织允许申请免费的HTTPS证书.最著名的包括:

  • Let's Encrypt: 非赢利组织,目的就是为了普及HTTPS

  • ZeroSSL: 一个提供HTTPS证书服务的商业组织,其提供的服务中包含免费版本

并且,上述涉及到的无论是Let's Encrypt还是ZeroSSL,都支持通配符HTTPS证书申请, 比如我以 *.taoofcoding.tech来申请,这样一个证书适合任意二级域名,非常方便实用.

因而,如果不是对HTTPS证书级别要求非常高的需求,比如支付或其它,针对个人网站在内的大部分完全可以考虑申请这样的HTTPS免费证书

当然免费的HTTPS有一些限制, 上述免费HTTPS限制主要是每次申请的证书的有效期只有90天(可无限续期),不过这个问题容易解决,很多开源的工具都支持自动续期。

2. 如何申请

当然,上述所说的无论是 Let's Encrypt还是 ZeroSSL免费证书,你都可以访问其官网,按照它的文档步骤进行申请.

不过按照官网的做法,申请下来并不是非常方便和简单

好在,互联网上永远有优秀的人提供优秀的工具与服务, acme.sh就是这么一个工具.它是专门简化申请免费HTTPS证书的.

acme.sh的特点是:

  • 简化申请流程,在SHELL上就直接完成申请

  • 支持包括Let's Encrypt以及ZeroSSL等多个HTTPS提供商

  • 支持以DNS API以及Nginx或Standalone等不同方式来申请

  • 支持自动续期 (基于Linux的crontab机制)

因此,使用 acme.sh是最方便的申请HTTPS证书的方式之一.

3. 申请步骤

接下来详细的阐述下如何申请免费的HTTPS证书

前提

你需要有一个注册及购买一个能自己管理的域名,同时能SHELL到服务器上(因为acme.sh是以shell方式申请)

1. 安装acme.sh




email改为你自己的邮箱

2. 申请DNSPOD或Cloudfalre的API KEY

acme.sh支持非常多的申请方式,这篇文章中,我选择DNS API的方式,我个人认为它最简单

因为是使用DNS API的方式,所以我们要申请DNS服务提供的API KEY,这里我以国内最著名的DNSPOD以及国外的Cloudflare来简单说明下

DNSPOD申请API KEY*

  1. 进入DNSPOD管理控制台

  2. 个人头像 -- API密钥 --DNSPod Token

  3. 新建密钥




Cloudflare申请API KEY

  1. 进入Cloudflare管理后台

  2. 进入My Profile -- API TOKENS

  3. 新建Global Key




其它DNS服务提供商到acme.sh文档上查阅,步骤大都非常类似

3. 切换HTTPS证书提供商

如前所述, acme.sh支持多个不同的HTTPS服务提供商,包括Let's Encrypt以及ZeroSSL, 它默认使用的是ZeroSSL

我更喜欢Let's Encrypt,它是一个非赢利组织,纯粹为普及HTTPS,而且它的证书更普遍及通用






4. 申请HTTPS证书

申请了DNS服务商的相关KEY并export之后,就可以直接通过acme来申请相关的HTTPS证书了










稍微解释下这个命令

  • --dns dns_dp: 以dns的方式,并且指定使用DnsPod来进行申请

  • -d taoofcoding.tech: 指定申请的域名,同一个证书可以指定多个, *.taoofcoding.tech是通配符方式,指定此网站下的所有二级域名

一切顺利的情况下,最后会输出生成的证书的相关信息






4. 配置HTTPS证书

以最流行的Nginx为例,配置使用HTTPS













如果你希望你的网站只支持HTTPS,不允许使用HTTP访问,那也比较简单,在nginx中加入以下配置







这样当访问HTTP时,会自动跳转到HTTPS

5 续期

需要注意的是,申请到的HTTPS证书只有90天有效期。需要在有效期到期前续期。

如果是用我在这篇文章中的 acme.sh申请的,它会基于Linux的crontab自动续期,无需你担心。

你也可以使用以下命令提前renew的你的证书



就是在申请的命令之上,添加 --force参数就可以了。

如果你想要查询本机上申请了哪些证书,到期时间及下次自动续期时间等。使用 ~/.acme.sh/acme.sh list就可以了。

需要说明的是,除了DNS API申请HTTPS以外, acme.sh还支持 Nginxmode, Standalonemode, Webrootmode等不同方式,适合不同的情况 (比如你没有DNSPOD的管理权限,无法获取KEY等)

总而言之,在今天的互联网,给你的网站加上HTTPS,已经是非常简单并且成本极低的事情了.

你应该毫不犹豫的给你的网站加上HTTPS,还在等什么呢,立刻行动起来!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多