23 Commits
Author SHA1 Message Date
Brian Hartvigsen 2635dfef96 Shellcheck linting
Also removed unused code
2020-12-09 21:01:44 -07:00
Brian Hartvigsen 7d7789ae96 Support DSM 6 and 7
Small changes for DSM 6:

All fields (except enable_syno_token as explained below) must either be in the GET params or the POST params, you can't mix GET and POST params
enable_syno_token=yes must be in both the GET and POST params.
If enable_syno_token=yes is only in the POST fields, then DSM6 returns a synotoken of --------. If enable_syno_token=yes is only in the GET params, then it returns no synotoken at all. It must be in both to work.
Need to use /webapi/auth.cgi instead of /webapi/entry.cgi
Verified with DSM 6.2.3-25426 Update 2 and DSM 7.0-40850
2020-12-09 20:35:50 -07:00
Brian Hartvigsen 99d3a283ef Use POST for login
This allows us to get the cookie and the token (as it appears to be only in the body in DSM 7.)  HTTP_HEADERS is only guarenteed to be output with POST for both wget and curl.
2020-12-09 19:44:14 -07:00
Brian Hartvigsen 5f5096e1d4 Addressing issues found in DS218+ DSM
DS218+ appears to have a slighly different DSM that sends back headers in lowercase.

Reported by @BartSiwek in #2727
2020-07-25 21:56:18 -06:00
Brian Hartvigsen 694194be2f Shellcheck fix
SYNO_Certificate gets set by _getdeployconf, so this may be an empty string but that's fine
2020-05-16 02:25:53 -06:00
Brian Hartvigsen c7f61f8b80 Allow rotating the default certificate which has no description
This means, by default, we will rotate the default certificate that comes with the DSM
2020-05-16 02:02:23 -06:00
Brian Hartvigsen 3a7c7fe4e8 Fix shellcheck issues 2020-05-16 00:19:18 -06:00
Brian Hartvigsen 668967a719 If SYNO_Create is not set here, print the nice message 2020-05-16 00:05:35 -06:00
Brian Hartvigsen d15c14ab93 Fix support for wget
I'm actually not entirely sure why/how this worked with curl but not wget, but it did.  The short answer is that using a GET does not result in the HTTP_HEADER file being written, instead you must pass in the http_headers param ($2) which will return the HTTP headers as a string.  Luckily, the Token is in both the body and the header.  We need it and the id (and smid if 2fa) cookie to proceed.  So now we parrse the response for that instead of the HTTP_HEADER file.

Interesting side note: wget is fine if the URL contains a \r or \n, but curl will barf on it.  So we need to make sure those are stripped from the token as it will be passed in the URL later.
2020-05-15 23:53:00 -06:00
Brian Hartvigsen 52b81608a1 need to _url_encode anything sent in GET requests
Fixes issue raised by @tatablack
2020-05-15 23:48:50 -06:00
Brian Hartvigsen 1b475cf9f3 Remove -q from greps 2020-02-10 21:02:27 -07:00
Brian Hartvigsen d07172a528 Replace disabled linter with variable substituion 2020-02-09 12:06:13 -08:00
Brian Hartvigsen 79637097ba Use _utc_date 2020-02-09 11:50:50 -08:00
Brian Hartvigsen 1259341095 Use deployconf properly 2020-02-09 03:10:11 -08:00
Brian Hartvigsen 5d3bc95ac5 Fix some debug output 2020-02-09 02:50:29 -08:00
Brian Hartvigsen de25232a73 Allow creating new certificates when certificate is not found 2020-02-09 02:26:55 -08:00
Brian Hartvigsen 95769de464 Fix shfmt/shellcheck issues 2020-02-09 02:01:26 -08:00
Brian Hartvigsen 52a168b961 Stop using jq/curl directly
This is a lot more fragile then the previous code due to treating JSON as just a string
2020-02-09 01:49:20 -08:00
Brian Hartvigsen b3b00b6700 Using domainconf instead of account 2020-02-09 01:49:20 -08:00
Brian Hartvigsen 8e8cda132c Remove boilerplate from what I used for template 2020-02-09 01:49:20 -08:00
Brian Hartvigsen 6459ccb185 Cleanup shfmt warnings 2020-02-09 01:49:20 -08:00
Brian Hartvigsen 548f83c3ad Cleanup shellcheck errors 2020-02-09 01:49:19 -08:00
Brian Hartvigsen 555e0de9e4 Initial support for Synology DSM
This allows you to update a key on a Synology DSM using the existing API.
Handles restarting the necessary services the certificate is attached to and all other internal stuff (copying the certificate around, etc.)

This is way less error prone than most articles I've found on how to update a Synology DSM certificate.
2020-02-09 01:49:19 -08:00