Commit Graph

187 Commits

Author SHA1 Message Date
DL6ER ec37efd77f Fix debug.api config options description.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2024-02-10 09:34:25 +01:00
DL6ER 0a48d7a4c4 Change how Pi-hole generates from self-signing our certificate to first creating a self-signed root certificate authority (CA) and then using this CA to ordinarily sign the server's certificate. This has the advantage of being able to import the CA in places where importing a self-signed certificate is discouraged or not possible (e.g. Firefox browser)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2024-01-16 22:55:02 +01:00
DL6ER 06147abd5d A 204 response must not contain a body (https://tools.ietf.org/html/rfc7231#section-6.3.5)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2024-01-07 09:51:35 +01:00
DL6ER 5f0e405d82 Update bundled cJSON from 1.7.15 -> 1.7.17 released yesterday
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-12-26 09:36:06 +01:00
Dominik 1a0921cd48 Merge pull request #1810 from pi-hole/new/batchDelete
Implement special POST :batchDelete callbacks
2023-12-15 20:19:09 +01:00
DL6ER d802f0e301 Reduce number of warnings coming from third-party modules we use shown during compilation
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-12-07 22:27:14 +01:00
DL6ER 19cfed227f Fix possible deferencing of NULL pointers
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-12-07 21:00:01 +01:00
DL6ER 0ef89ab3eb Implement special POST :batchDelete callbacks for /api/groups, /api/domains/, /api/clients, and /api/lists
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-12-06 23:27:20 +01:00
DL6ER 066a38f466 Don't even try to start webserver if webserver.port is an empty string
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-12-03 22:57:02 +01:00
DL6ER 242b35eba8 Remove CH TXT privacylevel.pihole entry
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-30 21:59:39 +01:00
DL6ER d212f26634 Add CHAOS TXT records to dynamically get the available API ports:
- domain.api.ftl will use the configured web domain, e.g. "https://pi.hole:443/api"
- local.api.ftl will use the hard-coded string "localhost" instead, e.g., "https://localhost:443/api"
- api.ftl is an alias for domain.api.ftl

Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-30 12:56:52 +01:00
DL6ER 3f4502c01b Add comments
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-27 14:41:38 +01:00
DL6ER 1d03a5356d Also check wildcards prefixed by "CN=" in the subject name of the certificate
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-27 14:25:25 +01:00
DL6ER b017c1c20c The SAN is not NUL-terminated, we need to use the specified length explicitly
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-27 13:27:04 +01:00
DL6ER 0f5d3970bb Implement wildcard X.509 SAN/CN (subject) domain checking
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-26 22:24:23 +01:00
DL6ER 46eca50db0 Fix logging when reading the TLS certificate
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-21 09:43:08 +01:00
DL6ER c97239aced Remove CivetWeb patch which is not needed when authentication_domain is set
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-19 11:20:40 +01:00
DL6ER 5926c5b246 Set civetweb's authentication_domain to config.webserver.domain
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-19 09:33:36 +01:00
DL6ER 67a630c790 Explicitly check hint being NULL before trying to free it in send_json_error_free()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-15 12:06:08 +01:00
DL6ER 4644843c92 Use thread-safe variant of localtime()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-11 20:58:24 +01:00
DL6ER afefe4ca30 Create dynamic validity period when generating X.509 certificate
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-10 22:18:06 +01:00
DL6ER df2ba4c724 Fix escape_html() crashing for NULL input
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-10 21:03:28 +01:00
DL6ER d310f8efb3 Spellcheck fixes
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-09 17:50:07 +01:00
DL6ER 58b402be6f Add tests for --read-x509(-key)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-09 16:30:22 +01:00
DL6ER 6498e6bf93 Add logging to the Pi-hole diagnosis system when we detect a certificate domain mismatch
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-09 16:00:26 +01:00
DL6ER 651bb7f065 Add X.509 certificate/key parser
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-11-09 06:29:02 +01:00
DL6ER ebb27741b1 Allow extended ASCII characters in URIs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-31 08:35:31 +01:00
DL6ER 0700bf0f9d Merge pull request #1689 from pi-hole/new/keep_sessions
Backup and restore API sessions to/from database
2023-10-28 17:33:16 +02:00
DL6ER c7f50a372a Merge pull request #1629 from pi-hole/tweak/domain_array
Add ability to specify domains, lists, clients and group names as arrays
2023-10-26 22:34:33 +02:00
DL6ER 85b5c94858 Add save/restore of API sessions to the database to avoid a forced logout on FTL restarts. This updated the database to version 15
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-22 08:44:10 +02:00
DL6ER d00c9df972 Update comment in src/webserver/x509.c
Co-authored-by: yubiuser <ckoenig@posteo.de>
Signed-off-by: DL6ER <DL6ER@users.noreply.github.com>
2023-10-18 22:47:55 +02:00
DL6ER 434d944a07 Also add pi.hole as alternative subject if domain != "pi.hole"
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-18 16:52:11 +02:00
DL6ER 8bb7e57968 Merge branch 'development-v6' into tweak/domain_array 2023-10-17 21:39:03 +02:00
DL6ER 0e81faadb2 Add SAN filed into self-generated X.509 TLS certificates. It is mandatory since RFCs 2818 and 3280
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-17 21:27:13 +02:00
DL6ER 3502be015b Merge pull request #1668 from pi-hole/fix/redirect_admin_slash
Add /admin -> /admin/ redirect handler
2023-10-16 23:21:01 +02:00
DL6ER 1556b72abe Add /admin -> /admin/ redirect handler
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-15 10:44:54 +02:00
DL6ER c5067b3a60 Merge pull request #1664 from pi-hole/new/error_pages
Add error pages support and extended webserver debugging option
2023-10-14 20:44:48 +02:00
DL6ER 8df1fdcd3f Add error_pages option to CivetWeb causing the webserver to search in the web interface's root for error pages
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-14 15:50:43 +02:00
DL6ER 445aed4fd5 Log debug messages to webserver.log when debug.webserver is true
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-14 15:39:21 +02:00
DL6ER a7417a62b7 Only hint to checking the webserver log file
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-13 21:36:57 +02:00
DL6ER 5d55e13cbd Enquote configureable strings
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-13 20:54:31 +02:00
DL6ER 6636916f3c Add hint to check the webserver log (and where to find it)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-13 20:53:37 +02:00
DL6ER bc72fe6772 Merge branch 'development-v6' into tweak/domain_array 2023-10-13 20:12:03 +02:00
DL6ER b017b02486 Add error reporting during library initialization
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-13 19:57:35 +02:00
DL6ER 39a6324426 Fix wording of info message concerning self-generated TLS certificate. Before this commit, we incorrectly logged that we created a TLS certificate not only when we really did this but also after each restart when simply using it.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-11 22:17:46 +02:00
DL6ER 80d4a0efec Merge pull request #1653 from pi-hole/tweak/api_auth_https
Add /api/info/login
2023-10-10 20:36:04 +02:00
DL6ER 3c9b123e44 Initialize mbedtls with default instead of SuiteB presets
Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-10 19:28:14 +02:00
DL6ER f9e6e55a25 Merge pull request #1654 from pi-hole/tweak/x509_domain
Allow generating X.509 TLS certificates for arbitrary domain names
2023-10-09 21:48:56 +02:00
DL6ER 687e489e2a Allow generating X.509 TLS certificates for arbitrary domain names. When auto-generated, FTL uses the config value webserver.domain defaulting to "pi.hole".
The generated certificate may be checked using, e.g. openssl x509 -in /etc/pihole/tls.pem -text -noout

Signed-off-by: DL6ER <dl6er@dl6er.de>
2023-10-09 16:55:12 +02:00
DL6ER c01567aa4f Merge branch 'development-v6' into tweak/redirections 2023-10-08 09:11:32 +02:00