麒麟臂不服不行

# 蓝月登峰
SLOW MAKES BETTER
  1. 首页
  2. 网络
  3. 正文

免费HTTPS证书申请

2022年5月27日 2705点热度 2人点赞 0条评论

1.为什么要用HTTPS证书

在开始申请免费证书之前,我想要聊一聊为什么网站要使用SSL证书,如今的网站普遍启用了https证书通信,而在5年前还只有部分大公司的网站会这么做

是什么推动了https证书的普及?我总结了下面三点

  1. 网络安全意识的提升
  2. 网络带宽的提高
  3. 证书申请的难度降低

首先,人们的网络安全意识有了明显的提升,尤其是主流浏览器对使用了https的网站给予了更友好的提示,相反对于依然采用http的网站直接提示不安全,甚至需要用户手动确认风险后才允许访问。

其次,以前各大站点一直认为https由于多出来的验证机制会降低站点的访问速度,影响用户体验,但随着网络硬件的提升,那一丢丢性能损失逐渐变得无关紧要。

最后,随着各大主机商,云服务商,还有第三方免费ca证书的提供,申请一套证书变得越来越容易,也促进了HTTPS的普及

2.如何申请免费的HTTPS正式

本来还想聊一聊什么是HTTPS,为啥HTTPS能保证安全,为啥有的收费有的不收费,但发现想把这个讲清楚篇幅可能有点长,以后再起一篇文章吧

下面直奔主题,申请免费HTTPS正式

免费的证书当然当然要用letsencrypt的啦,毕竟是全球知名的非盈利性证书颁发机构

根据官网介绍你只要通过ACME 协议就可以免费申请到证书,而且官方推荐使用Certbot来申请,但我试试了这东西,安装环境挺麻烦的,一步步弄下来不太容易得样子,于是我找到了LEGO -- 一款go语言实现的ACME客户端,得益于go简易的运行环境要求,这个款客户端立刻吸引了我,阅读文档后发现这玩意还支持两家国内主流云服务商的DNS验证,简直不要太方便了

  • 下载可用lego客户端:
    我本来是在https://github.com/go-acme/lego上直接下载了最新的release的,但发现最新的release居然针对腾讯云dns验证有bug,无奈,只能手动从源码编译了(当然你也可以使用docker或者从包管理工具里安装)

    ## 注意你需要go的编译环境, 生成的lego在/lego/dist下
    git clone git@github.com:go-acme/lego.git
    make        # tests + doc + build
    make build  # only build

    如果你对go语言有一定了解的话当然可以直接 go build ...

  • 使用阿里云验证:

    # 注意先在控制台解析DNS
    # Setup using instance RAM role
    ALICLOUD_RAM_ROLE=lego \
    lego --email myemail@example.com --dns alidns --domains my.example.org run
    # Or, using credentials
    ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx \
    ALICLOUD_SECRET_KEY=your-secret-key \
    ALICLOUD_SECURITY_TOKEN=your-sts-token \
    lego --email myemail@example.com --dns alidns --domains my.example.org run
  • 使用腾讯云

    # 注意先在控制台解析DNS
    TENCENTCLOUD_SECRET_ID=abcdefghijklmnopqrstuvwx \
    TENCENTCLOUD_SECRET_KEY=your-secret-key \
    lego --email myemail@example.com --dns tencentcloud --domains my.example.org run
  • 默认配置下获得的证书会出现在当前目录的.lego/certificates下
    my.example.org.crt和my.example.org.key就是要用到的证书
    可以通过参数调整获得perm的证书

    -rw------- 1 root root 5337 May 21 19:06 my.example.org.crt
    -rw------- 1 root root 3751 May 21 19:06 my.example.org.issuer.crt
    -rw------- 1 root root  236 May 21 19:06 my.example.org.json
    -rw------- 1 root root  227 May 21 19:06 my.example.org.key
  • 如果出现timeout的情况,那么很有可能是本地的网络不太行,更换DNS或者使用云服务器生成证书将会是一个有效的办法

  • 证书的有效期是90天,临期时你可以更新你的证书

    # 常规http验证, 45天时更新
    lego --email="foo@bar.com" --domains="example.com" --http renew --days 45
    # DNS验证, 注意环境变量这里省略了
    lego --email myemail@example.com --dns alidns --domains my.example.org renew --days 45
    # 还可以在更新后执行hook, 比如重加载nginx配置
    lego --email="foo@bar.com" --domains="example.com" --http renew --renew-hook="nginx -s reload"

最后一点小提醒:
申请证书是有限制的,重复的证书一周最多五次,当然你可以使用测试环境https://acme-staging-v02.api.letsencrypt.org/directory

具体其他限制可以参考:https://letsencrypt.org/zh-cn/docs/staging-environment/

完结

标签: CA HTTPS LEGO 证书
最后更新:2022年6月10日

mysens

Keep Code Simple

点赞
下一篇 >
订阅评论
提醒
guest

guest

0 评论
内联反馈
查看所有评论

mysens

Keep Code Simple

最新 热点 随机
最新 热点 随机
istio环境下mysql连接失败问题 常见的docker hub mirror镜像仓库 wordpress使用云服务实现图片上传自动添加水印 jdk8默认开启UseAdaptiveSizePolicy造成的fullgc CPU伪共享的浅析 docker + nginx + wordpress建站
istio环境下mysql连接失败问题
免费HTTPS证书申请 为什么要用HTTPS? wordpress使用云服务实现图片上传自动添加水印 磁盘空间没有释放的问题 CPU伪共享的浅析 istio环境下mysql连接失败问题
标签聚合
证书 HTTPS CPU 对称加密 建站 CA 安全 非对称加密

COPYRIGHT © 2022 麒麟臂不服不行. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备18005036号

鄂公网安备 42010602004698号

wpDiscuz