Как создать SSL-соединение с безсерверной функцией Kong, используя клиентский сертификат - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь создать серверную функцию для Kong для аутентификации.Я должен использовать сертификат клиента для аутентификации с помощью удаленного сервиса, который мы должны использовать.Я не могу заставить это работать, и, похоже, нет четкой документации о том, как это сделать.Я пробовал pintsized / lua-resty-http, ngx.socket.tcp () и luacurl (не удалось собрать) безуспешно.Я использую новейшую версию Kong в контейнере Alpine Linux на случай, если это имеет значение.

Каков наилучший способ сделать это?Прямо сейчас я рассматриваю простой вызов curl из Lua, поскольку я знаю, что это работает, но я надеялся на лучшее решение, которое я мог бы сделать только с помощью Lua / OpenResty.

Спасибо.

ОБНОВЛЕНИЕ: Я просто хотел добавить, на всякий случай, если это поможет, что я уже создаю новый образ на основе официального Kong, так как мне пришлось изменить шаблоны конфигурации nginx, поэтому установка нового программного обеспечения в контейнер не является проблемой.

1 Ответ

0 голосов
/ 25 сентября 2018

Все,

Извиняюсь за уродливый код, но похоже, что найден ответ, который работает:

require("socket")
local currUrl= "https://some.url/"
local https = require("ssl.https")
local ltn12 = require("ltn12")
local chunks = {}
local body, code, headers, status = https.request{
    mode = "client",
    url = currUrl,
    protocol = "tlsv1_2",
    certificate = "/certs/bundle.crt",
    key = "/certs/bundle.key",
    verify = "none",
    sink = ltn12.sink.table(chunks),
}

Если у кого-то есть лучший ответ, я был бы признателен,но на это сложно пожаловаться.Основная проблема заключается в том, что, хотя это работает для запроса GET, в будущем я захочу выполнить POST для службы, и я не знаю, как это сделать, используя подобный код.Я бы хотел одну библиотеку / API, которая может выполнять REST-запросы любого типа.

Этот блог помог мне выбрать правильный путь: http://notebook.kulchenko.com/programming/https-ssl-calls-with-lua-and-luasec

...