Comparison

core/certmanager.lua @ 8268:e21d82551e05

Merge 0.10->trunk
author Matthew Wild <mwild1@gmail.com>
date Tue, 26 Sep 2017 17:24:25 +0100
parent 8259:db063671b73e
child 8274:3798955049e3
comparison
equal deleted inserted replaced
8253:3a6f5b0f56f0 8268:e21d82551e05
56 local crt_try = { "", "/%s.crt", "/%s/fullchain.pem", "/%s.pem", }; 56 local crt_try = { "", "/%s.crt", "/%s/fullchain.pem", "/%s.pem", };
57 local key_try = { "", "/%s.key", "/%s/privkey.pem", "/%s.pem", }; 57 local key_try = { "", "/%s.key", "/%s/privkey.pem", "/%s.pem", };
58 58
59 local function find_cert(user_certs, name) 59 local function find_cert(user_certs, name)
60 local certs = resolve_path(config_path, user_certs or global_certificates); 60 local certs = resolve_path(config_path, user_certs or global_certificates);
61 log("debug", "Searching %s for a key and certificate for %s...", certs, name);
61 for i = 1, #crt_try do 62 for i = 1, #crt_try do
62 local crt_path = certs .. crt_try[i]:format(name); 63 local crt_path = certs .. crt_try[i]:format(name);
63 local key_path = certs .. key_try[i]:format(name); 64 local key_path = certs .. key_try[i]:format(name);
64 65
65 if stat(crt_path, "mode") == "file" then 66 if stat(crt_path, "mode") == "file" then
66 if key_path:sub(-4) == ".crt" then 67 if key_path:sub(-4) == ".crt" then
67 key_path = key_path:sub(1, -4) .. "key"; 68 key_path = key_path:sub(1, -4) .. "key";
68 if stat(key_path, "mode") == "file" then 69 if stat(key_path, "mode") == "file" then
70 log("debug", "Selecting certificate %s with key %s for %s", crt_path, key_path, name);
69 return { certificate = crt_path, key = key_path }; 71 return { certificate = crt_path, key = key_path };
70 end 72 end
71 elseif stat(key_path, "mode") == "file" then 73 elseif stat(key_path, "mode") == "file" then
74 log("debug", "Selecting certificate %s with key %s for %s", crt_path, key_path, name);
72 return { certificate = crt_path, key = key_path }; 75 return { certificate = crt_path, key = key_path };
73 end 76 end
74 end 77 end
75 end 78 end
79 log("debug", "No certificate/key found for %s", name);
76 end 80 end
77 81
78 local function find_host_cert(host) 82 local function find_host_cert(host)
79 if not host then return nil; end 83 if not host then return nil; end
80 return find_cert(configmanager.get(host, "certificate"), host) or find_host_cert(host:match("%.(.+)$")); 84 return find_cert(configmanager.get(host, "certificate"), host) or find_host_cert(host:match("%.(.+)$"));