Commit Graph

456 Commits (0ebc9f7a44f05f595084e55b83cff59b471b8d9f)

Author SHA1 Message Date
Glenn Strauss 8419b42e83 use ${ACME_OPENSSL_BIN:-openssl} instead of openssl
(requested by @Neilpang in #3687)
3 years ago
Nookery 2447fccf1e
name="snis" => name="snis[]"
kong 2.5.x,snis参数是一个数组
3 years ago
Glenn Strauss c43c711f72 use _getdeployconf instead of sourcing DOMAIN_CONF
(requested by @Neilpang in #3394)

github: closes #3394
3 years ago
Michael Weber f354e6de69 lighttpd deploy hook
* verbatim copy from haproxy.sh, s/haproxy/lighttpd
* enable issuer
3 years ago
fradev 08d60fcbf2 Update ssh.sh
shfmt formatting
3 years ago
fradev 4cda54774a Update ssh.sh
SC2086 and SC2215
3 years ago
fradev 613475ac26 Update ssh.sh 3 years ago
fradev 20d23fcb92 Update ssh.sh
Added scp mode for copy the certs
3 years ago
neil f41f93af3a
Merge pull request #3491 from bgarret/consul-deploy-hook
Consul deploy hooks
4 years ago
Brian Hartvigsen dcb51683c5
shellcheck cleanup
shellcheck sees '\\' as trying to escape the trailing quote (see
koalaman/shellcheck#1548 ).
4 years ago
Brian Hartvigsen 74a4a788b1
Make certificate descriptions sed safe
This escapes special characters used in POSIX sed to prevent mismatches.
e.g. `SYNO_Certficiate=*.example.com` would not match a description of
"*.example.com" and would look to match any number of double quotes (the
last character in the sed regex prior to certificate description),
followed by any single character, followed by "example", followed by any
character, followed by "com".

After this change, it will properly match `*.example.com` and not
`""zexamplefcom`.

Additionally we now store the certificate description as base64 encoded
to prevent issues with single quotes.

Tested on DSM 7.0-41222 (VDSM) and DSM 6.2.4-25556 (DS1515+).
4 years ago
Brian Hartvigsen 5ab9ca1c0d
Better fix for Synology DSM setting wrong default
As noted by @buxm, previous fix didn't work for all versions of DSM 6.
The better fix appears to be simply not outputting the "as_default"
parameter unless we are doing something with the default certificate.
4 years ago
Benoit Garret 07afc4953a Fix the shfmt check 4 years ago
neil 8c14150536
Merge pull request #3350 from temoffey/deploy-gcore_cdn
Deploy gcore_cdn fix
4 years ago
Benoit Garret c127903127 Add Consul deploy hook 4 years ago
Brian Hartvigsen 1a4a180e8c
FIX: Synology sets "default" on wrong certificate
For some DSM installs, it appears that setting the "default" flag to the
string "false" actually sets it to true.  This causes Synology to set
the last updated certificate to be the default certificate.  Using an
empty string appears to still be accepted as a false-y value for DSMs
where this isn't happening and corrects the behavior in the cases that
it was.

Credit to @Run-King for identifying the fix and @buxm for reporting.
4 years ago
neil e71238571a
Merge pull request #3464 from jpbede/cleverreach-deploy-sublient
CleverReach Deploy Hook: Allow deploy to agency subaccounts
4 years ago
Jan-Philipp Benecke 2867ec509e
Make CI happy 4 years ago
Jan-Philipp Benecke d853a9ebbe
Make uploading cert to subaccount possible 4 years ago
Christophe Le Guern cc90f83463
Use 'vault kv put' instead of 'vault write'
When using vault_cli with a kv2 path, it isn't working. I have the following error:
```
WARNING! The following warnings were returned from Vault:                                                                                                                                                                                     
                                                                                                                                                                                                                                              
  * Invalid path for a versioned K/V secrets engine. See the API docs for the                                                                                                                                                                 
  appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'                                                                                                                                                                
  for this operation.                                                                                                                                                                                                                         
```
The new way to write data  is to use `vault kv put`, it is compatible with kv1 and kv2.
Ref: https://www.vaultproject.io/docs/commands#reading-and-writing-data
```
The original version of K/V used the common read and write operations. A more advanced K/V Version 2 engine was released in Vault 0.10 and introduced the kv get and kv put commands.
```
4 years ago
Jan-Philipp Benecke 1530abbd1a
Make uploading cert to subaccount possible 4 years ago
F-Plass 4bb8e3a121 Update truenas.sh
-error handling
4 years ago
F-Plass eacc00f786 Update truenas.sh
- check if curl exists
- check if wget exist, then errortext and exit scipt
- _get command "restartUI"  wirh info about curl error 52
4 years ago
Mike Edmunds bf8c33703c
Fix: Unifi deploy hook support Unifi Cloud Key (#3327)
* fix: unifi deploy hook also update Cloud Key nginx certs

When running on a Unifi Cloud Key device, also deploy to
/etc/ssl/private/cloudkey.{crt,key} and reload nginx. This
makes the new cert available for the Cloud Key management
app running via nginx on port 443 (as well as the port 8443
Unifi Controller app the deploy hook already supported).

Fixes #3326

* Improve settings documentation comments

* Improve Cloud Key pre-flight error messaging

* Fix typo

* Add support for UnifiOS (Cloud Key Gen2)

Since UnifiOS does not use the Java keystore (like a Unifi
Controller or Cloud Key Gen1 deploy), this also reworks
the settings validation and error messaging somewhat.

* PR review fixes

* Detect unsupported Cloud Key java keystore location

* Don't try to restart inactive services

(and remove extra spaces from reload command)

* Clean up error messages and internal variables

* Change to _getdeployconf/_savedeployconf

* Switch from cp to cat to preserve file permissions
4 years ago
F-Plass 93fd6170a3 Update truenas.sh 4 years ago
F-Plass 6f4c5fcc87 Update truenas.sh 4 years ago
F-Plass a7ca010d4e Update truenas.sh 4 years ago
F-Plass a836842a7e Update truenas.sh 4 years ago
F-Plass f8c11a324a Update truenas.sh 4 years ago
F-Plass 052c9be111 Update truenas.sh 4 years ago
F-Plass 854e520528 Update truenas.sh 4 years ago
F-Plass 05737b85eb Update truenas.sh 4 years ago
F-Plass c8a2308739 Update truenas.sh 4 years ago
F-Plass ed46a078f9 Update truenas.sh 4 years ago
F-Plass 4f7c2bf8c3 Update truenas.sh 4 years ago
F-Plass 0e341726d2
Edits after DoShellcheck 4 years ago
F-Plass a4f9746d3a
Danksagung an danb35 4 years ago
F-Plass 556c546b2e
Deploy Scipt for TrueNAs Server
acme .sh deploy Scipt for TrueNAS Server that uses the REST API from TrueNAS.

- Authentification with API Key
- If HTTP redirect is configured, automatik switch to HTTPS
- If WebDAV Certificate is the same as Web UI Certificate, Webdav Certificate get also an updated
- If FTP Certificate is the same as Web UI Certificate, FTP Certificate get also an updated
4 years ago
neil 62c776d90c
Merge pull request #3343 from markchalloner/master
Add Peplink deploy hook
4 years ago
Mark Challoner 61549b4a74 Add Peplink deploy hook 4 years ago
tyahin 7ed7a57d92 deploy gcore_cdn fix syntax 4 years ago
tyahin 1eaf7c89b7 deploy gcore_cdn fix api 4 years ago
tyahin 1fff8dd306 deploy gcore_cdn fix auth 4 years ago
neil 54195b16ad
Merge pull request #3299 from tresni/synology_dsm
Add DSM7 support to synology_dsm deployhook
4 years ago
neil 15fb47cb3d fix https://github.com/acmesh-official/acme.sh/issues/3300 4 years ago
Brian Hartvigsen 2635dfef96
Shellcheck linting
Also removed unused code
4 years ago
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
4 years ago
Thijn cc69285420
Fix synology_dsm deployhook for DSM 7 4 years ago
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.
4 years ago
neil 8440d013f8 fix 4 years ago
neil 174c87a192 fix 4 years ago
neil 32b62d6d4f fix 4 years ago
Christian Burmeister 2bc627970e
Update mailcow.sh
I have modified the following things:

    Originally, "/data/assets/ssl/" is always appended to the varialbe ${_mailcow_path}. Since I use acme.sh as docker container, I only want to include the mailcow-ssl directory in the acem.sh container and not the complete mailcow directory. So now it is checked if the file generate_config.sh is in the directory (then it is the mailcow root directory, see https://github.com/mailcow/mailcow-dockerized) and only then "/data/assets/ssl/" is appended, in all other cases the passed variable is taken over unchanged.

    Because of the RP mailcow/mailcow-dockerized#2443 I have extended the script with ECC certificates.

    I adapted the reboot commands as described in the mailcow manual (https://mailcow.github.io/mailcow-dockerized-docs/firststeps-ssl/#how-to-use-your-own-certificate).
4 years ago
neil be067466fe
Merge pull request #3132 from jpbede/deploy-cleverreach
Add CleverReach Deploy API
4 years ago
Moritz H ed01fd4edf uconv as fallback for iconv 4 years ago
neil 7530266330 remove dependency to md5 and awk 4 years ago
neil 97b87d4ce4
Merge pull request #3111 from pashinin/master
Vault deploy hook (using curl)
4 years ago
Sergey Pashinin e203e98375
Use _savedeployconf 4 years ago
Sergey Pashinin 9fcd104065
Use _getdeployconf for env vars 4 years ago
Jan-Philipp Benecke 1db963361c
Rework based on review from Neilpang 4 years ago
Jan-Philipp Benecke f7e12b629f
Update CleverReach REST Endpoint 4 years ago
Jan-Philipp Benecke 2a9c56d9e3
Formatting for CI 4 years ago
Jan-Philipp Benecke 39a5688464
Make CI happy 4 years ago
Jan-Philipp Benecke e4e6173eff
CleverReach Deploy API 4 years ago
Sergey Pashinin f511a52705
Using _post function 5 years ago
Sergey Pashinin de692d3dcc
Vault deploy hook 5 years ago
neil 19c4345162 fix shfmt 5 years ago
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
5 years ago
neil 7f33ae3bee
Merge pull request #3059 from andybotting/dev
Fix CI test failure for deploy/openstack.sh
5 years ago
neil 645135bf56
Merge pull request #3051 from szepeviktor/patch-2
Upgrade Travis image
5 years ago
Viktor Szépe 61613bee98
Fix SC2230 5 years ago
Andy Botting 3ce967d8e5 Fix CI test failure for deploy/openstack.sh 5 years ago
Andy Botting 9b23cd6d19 Add OpenStack Barbican deploy support
This provider relies on the the python-openstackclient and
python-designateclient tools be installed and working, with
either password or application credentials loaded in your env.
5 years ago
andrewheberle 01ebb6576d
Use base64 for reload
Ensure that reload command is encoded with base64 so special characters in command do not wreck config on renewals
5 years ago
Tony Gravagno eca57beec1
Issue #2850 : grammar corrections for "exists" and "exist". 5 years ago
PM Extra a78a09f594 Support multiple servers for SSH deployment. 5 years ago
neil 341f000b9c
Merge pull request #2947 from kref/patch-1
fix octal escapes for printf %b format
5 years ago
kref 0deea53931
fix octal escapes for printf %b format
Stop it from misinterpreting a following digit as part of the escape sequence
5 years ago
Brian Hartvigsen 694194be2f
Shellcheck fix
SYNO_Certificate gets set by _getdeployconf, so this may be an empty string but that's fine
5 years ago
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
5 years ago
Brian Hartvigsen 3a7c7fe4e8
Fix shellcheck issues 5 years ago
Brian Hartvigsen 668967a719
If SYNO_Create is not set here, print the nice message 5 years ago
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.
5 years ago
Brian Hartvigsen 52b81608a1
need to _url_encode anything sent in GET requests
Fixes issue raised by @tatablack
5 years ago
Felix Bünemann cf5952f508
fix haproxy deploy hook ocsp update
fixes ocsp reponse update failing with `Responder Error: unauthorized (6)`
by removing `-no_nonce` switch from `openssl oscp` command .
5 years ago
neil b6fbb012ad
Merge pull request #2749 from dkerr64/ssh-deploy
Updates to ssh_deploy hook
5 years ago
ucando 6132af8ecb enable qiniu to deploy more than one domain 5 years ago
Brian Torres-Gil 0453d656d6 fix(deploy/panos): data format improvements
It was discovered in testing that PAN-OS < 9.0 has slightly different
requirements for the multipart/form-data format and requires the `type`
parameter to be passed in the URL. These corrections should work for all
PAN-OS versions.
5 years ago
dkerr64 f38df4df11 Make remote backup directory path user configurable. 5 years ago
dkerr64 554e083f3d For MULTI_CALL default to undefined, deleting entry in config file if set to "no" 5 years ago
Markus Lippert fd64c20807 store device ID 5 years ago
Markus Lippert 80f1034dd6 add OTP support 5 years ago
dkerr64 8ba573d196 Change variable name to MULTI_CALL so default can be "no" 5 years ago
dkerr64 f73a494407 Remove spaces on blank line to fix travis error 5 years ago
dkerr64 46ee74ed16 Remove variable from info/error printout that could potentially expose login credentials. 5 years ago
dkerr64 806b746fc0 Fix bug where backup and batch_mode yes/no values could not be changed.
Once set to "no" then they could never be set back to "yes"
5 years ago
dkerr64 cc820e97c6 Add support for DEPLOY_SSH_BATCH_MODE with default of yes.
Before this update all remote commands were bunched together and
sent to the remote host in a single SSH command.  This could result
in a very long sequence of commands that might be rejected by a
remote host (example is VMware ESXi that uses busybox sh).
With this update you can set DEPLOY_SSH_BATCH_MODE="no" and
each remote command is sent as a separate SSH call so now we
do not have big long sequence of commands.  Defaults to same
behaviour as before this update.
5 years ago
dkerr64 283b04df73 Move cleanup of backup directory to first step in the function. 5 years ago
dkerr64 6420d1239f Move call to remote system into separate function 5 years ago
dkerr64 3d9608faa0 Move -T parameter into default ssh command variable 5 years ago
xpac1985 e184a1b9e6
haproxy deploy script now compatible with OpenSSL v1.1+
haproxy deploy script now compatible with OpenSSL v1.1+

The OpenSSL OCSP request for haproxy deployment breaks from OpenSSL v1.1.0 on.
The format of the `-header` option has been changed and does now contain a `=` instead of a whitespace.
Other projects have hit the same issue:
https://github.com/nghttp2/nghttp2/issues/742

This commit determines the OpenSSL/LibreSSL version and then adjusts the request accordingly.
Also removed the duplicate command line and added some more debug output.
5 years ago
neil 754f7a7891
Merge pull request #2614 from PaloAltoNetworks/deploy-panos
Adding abillity to deploy cert to Palo Alto Networks Firewall via API.
5 years ago
Paul Nguyen 21450a08c2 Fixed 6 character requirement. 5 years ago
Paul Nguyen c355b25bb1 Fixed line formatting 5 years ago
Paul Nguyen 1fe3d80838 Updated to use saveconf function and base64encode. 5 years ago
Paul Nguyen 930e16b64a fix gitdiff 5 years ago
Paul Nguyen 2077a70d03 Fixing gitdiff 5 years ago
Paul Nguyen cbdb8bd9b9 Fixing gitdiff 5 years ago
Paul Nguyen 5dcb417676 ShellCheck fixes 5 years ago
Paul Nguyen 71bc993e3d Fixed Shellchecks 5 years ago
Paul Nguyen c2812896f8 Update deployer 5 years ago
Brian Hartvigsen 1b475cf9f3
Remove -q from greps 5 years ago
Brian Hartvigsen d07172a528
Replace disabled linter with variable substituion 5 years ago
Brian Hartvigsen 79637097ba
Use _utc_date 5 years ago
Brian Hartvigsen 1259341095
Use deployconf properly 5 years ago
Brian Hartvigsen 5d3bc95ac5
Fix some debug output 5 years ago
Brian Hartvigsen de25232a73
Allow creating new certificates when certificate is not found 5 years ago
Brian Hartvigsen 95769de464
Fix shfmt/shellcheck issues 5 years ago
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
5 years ago
Brian Hartvigsen b3b00b6700
Using domainconf instead of account 5 years ago
Brian Hartvigsen 8e8cda132c
Remove boilerplate from what I used for template 5 years ago
Brian Hartvigsen 6459ccb185
Cleanup shfmt warnings 5 years ago
Brian Hartvigsen 548f83c3ad
Cleanup shellcheck errors 5 years ago
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.
5 years ago
Paul Nguyen d9a9695fe0 Deploy certificates to Palo Alto Network Firewalls 5 years ago
neilpang d795fac37a update repo name 5 years ago
Charlie Garrison 84b0f29d87
Merge branch 'dev' into master 5 years ago
Charlie Garrison b23e05dbc5 Added trailing slash to end of each line of DEPLOY_SCRIPT_CMD 5 years ago
neil 7ad3ddef2a
Merge pull request #2539 from temoffey/gcore_cdn
Gcore cdn
5 years ago
temoffey 252a21e2ae fixed json parse regex for support api gcore_cdn 5 years ago
Peter Dave Hello ac9f6e3a41 Remove trailing spaces in text files
This issue in the shell scripts will also be detected in the stable
version of shfmt(we are currently using an ancient pre-release of shfmt)
5 years ago
neil ee38cccad8
sync (#2436)
* fix https://github.com/Neilpang/acme.sh/issues/2409 (#2430)

* Add variable exports for Successful Post Hook and Renew Hook calls (#2431)

* fixed json parse regex for support api gcore_cdn (#2381)
6 years ago
Тимур Яхин f82ff90f06 fixed json parse regex for support api gcore_cdn (#2381) 6 years ago
neil 55dea4ee9d
sync (#2404)
* support jdcloud.com

* fix format

* ttl 3000

* Escape slashes (#2375)

* Change 1.1.1.1 to 1.0.0.1 to probe compatibility (#2330)

As we can see, 1.1.1.1 is not routed or routed to an Intranet devices due to historical reason. Change 1.1.1.1 to 1.0.0.1 will have a better compatibility. I found this problem on my Tencent Cloud server.

* check empty id

* fix error

* Add dnsapi for Vultr (#2370)

* Add Vultr dns api

* PushOver notifications (#2325)

* PushOver notifications, using AppToken, UserKey, and optional sounds

* fix errors

* added dns api support for hexonet (#1776)

* update

* minor

* support new Cloudflare Token format
fix https://github.com/Neilpang/acme.sh/issues/2398

* fix wildcard domain name

* add more info

* fix https://github.com/Neilpang/acme.sh/issues/2377

* fix format

* fix format
6 years ago
neilpang 45e8bb03e4 add more info 6 years ago
neilpang 54e189616c fix wildcard domain name 6 years ago
neil 06f860c8ea
Merge pull request #2292 from cngarrison/master
change to routeros native script rather than bash multiline commands
6 years ago
neilpang 951bd3a517 minor, check for mkdir 6 years ago
neilpang 2e3ddd3a61 trim quotation marks 6 years ago
Charlie Garrison c42dbbfec8 reformatted RouterOS script for shfmt checks 6 years ago
neilpang aec6636205 add _getdeployconf 6 years ago
neilpang a18c3ff07d use `sh -c` 6 years ago
neilpang 64928b28bc trim quotation marks 6 years ago
neilpang 0bbaa51945 fix format 6 years ago
neilpang 561803c0a7 add deploy hook to docker containers 6 years ago
Charlie Garrison 03a407d4df Added additional `shellcheck` ignores for client-side evaluation warning
Should pass CI tests now
6 years ago
Charlie Garrison 0cddc8a154 change to routeros native script rather than bash multiline commands 6 years ago
neilpang 1a126b700f fix https://github.com/Neilpang/acme.sh/issues/2252 6 years ago
neil b28835a604
Update haproxy deploy hook (#1591)
* implement basic haproxy deploy

HAProxy requires the certificate chain and key to be concatenated and placed somewhere (can be anywhere). This script expects a single environment variable with the path where the concatenated PEM file should be written

* add docs for HAProxy deployment

* Add conditional check to ensure path is provided

* remove whitespace

* remove more whitespace (trying to get TravisCI working)

* add reload

* update for POSIX compliance

* add documentation for reload command

* Update haproxy deploy hook

Add functionality to add OCSP stapling info (.ocsp file), issuer (.issuer file) and multi-cert bundles (suffix on pem file based on key type).

This also corrects the order of key, certificate and intermediate in the PEM file, which although HAProxy does not seem to care, was incorrect in the prior version.

* Document updated haproxy deploy hook

* Fix variable name

* whitespace fixes

* Support HAPROXY_DEPLOY_PEM_PATH

Adds compatibility to original haproxy deploy hook while still allowing custom PEM file name (via HAPROXY_DEPLOY_PEM_NAME)

* update for new haproxy deploy vars

* Fix return from reload

* Fix Le_Keylength case

* Update cert suffix for bundles .ocsp generation

* Whitepspace

* Change default for reload

* Readme update

* Actually set reload default

* Fix README.md confict
6 years ago
Тимур Яхин 6340704173 fixed line breaks for support api gcore_cdn (#2237) 6 years ago