Comparison

core/certmanager.lua @ 13752:49bbdc22846d 13.0

certmanager: Add more debug logging around cert indexing Currently it's not obvious which directories have been indexed (especially when the resulting index is empty), or why certain files have been skipped.
author Matthew Wild <mwild1@gmail.com>
date Mon, 24 Feb 2025 17:48:58 +0000
parent 13703:99d2100d2918
comparison
equal deleted inserted replaced
13750:53c39fdb007f 13752:49bbdc22846d
89 if lfs.attributes(full, "mode") == "directory" then 89 if lfs.attributes(full, "mode") == "directory" then
90 if file:sub(1,1) ~= "." then 90 if file:sub(1,1) ~= "." then
91 index_certs(full, files_by_name, depth_limit-1); 91 index_certs(full, files_by_name, depth_limit-1);
92 end 92 end
93 elseif file:find("%.crt$") or file:find("fullchain") then -- This should catch most fullchain files 93 elseif file:find("%.crt$") or file:find("fullchain") then -- This should catch most fullchain files
94 local f = io_open(full); 94 local f, err = io_open(full);
95 if f then 95 if f then
96 -- TODO look for chained certificates 96 -- TODO look for chained certificates
97 local firstline = f:read(); 97 local firstline = f:read();
98 if firstline == "-----BEGIN CERTIFICATE-----" and lfs.attributes(find_matching_key(full), "mode") == "file" then 98 if firstline == "-----BEGIN CERTIFICATE-----" and lfs.attributes(find_matching_key(full), "mode") == "file" then
99 f:seek("set") 99 f:seek("set")
111 files_by_name[name][full] = services; 111 files_by_name[name][full] = services;
112 else 112 else
113 files_by_name[name] = { [full] = services; }; 113 files_by_name[name] = { [full] = services; };
114 end 114 end
115 end 115 end
116 else
117 log("debug", "Skipping expired certificate: %s", full);
116 end 118 end
117 end 119 end
118 f:close(); 120 f:close();
119 end 121 elseif err then
120 end 122 log("debug", "Failed to open file for indexing: %s", full);
121 end 123 end
122 log("debug", "Certificate index: %q", files_by_name); 124 end
125 end
126 log("debug", "Certificate index in %s: %q", dir, files_by_name);
123 -- | hostname | filename | service | 127 -- | hostname | filename | service |
124 return files_by_name; 128 return files_by_name;
125 end 129 end
126 130
127 local cert_index; 131 local cert_index;