web-dev-qa-db-ja.com

コングでAPI用のSSLを設定する方法

私はコング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
}

次に、httpで完全に機能するAPIを追加しました。

{
    "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プラグイン(バージョン0.3.0でapi sslが追加された)がありましたが、0.10の更新以降はなくなりました。

私はそれがちょっと私の修正だと知っています コード 構成に関する質問ですが、他の誰かが同様の問題に遭遇する可能性があります。

6
Luke

私はそれを理解するのにしばらく時間を費やしましたが、それを修正することができませんでした。 kong docs が言うように、apiは非推奨であるため、ルートとサービスにすべてを書き直すことになりました。同じことを行うことをお勧めします。ドキュメントに基づいて段階的に実装する場合、ルートとサービスは完全に機能します。

1
Luke

Kongのドキュメントは 管理APIを使用してSSL証明書を構成する方法 について明確に思われます。サービスやルート固有の管理よりも、グローバルレベルで証明書を維持する方が確かに簡単です。

この質問への答えを探している他の人は、上記にリンクされている最新のKongドキュメントの指示に従うことを簡単に見つける必要があります。

1
GGAnderson