92 lines
2.6 KiB
Lua
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
|
|
|
|
|