在Rancher中使用letsencrypt (ACME v2)

rancher中letsencrypt应用用于自动续签证书并且配置到SLB上.

在应用商店启动letsencrypt

image.png

有很多选项需要填写, 但只需要注意这个选项, 除此之外的全部默认即可.

挑战方式

在这里使用letsencrypt的http挑战方式最为方便和通用, 不知道什么是letsencrypt挑战的同学可以去找找资料.

添加/.well-known/acme-challenge路由到letsencrypt

启动应用后, 去看容器的日志, 发现

2019/2/19 上午10:30:33time="2019-02-19T02:30:33Z" level=info msg="Starting Let's Encrypt Certificate Manager v0.5.0 0913231"
2019/2/19 上午10:30:33time="2019-02-19T02:30:33Z" level=info msg="Generating private key (2048) for 1019654929@qq.com."
2019/2/19 上午10:30:34time="2019-02-19T02:30:34Z" level=info msg="Creating Let's Encrypt account for 1019654929@qq.com"
2019/2/19 上午10:30:36time="2019-02-19T02:30:36Z" level=info msg="Using Let's Encrypt Production API"
2019/2/19 上午10:30:36time="2019-02-19T02:30:36Z" level=info msg="Using HTTP challenge: Sleeping for 120 seconds before requesting certificate"
2019/2/19 上午10:30:36time="2019-02-19T02:30:36Z" level=info msg="Make sure that HTTP requests for '/.well-known/acme-challenge' for all certificate domains are forwarded to port 80 of the container running this application"

了解过letsencrypt的"挑战"机制的同学就应该明白最后一句话的意思.

现在需要我们将域名的/.well-known/acme-challenge路由转发(也就是代理)到这个应用以实现挑战. 如我要申请的域名是: bysir.top 那么需要将bysir.top/.well-known/acme-challenge 代理到letsencrypt应用.

具体如何转发, 如果网络服务器使用的不是rancher, 比如nginx, 就有点麻烦了, 不过也是能实现的, 这里不多说了.

如果你的网络服务器使用的是rancher的slb(负载均衡), 那么你只需要在slb添加一条代理规则:


打开letencrypt应用的日志, 稍等一会, 就能看到成功的提示. 如果不成功, 多多检查代理是否正确.

在letsencrypt应用签发证书期间(挑战期间), 可以通过访问bysir.top/.well-known/acme-challenge/xx 检查代理是否正确.
如果正确, 网址会返回404.

添加证书到SLB

letencrypt应用获取到证书之后, 会在Rancher->基础架构->证书中添加一个证书.

重新打开域名的SLB, 添加上https协议的代理, 并在底部选择刚才的证书即可.


证书

至此letencrypt应用就会自动续签证书并且更新到SLB上.

自定义haproxy.cfg

rancher支持自定义haproxy的配置, 这里只列举一个配置项: http跳转https. 其他配置请参考此

frontend 80
    redirect scheme https if !{ ssl_fc }

或者如果你想再判断一下域名跳转, 可以这样

frontend 80
    acl is_uc hdr_beg(host) -i bysit.top
    acl http ssl_fc,not
    redirect scheme https if is_uc http METH_GET

其中

  • 80是http代理监听的端口号.
  • METH_GET 表示只有GET方法的时候才跳转.

升级到ACME v2

今天(2019/11/12)发现letsencrypt容器启动不了, 查看报错发现是因为ACME v1不再维护了: End of Life Plan for ACMEv1.

怎么办呢, 查看rancher的应用商店没发现有更新, 这个时候就需要去伟大的Github看看了.

幸运的事在rancher-letsencrypt找到了一个相关issue, Wildcard/ACME v2 support, 更幸运的是有一个位好心人评论到一个支持ACME v2的项目:

节约了大把生命

感谢, 现在仅仅需要点击升级将image替换为vxcontrol/rancher-letsencrypt:v1.0.0就好了

image.png

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259