Skip to content

Commit

Permalink
Support revoke cert
Browse files Browse the repository at this point in the history
  • Loading branch information
neil committed Apr 6, 2016
1 parent de9fd54 commit 6cb415f
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 2 deletions.
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Show help message:
```
root@v1:~# le.sh
https://github.com/Neilpang/le
v1.2.2
v1.2.3
Usage: le.sh [command] ...[args]....
Available commands:
Expand All @@ -94,6 +94,8 @@ renewAll:
Renew all the certs.
uninstall:
Uninstall le.sh, and uninstall the cron job.
revoke:
Revoke a cert.
version:
Show version info.
installcronjob:
Expand All @@ -111,6 +113,7 @@ createCSR:
root@v1:~/le# le issue
Usage: le issue webroot|no|apache|dns a.com [www.a.com,b.com,c.com]|no [key-length]|no
Expand Down
58 changes: 57 additions & 1 deletion le.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
VER=1.2.2
VER=1.2.3
PROJECT="https://github.com/Neilpang/le"

DEFAULT_CA="https://acme-v01.api.letsencrypt.org"
Expand Down Expand Up @@ -1474,6 +1474,60 @@ uninstallcronjob() {

}

revoke() {
Le_Domain="$1"
if [ -z "$Le_Domain" ] ; then
_err "Usage: revoke domain.com"
return 1
fi

_initpath $Le_Domain
if [ ! -f "$DOMAIN_CONF" ] ; then
_err "$Le_Domain is not a issued domain, skip."
return 1;
fi

if [ ! -f "$CERT_PATH" ] ; then
_err "Cert for $Le_Domain $CERT_PATH is not found, skip."
return 1
fi

cert="$(_getfile "${CERT_PATH}" "${BEGIN_CERT}" "${END_CERT}"| tr -d "\r\n" | _urlencode)"

if [ -z "$cert" ] ; then
_err "Cert for $Le_Domain is empty found, skip."
return 1
fi

data="{\"resource\": \"revoke-cert\", \"certificate\": \"$cert\"}"
uri="$API/acme/revoke-cert"

_info "Try domain key first."
if _send_signed_request $uri "$data" "" "$CERT_KEY_PATH"; then
if [ -z "$response" ] ; then
_info "Revoke success."
rm -f $CERT_PATH
return 0
else
_err "Revoke error by domain key."
_err "$resource"
fi
fi

_info "Then try account key."

if _send_signed_request $uri "$data" "" "$ACCOUNT_KEY_PATH" ; then
if [ -z "$response" ] ; then
_info "Revoke success."
rm -f $CERT_PATH
return 0
else
_err "Revoke error."
_debug "$resource"
fi
fi
return 1
}

# Detect profile file if not specified as environment variable
_detect_profile() {
Expand Down Expand Up @@ -1690,6 +1744,8 @@ renewAll:
Renew all the certs.
uninstall:
Uninstall le.sh, and uninstall the cron job.
revoke:
Revoke a cert.
version:
Show version info.
installcronjob:
Expand Down

0 comments on commit 6cb415f

Please sign in to comment.