Files
kong--kong/spec/02-integration/05-proxy/27-lua-ssl-trusted-cert_spec.lua
2026-07-13 12:32:21 +08:00

92 lines
2.6 KiB
Lua

local helpers = require "spec.helpers"
for _, strategy in helpers.each_strategy() do
local bp
local postgres_only = strategy == "postgres" and it or pending
describe("lua_ssl_trusted_cert #" .. strategy, function()
before_each(function()
bp = helpers.get_db_utils(strategy, {
"routes",
"plugins",
})
local r = bp.routes:insert({ hosts = {"test.dev"} })
bp.plugins:insert({
name = "pre-function",
route = { id = r.id },
config = {
access = {
string.format([[
local tcpsock = ngx.socket.tcp()
assert(tcpsock:connect("%s", %d))
assert(tcpsock:sslhandshake(
nil, -- reused_session
nil, -- server_name
true -- ssl_verify
))
assert(tcpsock:close())
]],
helpers.mock_upstream_ssl_host,
helpers.mock_upstream_ssl_port
)
},
},
})
end)
after_each(function()
helpers.stop_kong()
end)
it("works with single entry", function()
assert(helpers.start_kong({
database = strategy,
nginx_conf = "spec/fixtures/custom_nginx.template",
lua_ssl_trusted_certificate = "spec/fixtures/kong_spec.crt",
}))
local proxy_client = helpers.proxy_client()
local res = proxy_client:get("/", {
headers = { host = "test.dev" },
})
assert.res_status(200, res)
end)
it("works with multiple entries", function()
assert(helpers.start_kong({
database = strategy,
nginx_conf = "spec/fixtures/custom_nginx.template",
lua_ssl_trusted_certificate = "spec/fixtures/kong_clustering_ca.crt,spec/fixtures/kong_clustering.crt",
ssl_cert = "spec/fixtures/kong_clustering.crt",
ssl_cert_key = "spec/fixtures/kong_clustering.key",
}))
local proxy_client = helpers.proxy_client()
local res = proxy_client:get("/", {
headers = { host = "test.dev" },
})
assert.res_status(200, res)
end)
postgres_only("works with SSL verification", function()
local _, err = helpers.start_kong({
database = strategy,
nginx_conf = "spec/fixtures/custom_nginx.template",
lua_ssl_trusted_certificate = "spec/fixtures/kong_clustering_ca.crt,spec/fixtures/kong_clustering.crt",
pg_ssl = "on",
pg_ssl_verify = "on",
})
assert.not_matches("error loading CA locations %(No such file or directory%)", err)
end)
end)
end