Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
61454658
Unverified
Commit
61454658
authored
Mar 30, 2022
by
neil
Committed by
GitHub
Mar 30, 2022
Browse files
Merge pull request #4006 from acmesh-official/dev
sync
parents
9ebb2ac2
fb5091a3
Changes
6
Hide whitespace changes
Inline
Side-by-side
acme.sh
View file @
61454658
...
@@ -34,6 +34,9 @@ _ZERO_EAB_ENDPOINT="https://api.zerossl.com/acme/eab-credentials-email"
...
@@ -34,6 +34,9 @@ _ZERO_EAB_ENDPOINT="https://api.zerossl.com/acme/eab-credentials-email"
CA_SSLCOM_RSA
=
"https://acme.ssl.com/sslcom-dv-rsa"
CA_SSLCOM_RSA
=
"https://acme.ssl.com/sslcom-dv-rsa"
CA_SSLCOM_ECC
=
"https://acme.ssl.com/sslcom-dv-ecc"
CA_SSLCOM_ECC
=
"https://acme.ssl.com/sslcom-dv-ecc"
CA_GOOGLE
=
"https://dv.acme-v02.api.pki.goog/directory"
CA_GOOGLE_TEST
=
"https://dv.acme-v02.test-api.pki.goog/directory"
DEFAULT_CA
=
$CA_ZEROSSL
DEFAULT_CA
=
$CA_ZEROSSL
DEFAULT_STAGING_CA
=
$CA_LETSENCRYPT_V2_TEST
DEFAULT_STAGING_CA
=
$CA_LETSENCRYPT_V2_TEST
...
@@ -44,9 +47,11 @@ LetsEncrypt.org_test,letsencrypt_test,letsencrypttest
...
@@ -44,9 +47,11 @@ LetsEncrypt.org_test,letsencrypt_test,letsencrypttest
BuyPass.com,buypass
BuyPass.com,buypass
BuyPass.com_test,buypass_test,buypasstest
BuyPass.com_test,buypass_test,buypasstest
SSL.com,sslcom
SSL.com,sslcom
Google.com,google
Google.com_test,googletest,google_test
"
"
CA_SERVERS
=
"
$CA_ZEROSSL
,
$CA_LETSENCRYPT_V2
,
$CA_LETSENCRYPT_V2_TEST
,
$CA_BUYPASS
,
$CA_BUYPASS_TEST
,
$CA_SSLCOM_RSA
"
CA_SERVERS
=
"
$CA_ZEROSSL
,
$CA_LETSENCRYPT_V2
,
$CA_LETSENCRYPT_V2_TEST
,
$CA_BUYPASS
,
$CA_BUYPASS_TEST
,
$CA_SSLCOM_RSA
,
$CA_GOOGLE
,
$CA_GOOGLE_TEST
"
DEFAULT_USER_AGENT
=
"
$PROJECT_NAME
/
$VER
(
$PROJECT
)"
DEFAULT_USER_AGENT
=
"
$PROJECT_NAME
/
$VER
(
$PROJECT
)"
...
@@ -1845,7 +1850,9 @@ _inithttp() {
...
@@ -1845,7 +1850,9 @@ _inithttp() {
_ACME_WGET
=
"
$_ACME_WGET
--max-redirect 0 "
_ACME_WGET
=
"
$_ACME_WGET
--max-redirect 0 "
fi
fi
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
if
[
"
$DEBUG
"
]
&&
[
"
$DEBUG
"
-ge
"2"
]
;
then
_ACME_WGET
=
"
$_ACME_WGET
-d "
if
[
"
$_ACME_WGET
"
]
&&
_contains
"
$(
$_ACME_WGET
--help
2>&1
)
"
"--debug"
;
then
_ACME_WGET
=
"
$_ACME_WGET
-d "
fi
fi
fi
if
[
"
$CA_PATH
"
]
;
then
if
[
"
$CA_PATH
"
]
;
then
_ACME_WGET
=
"
$_ACME_WGET
--ca-directory=
$CA_PATH
"
_ACME_WGET
=
"
$_ACME_WGET
--ca-directory=
$CA_PATH
"
...
...
deploy/routeros.sh
View file @
61454658
...
@@ -70,6 +70,7 @@ routeros_deploy() {
...
@@ -70,6 +70,7 @@ routeros_deploy() {
_ccert
=
"
$3
"
_ccert
=
"
$3
"
_cca
=
"
$4
"
_cca
=
"
$4
"
_cfullchain
=
"
$5
"
_cfullchain
=
"
$5
"
_err_code
=
0
_debug _cdomain
"
$_cdomain
"
_debug _cdomain
"
$_cdomain
"
_debug _ckey
"
$_ckey
"
_debug _ckey
"
$_ckey
"
...
@@ -126,11 +127,17 @@ routeros_deploy() {
...
@@ -126,11 +127,17 @@ routeros_deploy() {
_savedeployconf ROUTER_OS_SCP_CMD
"
$ROUTER_OS_SCP_CMD
"
_savedeployconf ROUTER_OS_SCP_CMD
"
$ROUTER_OS_SCP_CMD
"
_savedeployconf ROUTER_OS_ADDITIONAL_SERVICES
"
$ROUTER_OS_ADDITIONAL_SERVICES
"
_savedeployconf ROUTER_OS_ADDITIONAL_SERVICES
"
$ROUTER_OS_ADDITIONAL_SERVICES
"
_info
"Trying to push key '
$_ckey
' to router"
# push key to routeros
$ROUTER_OS_SCP_CMD
"
$_ckey
"
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
:
$_cdomain
.key"
if
!
_scp_certificate
"
$_ckey
"
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
:
$_cdomain
.key"
;
then
_info
"Trying to push cert '
$_cfullchain
' to router"
return
$_err_code
$ROUTER_OS_SCP_CMD
"
$_cfullchain
"
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
:
$_cdomain
.cer"
fi
DEPLOY_SCRIPT_CMD
=
"/system script add name=
\"
LE Cert Deploy -
$_cdomain
\"
owner=
$ROUTER_OS_USER
\
# push certificate chain to routeros
if
!
_scp_certificate
"
$_cfullchain
"
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
:
$_cdomain
.cer"
;
then
return
$_err_code
fi
DEPLOY_SCRIPT_CMD
=
"/system script add name=
\"
LE Cert Deploy -
$_cdomain
\"
owner=
$ROUTER_OS_USERNAME
\
comment=
\"
generated by routeros deploy script in acme.sh
\"
\
comment=
\"
generated by routeros deploy script in acme.sh
\"
\
source=
\"
/certificate remove [ find name=
$_cdomain
.cer_0 ];
\
source=
\"
/certificate remove [ find name=
$_cdomain
.cer_0 ];
\
\n
/certificate remove [ find name=
$_cdomain
.cer_1 ];
\
\n
/certificate remove [ find name=
$_cdomain
.cer_1 ];
\
...
@@ -146,12 +153,51 @@ source=\"/certificate remove [ find name=$_cdomain.cer_0 ];\
...
@@ -146,12 +153,51 @@ source=\"/certificate remove [ find name=$_cdomain.cer_0 ];\
\n
$ROUTER_OS_ADDITIONAL_SERVICES
;
\
\n
$ROUTER_OS_ADDITIONAL_SERVICES
;
\
\n\"
\n\"
"
"
# shellcheck disable=SC2029
$ROUTER_OS_SSH_CMD
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
"
"
$DEPLOY_SCRIPT_CMD
"
if
!
_ssh_remote_cmd
"
$DEPLOY_SCRIPT_CMD
"
;
then
# shellcheck disable=SC2029
return
$_err_code
$ROUTER_OS_SSH_CMD
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
"
"/system script run
\"
LE Cert Deploy -
$_cdomain
\"
"
fi
# shellcheck disable=SC2029
$ROUTER_OS_SSH_CMD
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
"
"/system script remove
\"
LE Cert Deploy -
$_cdomain
\"
"
if
!
_ssh_remote_cmd
"/system script run
\"
LE Cert Deploy -
$_cdomain
\"
"
;
then
return
$_err_code
fi
if
!
_ssh_remote_cmd
"/system script remove
\"
LE Cert Deploy -
$_cdomain
\"
"
;
then
return
$_err_code
fi
return
0
return
0
}
}
# inspired by deploy/ssh.sh
_ssh_remote_cmd
()
{
_cmd
=
"
$1
"
_secure_debug
"Remote commands to execute:
$_cmd
"
_info
"Submitting sequence of commands to routeros"
# quotations in bash cmd below intended. Squash travis spellcheck error
# shellcheck disable=SC2029
$ROUTER_OS_SSH_CMD
"
$ROUTER_OS_USERNAME
@
$ROUTER_OS_HOST
"
"
$_cmd
"
_err_code
=
"
$?
"
if
[
"
$_err_code
"
!=
"0"
]
;
then
_err
"Error code
$_err_code
returned from routeros"
fi
return
$_err_code
}
_scp_certificate
()
{
_src
=
"
$1
"
_dst
=
"
$2
"
_secure_debug
"scp '
$_src
' to '
$_dst
'"
_info
"Push key '
$_src
' to routeros"
$ROUTER_OS_SCP_CMD
"
$_src
"
"
$_dst
"
_err_code
=
"
$?
"
if
[
"
$_err_code
"
!=
"0"
]
;
then
_err
"Error code
$_err_code
returned from scp"
fi
return
$_err_code
}
deploy/truenas.sh
View file @
61454658
...
@@ -38,7 +38,7 @@ truenas_deploy() {
...
@@ -38,7 +38,7 @@ truenas_deploy() {
_getdeployconf DEPLOY_TRUENAS_APIKEY
_getdeployconf DEPLOY_TRUENAS_APIKEY
if
[
-z
"
$DEPLOY_TRUENAS_APIKEY
"
]
;
then
if
[
-z
"
$DEPLOY_TRUENAS_APIKEY
"
]
;
then
_err
"TrueNAS A
pi Key is
not found, please
defin
e DEPLOY_TRUENAS_APIKEY."
_err
"TrueNAS A
PI key
not found, please
set th
e DEPLOY_TRUENAS_APIKEY
environment variable
."
return
1
return
1
fi
fi
_secure_debug2 DEPLOY_TRUENAS_APIKEY
"
$DEPLOY_TRUENAS_APIKEY
"
_secure_debug2 DEPLOY_TRUENAS_APIKEY
"
$DEPLOY_TRUENAS_APIKEY
"
...
@@ -62,15 +62,14 @@ truenas_deploy() {
...
@@ -62,15 +62,14 @@ truenas_deploy() {
_info
"Testing Connection TrueNAS"
_info
"Testing Connection TrueNAS"
_response
=
$(
_get
"
$_api_url
/system/state"
)
_response
=
$(
_get
"
$_api_url
/system/state"
)
_info
"TrueNAS
S
ystem
S
tate:
$_response
."
_info
"TrueNAS
s
ystem
s
tate:
$_response
."
if
[
-z
"
$_response
"
]
;
then
if
[
-z
"
$_response
"
]
;
then
_err
"Unable to authenticate to
$_api_url
."
_err
"Unable to authenticate to
$_api_url
."
_err
'Check your Connection and set DEPLOY_TRUENAS_HOSTNAME="192.168.178.x".'
_err
'Check your connection settings are correct, e.g.'
_err
'or'
_err
'DEPLOY_TRUENAS_HOSTNAME="192.168.x.y" or DEPLOY_TRUENAS_HOSTNAME="truenas.example.com".'
_err
'set DEPLOY_TRUENAS_HOSTNAME="<truenas_dnsname>".'
_err
'DEPLOY_TRUENAS_SCHEME="https" or DEPLOY_TRUENAS_SCHEME="http".'
_err
'Check your Connection and set DEPLOY_TRUENAS_SCHEME="https".'
_err
"Verify your TrueNAS API key is valid and set correctly, e.g. DEPLOY_TRUENAS_APIKEY=xxxx...."
_err
"Check your Api Key."
return
1
return
1
fi
fi
...
@@ -78,7 +77,7 @@ truenas_deploy() {
...
@@ -78,7 +77,7 @@ truenas_deploy() {
_savedeployconf DEPLOY_TRUENAS_HOSTNAME
"
$DEPLOY_TRUENAS_HOSTNAME
"
_savedeployconf DEPLOY_TRUENAS_HOSTNAME
"
$DEPLOY_TRUENAS_HOSTNAME
"
_savedeployconf DEPLOY_TRUENAS_SCHEME
"
$DEPLOY_TRUENAS_SCHEME
"
_savedeployconf DEPLOY_TRUENAS_SCHEME
"
$DEPLOY_TRUENAS_SCHEME
"
_info
"Getting active certificate from TrueNAS"
_info
"Getting
current
active certificate from TrueNAS"
_response
=
$(
_get
"
$_api_url
/system/general"
)
_response
=
$(
_get
"
$_api_url
/system/general"
)
_active_cert_id
=
$(
echo
"
$_response
"
|
grep
-B2
'"name":'
|
grep
'id'
|
tr
-d
--
'"id: ,'
)
_active_cert_id
=
$(
echo
"
$_response
"
|
grep
-B2
'"name":'
|
grep
'id'
|
tr
-d
--
'"id: ,'
)
_active_cert_name
=
$(
echo
"
$_response
"
|
grep
'"name":'
|
sed
-n
's/.*: "\(.\{1,\}\)",$/\1/p'
)
_active_cert_name
=
$(
echo
"
$_response
"
|
grep
'"name":'
|
sed
-n
's/.*: "\(.\{1,\}\)",$/\1/p'
)
...
@@ -88,14 +87,14 @@ truenas_deploy() {
...
@@ -88,14 +87,14 @@ truenas_deploy() {
_debug Active_UI_http_redirect
"
$_param_httpsredirect
"
_debug Active_UI_http_redirect
"
$_param_httpsredirect
"
if
[
"
$DEPLOY_TRUENAS_SCHEME
"
=
"http"
]
&&
[
"
$_param_httpsredirect
"
=
"true"
]
;
then
if
[
"
$DEPLOY_TRUENAS_SCHEME
"
=
"http"
]
&&
[
"
$_param_httpsredirect
"
=
"true"
]
;
then
_info
"
http Redirect active
"
_info
"
HTTP->HTTPS redirection is enabled
"
_info
"Setting DEPLOY_TRUENAS_SCHEME to 'https'"
_info
"Setting DEPLOY_TRUENAS_SCHEME to 'https'"
DEPLOY_TRUENAS_SCHEME
=
"https"
DEPLOY_TRUENAS_SCHEME
=
"https"
_api_url
=
"
$DEPLOY_TRUENAS_SCHEME
://
$DEPLOY_TRUENAS_HOSTNAME
/api/v2.0"
_api_url
=
"
$DEPLOY_TRUENAS_SCHEME
://
$DEPLOY_TRUENAS_HOSTNAME
/api/v2.0"
_savedeployconf DEPLOY_TRUENAS_SCHEME
"
$DEPLOY_TRUENAS_SCHEME
"
_savedeployconf DEPLOY_TRUENAS_SCHEME
"
$DEPLOY_TRUENAS_SCHEME
"
fi
fi
_info
"Upload new certifi
k
ate to TrueNAS"
_info
"Upload
ing
new certifi
c
ate to TrueNAS"
_certname
=
"Letsencrypt_
$(
_utc_date |
tr
' '
'_'
|
tr
-d
--
':'
)
"
_certname
=
"Letsencrypt_
$(
_utc_date |
tr
' '
'_'
|
tr
-d
--
':'
)
"
_debug3 _certname
"
$_certname
"
_debug3 _certname
"
$_certname
"
...
@@ -104,30 +103,30 @@ truenas_deploy() {
...
@@ -104,30 +103,30 @@ truenas_deploy() {
_debug3 _add_cert_result
"
$_add_cert_result
"
_debug3 _add_cert_result
"
$_add_cert_result
"
_info
"
G
et
t
ing
Certificate list to get new Cert ID
"
_info
"
F
et
ch
ing
list of installed certificates
"
_cert_list
=
$(
_get
"
$_api_url
/system/general/ui_certificate_choices"
)
_cert_list
=
$(
_get
"
$_api_url
/system/general/ui_certificate_choices"
)
_cert_id
=
$(
echo
"
$_cert_list
"
|
grep
"
$_certname
"
|
sed
-n
's/.*"\([0-9]\{1,\}\)".*$/\1/p'
)
_cert_id
=
$(
echo
"
$_cert_list
"
|
grep
"
$_certname
"
|
sed
-n
's/.*"\([0-9]\{1,\}\)".*$/\1/p'
)
_debug3 _cert_id
"
$_cert_id
"
_debug3 _cert_id
"
$_cert_id
"
_info
"
A
ctivate
C
ertificate ID:
$_cert_id
"
_info
"
Current a
ctivate
c
ertificate ID:
$_cert_id
"
_activateData
=
"{
\"
ui_certificate
\"
:
\"
${
_cert_id
}
\"
}"
_activateData
=
"{
\"
ui_certificate
\"
:
\"
${
_cert_id
}
\"
}"
_activate_result
=
"
$(
_post
"
$_activateData
"
"
$_api_url
/system/general"
""
"PUT"
"application/json"
)
"
_activate_result
=
"
$(
_post
"
$_activateData
"
"
$_api_url
/system/general"
""
"PUT"
"application/json"
)
"
_debug3 _activate_result
"
$_activate_result
"
_debug3 _activate_result
"
$_activate_result
"
_info
"Check if WebDAV certificate is the same as the
WEB
UI"
_info
"Check
ing
if WebDAV certificate is the same as the
TrueNAS web
UI"
_webdav_list
=
$(
_get
"
$_api_url
/webdav"
)
_webdav_list
=
$(
_get
"
$_api_url
/webdav"
)
_webdav_cert_id
=
$(
echo
"
$_webdav_list
"
|
grep
'"certssl":'
|
tr
-d
--
'"certsl: ,'
)
_webdav_cert_id
=
$(
echo
"
$_webdav_list
"
|
grep
'"certssl":'
|
tr
-d
--
'"certsl: ,'
)
if
[
"
$_webdav_cert_id
"
=
"
$_active_cert_id
"
]
;
then
if
[
"
$_webdav_cert_id
"
=
"
$_active_cert_id
"
]
;
then
_info
"Updat
e
the WebDAV
C
ertificate"
_info
"Updat
ing
the WebDAV
c
ertificate"
_debug _webdav_cert_id
"
$_webdav_cert_id
"
_debug _webdav_cert_id
"
$_webdav_cert_id
"
_webdav_data
=
"{
\"
certssl
\"
:
\"
${
_cert_id
}
\"
}"
_webdav_data
=
"{
\"
certssl
\"
:
\"
${
_cert_id
}
\"
}"
_activate_webdav_cert
=
"
$(
_post
"
$_webdav_data
"
"
$_api_url
/webdav"
""
"PUT"
"application/json"
)
"
_activate_webdav_cert
=
"
$(
_post
"
$_webdav_data
"
"
$_api_url
/webdav"
""
"PUT"
"application/json"
)
"
_webdav_new_cert_id
=
$(
echo
"
$_activate_webdav_cert
"
| _json_decode |
sed
-n
's/.*: \([0-9]\{1,\}\)
}$/\1/p'
)
_webdav_new_cert_id
=
$(
echo
"
$_activate_webdav_cert
"
| _json_decode |
grep
'"certssl":'
|
sed
-n
's/.*: \([0-9]\{1,\}\)
,\{0,1\
}$/\1/p'
)
if
[
"
$_webdav_new_cert_id
"
-eq
"
$_cert_id
"
]
;
then
if
[
"
$_webdav_new_cert_id
"
-eq
"
$_cert_id
"
]
;
then
_info
"WebDAV
C
ertificate update successfully"
_info
"WebDAV
c
ertificate update
d
successfully"
else
else
_err
"Unable to set WebDAV certificate"
_err
"Unable to set WebDAV certificate"
_debug3 _activate_webdav_cert
"
$_activate_webdav_cert
"
_debug3 _activate_webdav_cert
"
$_activate_webdav_cert
"
...
@@ -136,21 +135,21 @@ truenas_deploy() {
...
@@ -136,21 +135,21 @@ truenas_deploy() {
fi
fi
_debug3 _webdav_new_cert_id
"
$_webdav_new_cert_id
"
_debug3 _webdav_new_cert_id
"
$_webdav_new_cert_id
"
else
else
_info
"WebDAV certificate not
set
or not the same as
W
eb UI"
_info
"WebDAV certificate
is
not
configured
or
is
not the same as
TrueNAS w
eb UI"
fi
fi
_info
"Check if FTP certificate is the same as the
WEB
UI"
_info
"Check
ing
if FTP certificate is the same as the
TrueNAS web
UI"
_ftp_list
=
$(
_get
"
$_api_url
/ftp"
)
_ftp_list
=
$(
_get
"
$_api_url
/ftp"
)
_ftp_cert_id
=
$(
echo
"
$_ftp_list
"
|
grep
'"ssltls_certificate":'
|
tr
-d
--
'"certislfa:_ ,'
)
_ftp_cert_id
=
$(
echo
"
$_ftp_list
"
|
grep
'"ssltls_certificate":'
|
tr
-d
--
'"certislfa:_ ,'
)
if
[
"
$_ftp_cert_id
"
=
"
$_active_cert_id
"
]
;
then
if
[
"
$_ftp_cert_id
"
=
"
$_active_cert_id
"
]
;
then
_info
"Updat
e
the FTP
C
ertificate"
_info
"Updat
ing
the FTP
c
ertificate"
_debug _ftp_cert_id
"
$_ftp_cert_id
"
_debug _ftp_cert_id
"
$_ftp_cert_id
"
_ftp_data
=
"{
\"
ssltls_certificate
\"
:
\"
${
_cert_id
}
\"
}"
_ftp_data
=
"{
\"
ssltls_certificate
\"
:
\"
${
_cert_id
}
\"
}"
_activate_ftp_cert
=
"
$(
_post
"
$_ftp_data
"
"
$_api_url
/ftp"
""
"PUT"
"application/json"
)
"
_activate_ftp_cert
=
"
$(
_post
"
$_ftp_data
"
"
$_api_url
/ftp"
""
"PUT"
"application/json"
)
"
_ftp_new_cert_id
=
$(
echo
"
$_activate_ftp_cert
"
| _json_decode |
sed
-n
's/.*: \([0-9]\{1,\}\)
}$/\1/p'
)
_ftp_new_cert_id
=
$(
echo
"
$_activate_ftp_cert
"
| _json_decode |
grep
'"ssltls_certificate":'
|
sed
-n
's/.*: \([0-9]\{1,\}\)
,\{0,1\
}$/\1/p'
)
if
[
"
$_ftp_new_cert_id
"
-eq
"
$_cert_id
"
]
;
then
if
[
"
$_ftp_new_cert_id
"
-eq
"
$_cert_id
"
]
;
then
_info
"FTP
C
ertificate update successfully"
_info
"FTP
c
ertificate update
d
successfully"
else
else
_err
"Unable to set FTP certificate"
_err
"Unable to set FTP certificate"
_debug3 _activate_ftp_cert
"
$_activate_ftp_cert
"
_debug3 _activate_ftp_cert
"
$_activate_ftp_cert
"
...
@@ -159,22 +158,45 @@ truenas_deploy() {
...
@@ -159,22 +158,45 @@ truenas_deploy() {
fi
fi
_debug3 _activate_ftp_cert
"
$_activate_ftp_cert
"
_debug3 _activate_ftp_cert
"
$_activate_ftp_cert
"
else
else
_info
"FTP certificate not
set
or not the same as
W
eb UI"
_info
"FTP certificate
is
not
configured
or
is
not the same as
TrueNAS w
eb UI"
fi
fi
_info
"Delete old Certificate"
_info
"Checking if S3 certificate is the same as the TrueNAS web UI"
_s3_list
=
$(
_get
"
$_api_url
/s3"
)
_s3_cert_id
=
$(
echo
"
$_s3_list
"
|
grep
'"certificate":'
|
tr
-d
--
'"certifa:_ ,'
)
if
[
"
$_s3_cert_id
"
=
"
$_active_cert_id
"
]
;
then
_info
"Updating the S3 certificate"
_debug _s3_cert_id
"
$_s3_cert_id
"
_s3_data
=
"{
\"
certificate
\"
:
\"
${
_cert_id
}
\"
}"
_activate_s3_cert
=
"
$(
_post
"
$_s3_data
"
"
$_api_url
/s3"
""
"PUT"
"application/json"
)
"
_s3_new_cert_id
=
$(
echo
"
$_activate_s3_cert
"
| _json_decode |
grep
'"certificate":'
|
sed
-n
's/.*: \([0-9]\{1,\}\),\{0,1\}$/\1/p'
)
if
[
"
$_s3_new_cert_id
"
-eq
"
$_cert_id
"
]
;
then
_info
"S3 certificate updated successfully"
else
_err
"Unable to set S3 certificate"
_debug3 _activate_s3_cert
"
$_activate_s3_cert
"
_debug3 _s3_new_cert_id
"
$_s3_new_cert_id
"
return
1
fi
_debug3 _activate_s3_cert
"
$_activate_s3_cert
"
else
_info
"S3 certificate is not configured or is not the same as TrueNAS web UI"
fi
_info
"Deleting old certificate"
_delete_result
=
"
$(
_post
""
"
$_api_url
/certificate/id/
$_active_cert_id
"
""
"DELETE"
"application/json"
)
"
_delete_result
=
"
$(
_post
""
"
$_api_url
/certificate/id/
$_active_cert_id
"
""
"DELETE"
"application/json"
)
"
_debug3 _delete_result
"
$_delete_result
"
_debug3 _delete_result
"
$_delete_result
"
_info
"Reload
WebUI from
TrueNAS"
_info
"Reload
ing
TrueNAS
web UI
"
_restart_UI
=
$(
_get
"
$_api_url
/system/general/ui_restart"
)
_restart_UI
=
$(
_get
"
$_api_url
/system/general/ui_restart"
)
_debug2 _restart_UI
"
$_restart_UI
"
_debug2 _restart_UI
"
$_restart_UI
"
if
[
-n
"
$_add_cert_result
"
]
&&
[
-n
"
$_activate_result
"
]
;
then
if
[
-n
"
$_add_cert_result
"
]
&&
[
-n
"
$_activate_result
"
]
;
then
return
0
return
0
else
else
_err
"Certupdate was not succesful
l
, please
use
--debug"
_err
"Cert
ificate
update was not succesful, please
try again with
--debug"
return
1
return
1
fi
fi
}
}
dnsapi/dns_geoscaling.sh
View file @
61454658
...
@@ -58,6 +58,17 @@ dns_geoscaling_rm() {
...
@@ -58,6 +58,17 @@ dns_geoscaling_rm() {
txt_value
=
$2
txt_value
=
$2
_info
"Cleaning up after DNS-01 Geoscaling DNS2 hook"
_info
"Cleaning up after DNS-01 Geoscaling DNS2 hook"
GEOSCALING_Username
=
"
${
GEOSCALING_Username
:-
$(
_readaccountconf_mutable GEOSCALING_Username
)
}
"
GEOSCALING_Password
=
"
${
GEOSCALING_Password
:-
$(
_readaccountconf_mutable GEOSCALING_Password
)
}
"
if
[
-z
"
$GEOSCALING_Username
"
]
||
[
-z
"
$GEOSCALING_Password
"
]
;
then
GEOSCALING_Username
=
GEOSCALING_Password
=
_err
"No auth details provided. Please set user credentials using the
\$
GEOSCALING_Username and
\$
GEOSCALING_Password environment variables."
return
1
fi
_saveaccountconf_mutable GEOSCALING_Username
"
${
GEOSCALING_Username
}
"
_saveaccountconf_mutable GEOSCALING_Password
"
${
GEOSCALING_Password
}
"
# fills in the $zone_id
# fills in the $zone_id
find_zone
"
${
full_domain
}
"
||
return
1
find_zone
"
${
full_domain
}
"
||
return
1
_debug
"Zone id '
${
zone_id
}
' will be used."
_debug
"Zone id '
${
zone_id
}
' will be used."
...
...
dnsapi/dns_simply.sh
View file @
61454658
...
@@ -5,8 +5,8 @@
...
@@ -5,8 +5,8 @@
#SIMPLY_AccountName="accountname"
#SIMPLY_AccountName="accountname"
#SIMPLY_ApiKey="apikey"
#SIMPLY_ApiKey="apikey"
#
#
#SIMPLY_Api="https://api.simply.com/
1/[ACCOUNTNAME]/[APIKEY]
"
#SIMPLY_Api="https://api.simply.com/
2/
"
SIMPLY_Api_Default
=
"https://api.simply.com/
1
"
SIMPLY_Api_Default
=
"https://api.simply.com/
2
"
#This is used for determining success of REST call
#This is used for determining success of REST call
SIMPLY_SUCCESS_CODE
=
'"status":200'
SIMPLY_SUCCESS_CODE
=
'"status":200'
...
@@ -237,12 +237,18 @@ _simply_rest() {
...
@@ -237,12 +237,18 @@ _simply_rest() {
_debug2 ep
"
$ep
"
_debug2 ep
"
$ep
"
_debug2 m
"
$m
"
_debug2 m
"
$m
"
export
_H1
=
"Content-Type: application/json"
basicauth
=
$(
printf
"%s:%s"
"
$SIMPLY_AccountName
"
"
$SIMPLY_ApiKey
"
| _base64
)
if
[
"
$basicauth
"
]
;
then
export
_H1
=
"Authorization: Basic
$basicauth
"
fi
export
_H2
=
"Content-Type: application/json"
if
[
"
$m
"
!=
"GET"
]
;
then
if
[
"
$m
"
!=
"GET"
]
;
then
response
=
"
$(
_post
"
$data
"
"
$SIMPLY_Api
/
$
SIMPLY_AccountName
/
$SIMPLY_ApiKey
/
$
ep
"
""
"
$m
"
)
"
response
=
"
$(
_post
"
$data
"
"
$SIMPLY_Api
/
$ep
"
""
"
$m
"
)
"
else
else
response
=
"
$(
_get
"
$SIMPLY_Api
/
$
SIMPLY_AccountName
/
$SIMPLY_ApiKey
/
$
ep
"
)
"
response
=
"
$(
_get
"
$SIMPLY_Api
/
$ep
"
)
"
fi
fi
if
[
"
$?
"
!=
"0"
]
;
then
if
[
"
$?
"
!=
"0"
]
;
then
...
...
notify/discord.sh
0 → 100644
View file @
61454658
#!/usr/bin/env sh
#Support Discord webhooks
# Required:
#DISCORD_WEBHOOK_URL=""
# Optional:
#DISCORD_USERNAME=""
#DISCORD_AVATAR_URL=""
discord_send
()
{
_subject
=
"
$1
"
_content
=
"
$2
"
_statusCode
=
"
$3
"
#0: success, 1: error 2($RENEW_SKIP): skipped
_debug
"_statusCode"
"
$_statusCode
"
DISCORD_WEBHOOK_URL
=
"
${
DISCORD_WEBHOOK_URL
:-
$(
_readaccountconf_mutable DISCORD_WEBHOOK_URL
)
}
"
if
[
-z
"
$DISCORD_WEBHOOK_URL
"
]
;
then
DISCORD_WEBHOOK_URL
=
""
_err
"You didn't specify a Discord webhook url DISCORD_WEBHOOK_URL yet."
return
1
fi
_saveaccountconf_mutable DISCORD_WEBHOOK_URL
"
$DISCORD_WEBHOOK_URL
"
DISCORD_USERNAME
=
"
${
DISCORD_USERNAME
:-
$(
_readaccountconf_mutable DISCORD_USERNAME
)
}
"
if
[
"
$DISCORD_USERNAME
"
]
;
then
_saveaccountconf_mutable DISCORD_USERNAME
"
$DISCORD_USERNAME
"
fi
DISCORD_AVATAR_URL
=
"
${
DISCORD_AVATAR_URL
:-
$(
_readaccountconf_mutable DISCORD_AVATAR_URL
)
}
"
if
[
"
$DISCORD_AVATAR_URL
"
]
;
then
_saveaccountconf_mutable DISCORD_AVATAR_URL
"
$DISCORD_AVATAR_URL
"
fi
export
_H1
=
"Content-Type: application/json"
_content
=
"
$(
printf
"**%s**
\n
%s"
"
$_subject
"
"
$_content
"
| _json_encode
)
"
_data
=
"{
\"
content
\"
:
\"
$_content
\"
"
if
[
"
$DISCORD_USERNAME
"
]
;
then
_data
=
"
$_data
,
\"
username
\"
:
\"
$DISCORD_USERNAME
\"
"
fi
if
[
"
$DISCORD_AVATAR_URL
"
]
;
then
_data
=
"
$_data
,
\"
avatar_url
\"
:
\"
$DISCORD_AVATAR_URL
\"
"
fi
_data
=
"
$_data
}"
if
_post
"
$_data
"
"
$DISCORD_WEBHOOK_URL
?wait=true"
;
then
# shellcheck disable=SC2154
if
[
"
$response
"
]
;
then
_info
"discord send success."
return
0
fi
fi
_err
"discord send error."
_err
"
$response
"
return
1
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment