使用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证书。