Post

https免费证书获取方式

一般来说,小项目确实没有https证书需求的。

但是,在某些场景中(比如docker registry使用),就需要默认使用http证书,不然就需要增加安全信任配置, 一个两个还好,多了就麻烦了。

所以这里记录两个很简单的https证书获取方式(两种证书都是从Let’s Encrypt中签发,支持泛域名,默认有效期3个月,会自动续期):

1. 使用acme.sh脚本获取证书

acme.sh 官网

简单的来说,这就是个linux脚本,安装后配置一下,就会自动获取证书,并且也会自动更新。还是很方便的。

首先下载安装acme.sh, 记得修改下邮箱地址

执行curl https://get.acme.sh | sh -s email=my@example.com

我这里是阿里云dns

接着切换到用户根目录,/root/.acme.sh,使用以下命令即可生产证书。这里为两个域名同时生成了证书:

1
2
3
4
5
6
7
    export Ali_Key="LTAI5tE4B8kKTwHkjWT3sVGc"
    export Ali_Secret="bv6SWnP9lqwm4rrryW5IOcWTAn31nIi"
    # 切换为letsencrypt证书提供商
    acme.sh --set-default-ca --server letsencrypt
    # 生成证书
    acme.sh --issue --dns dns_ali  -d dockerpull.local.mtils.cn -d dockerreg.local.mtils.cn

安装说明也参考官网介绍即可,很简单的

acme.sh 安装文档

安装参考1

安装参考2

2. k8s中,使用cert-manager获取免费证书

这个模式只能在k8s集群中安装,也能实现自动续签和签名。大概来说流程如下:

  1. 安装cert-manager

  2. 安装aliyundns-webhook

  3. k8s中配置 ClusterIssuer 即可使用

参考资料如下

阿里dns webhook

安装参考1

This post is licensed under CC BY 4.0 by the author.