Software / code / prosody
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 |
| child | 13818:8a7dbb291b02 |
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; |