如何在 kong 中为 API 配置 ssl

How to configure ssl for API in kong

我正在开发 kong 0.13.1。按照文档,我添加了如下证书:

{
    "data": [
        {
            "cert": "certificate is really here", 
            "created_at": 1529667116000, 
            "id": "6ae77f49-a13f-45b1-a370-8d53b35d7bfd", 
            "key": "The key is really here", 
            "snis": [
                "myapp.local", 
                "mockbin.myapp.local"
            ]
        }
    ], 
    "total": 1
}

然后添加了一个 API,它与 http:

完美配合
{
    "data": [
        {
            "created_at": 1529590900803, 
            "hosts": [
                "mockbin.myapp.local"
            ], 
            "http_if_terminated": false, 
            "https_only": false, 
            "id": "216c23c5-a1ae-4bef-870b-9c278113f8f8", 
            "name": "mockbin", 
            "preserve_host": false, 
            "retries": 5, 
            "strip_uri": true, 
            "upstream_connect_timeout": 60000, 
            "upstream_read_timeout": 60000, 
            "upstream_send_timeout": 60000, 
            "upstream_url": "http://localhost:3000"
        }
    ], 
    "total": 1
}

但不幸的是,Kong 一直向我发送位于 /usr/local/kong/ssl/kong-default.crt

的默认证书

我正在测试它:

openssl s_client -connect localhost:8443/products -host mockbin.myapp.local -debug

过去有一个动态 ssl 插件(其中 api ssl 是在 0.3.0 版中添加的)但自 0.10 更新后它就消失了。

我知道它有点修复了我的 code 配置问题,但可能其他人也可能 运行 遇到类似的问题。

我花了一些时间来弄清楚它,但我没有设法修复它。正如 kong docs 所说,api 已被弃用,所以我最终重写了路由和服务的所有内容,我建议您也这样做。根据文档逐步实施时,路由和服务工作得很好。

Kong 文档在 how to use the administrative api to configure ssl certificates 上似乎很清楚。在全局级别维护证书肯定比服务和特定于路由的管理更容易。

其他寻找此问题答案的人应该会发现很简单,只需按照上面链接的最新 Kong 文档中的说明进行操作即可。