0%

Kong API网关是目前市面上最受欢迎的API网关之一。我在之前的文章中简略介绍过如何使用Traefik来部署Kong和Konga。今天这篇博文是应B站网友的留言,给大家讲讲 Kong Oauth2插件的使用。网络上有太多的文章讲解Oauth2的原理,我的文章风格还是以实际操作为主,尽量把每一步都呈现出来让大家可以照着做,今天的这一片也是如此。

阅读本文前提:

  • 一个安装好的使用数据库的Kong。Oauth2插件不支持Hybrid和DBless模式。
  • 可以使用Kong Admin API,我的范例中Admin API使用的默认的8001端口。
  • 读者需要对Oauth2不同grant有一些基本的了解。
阅读全文 »

Traefik Labs在圣诞前后发布了2.4.0-rc1 这个版本。这个版本终于添加了我期待已久的一个ACME的增强功能 External Account Binding. 在做了一些测试之后,我终于可以提笔开始写这篇我早就想写的文章,寄望于本文可以给读者提供一个全方位的在Docker上搭配Traefik使用SSL的指南。尽管本文仅仅提到了在Docker这一个使用场景的说明,但是你应该可以把本文提及的内容适用在其他平台上面。

TL; DR

使用Traefik来部署SSL证书真的非常的方便。你需要做的就是在静态配置里面定义certResolver,然后告诉Traefik你想要哪些服务使用SSL证书以及你想要什么样的证书。Traefik就会自动完成你交给它的任务。

以下是 certResover 的模板 :

1
2
3
4
5
6
7
8
9
10
# Static configuration
certificatesResolvers:
<NAME_YOUR_PROVIDER>:
acme:
caServer: <CA_ACME_DIRECTORY>
email: <YOUR_VALID_EMAIL>
storage: acme.json
<EXTERNAL_ACCOUNT_BINDING>
keyType: <PREFERRED_KEY_ALGORITHM>
<VALIDATION_METHOD>
  • NAME_YOUR_PROVIDER

    你需要给你的certResolver命名方便你自己记忆。比如说名字是LE-http代表这个provider会通过http-01的验证方式从Let’s Encrypt申请证书。你可以创建多个 certificatesResolvers 然后根据需要在router里面设置不同的certResolver。

  • YOUR_VALID_EMAIL :

    你需要提供一个真实的Email地址来接收证书更新通知。如果你用假邮箱申请证书,有一些证书签发机构会拒绝你的申请请求。

  • CA_ACME_DIRECTORY

    有一些商业证书签发机构没有一个固定的ACME链接。客户需要登录到账户里面生成这个链接才行。具体的操作请参考各大商业CA的手册。

  • PREFERRED_KEY_ALGORITHM

    虽然CAB Forum允许使用521 bit的ECC私钥生成的证书,大部分证书签发机构只支持签发256和384位的ECC证书。

  • VALIDATION_METHOD

  • EXTERNAL_ACCOUNT_BINDING (EAB)

    商业证书签发机构(例如Sectigo,Digicert等)要求用户在账户里生成ACME的链接以及EAB凭证。虽然Zerossl提供免费的证书,但是使用它的ACME依然需要创建账户以及生成EAB凭证因为它证书的根是Sectigo的。

阅读全文 »

最近一段时间接触到了Kong API网关。这个产品使用上特别地方便,但是网上的相关的内容虽多但是大多部署都是重复官方文档的内容,有很多我需要实现的功能找不到很好的教程。
我需要实现的功能包括

  • 使用https加密Kong Admin API
  • 实现http到https的自动转接
  • SSL证书的自动部署和更新
  • 部署Konga(第三方的Kong Admin API的图形管理界面)
  • Admin API可以通过服务器直接调用以防Konga出问题

在尝试很多中不同组合之后还是发现使用Traefik作为reverse proxy的方式可以实现上述功能,特记录下来供大家参考。如果您知道其他的正确配置kong的方法,请您不吝赐教。
配置Kong我需要使用file provider来设置,如果您还不清楚Traefik的file provider如何使用,请您参考我的这篇文章。也因为使用的file provider,所以本文不适用我的默认配置,我会把所有的文件内容列出来。

阅读全文 »