使用ACME插件管理SSL证书
简介
ACME插件可以让Kong使用来自Let’s Encrypt或者其他ACMEv2服务的证书,并且支持自动续期。
启用插件
全局启用,但是在配置中可以指定域名规则。
curl -X POST http://<admin-hostname>:8001/plugins/ \
--data "name=acme" \
--data "config.account_email=example@example.com"
配置插件
Kong的配置
Kong需要监听80端口;
kong.conf
文件中需要配置lua_ssl_trusted_certificate
, Ubuntu/Debian一般是:/etc/ssl/certs/ca-certificates.crt
,CentOS/Fedora/RHEL一般是:/etc/ssl/certs/ca-bundle.crt
;
插件配置
ACME插件可以使用Kong的数据库,也可以使用Redis数据库,以Redis为例:
_format_version: "1.1"
# this section is not necessary if there's already a route that matches
# /.well-known/acme-challenge path with http protocol
services:
- name: acme-dummy
url: http://127.0.0.1:65535
routes:
- name: acme-dummy
protocols:
- http
paths:
- /.well-known/acme-challenge
plugins:
- name: acme
config:
account_email: example@myexample.com
domains:
- "*.example.com"
- "example.com"
tos_accepted: true
storage: redis
storage_config:
redis:
host: redis.service
port: 6379
domains字段下配置希望用ACME管理SSL证书的域名。
创建证书
访问上一步配置的域名,如:https://www.example.com,等1分钟左右,ACME会自动申请SSL证书。
在Konga中可见由ACME管理的SSL证书。