|
@@ -46,6 +46,7 @@ done
|
46
|
46
|
PIN_CERTS=
|
47
|
47
|
|
48
|
48
|
HOSTNAME=
|
|
49
|
+remove_cert=
|
49
|
50
|
LETSENCRYPT_HOSTNAME=
|
50
|
51
|
COUNTRY_CODE="US"
|
51
|
52
|
AREA="Free Speech Zone"
|
|
@@ -70,19 +71,20 @@ function show_help {
|
70
|
71
|
echo ''
|
71
|
72
|
echo $'Creates a self-signed certificate for the given hostname'
|
72
|
73
|
echo ''
|
73
|
|
- echo $' --help Show help'
|
74
|
|
- echo $' -h --hostname [name] Hostname'
|
75
|
|
- echo $' -e --letsencrypt [hostname] Hostname to use with Lets Encrypt'
|
76
|
|
- echo $' -s --server [url] Lets Encrypt server URL'
|
77
|
|
- echo $' -c --country [code] Optional country code (eg. US, GB, etc)'
|
78
|
|
- echo $' -a --area [description] Optional area description'
|
79
|
|
- echo $' -l --location [locn] Optional location name'
|
80
|
|
- echo $' -o --organisation [name] Optional organisation name'
|
81
|
|
- echo $' -u --unit [name] Optional unit name'
|
82
|
|
- echo $' --email [address] Email address for letsencrypt'
|
83
|
|
- echo $' --dhkey [bits] DH key length in bits'
|
84
|
|
- echo $' --nodh "" Do not calculate DH params'
|
85
|
|
- echo $' --ca "" Certificate authority cert'
|
|
74
|
+ echo $' --help Show help'
|
|
75
|
+ echo $' -h --hostname [name] Hostname'
|
|
76
|
+ echo $' -e --letsencrypt [hostname] Hostname to use with Lets Encrypt'
|
|
77
|
+ echo $' -r --rmletsencrypt [hostname] Remove a Lets Encrypt certificate'
|
|
78
|
+ echo $' -s --server [url] Lets Encrypt server URL'
|
|
79
|
+ echo $' -c --country [code] Optional country code (eg. US, GB, etc)'
|
|
80
|
+ echo $' -a --area [description] Optional area description'
|
|
81
|
+ echo $' -l --location [locn] Optional location name'
|
|
82
|
+ echo $' -o --organisation [name] Optional organisation name'
|
|
83
|
+ echo $' -u --unit [name] Optional unit name'
|
|
84
|
+ echo $' --email [address] Email address for letsencrypt'
|
|
85
|
+ echo $' --dhkey [bits] DH key length in bits'
|
|
86
|
+ echo $' --nodh "" Do not calculate DH params'
|
|
87
|
+ echo $' --ca "" Certificate authority cert'
|
86
|
88
|
echo ''
|
87
|
89
|
exit 0
|
88
|
90
|
}
|
|
@@ -103,6 +105,11 @@ do
|
103
|
105
|
shift
|
104
|
106
|
LETSENCRYPT_HOSTNAME="$1"
|
105
|
107
|
;;
|
|
108
|
+ -r|--rmletsencrypt)
|
|
109
|
+ shift
|
|
110
|
+ LETSENCRYPT_HOSTNAME="$1"
|
|
111
|
+ remove_cert=1
|
|
112
|
+ ;;
|
106
|
113
|
--email)
|
107
|
114
|
shift
|
108
|
115
|
MY_EMAIL_ADDRESS="$1"
|
|
@@ -173,6 +180,25 @@ fi
|
173
|
180
|
|
174
|
181
|
CERTFILE=$HOSTNAME
|
175
|
182
|
|
|
183
|
+function remove_cert_letsencrypt {
|
|
184
|
+ CERTFILE=$LETSENCRYPT_HOSTNAME
|
|
185
|
+
|
|
186
|
+ # disable the site if needed
|
|
187
|
+ if [ -f /etc/nginx/sites-available/${LETSENCRYPT_HOSTNAME} ]; then
|
|
188
|
+ if grep -q "443" /etc/nginx/sites-available/${LETSENCRYPT_HOSTNAME}; then
|
|
189
|
+ nginx_dissite ${LETSENCRYPT_HOSTNAME}
|
|
190
|
+ fi
|
|
191
|
+ fi
|
|
192
|
+
|
|
193
|
+ # remove the cert
|
|
194
|
+ rm -rf /etc/letsencrypt/live/${LETSENCRYPT_HOSTNAME}*
|
|
195
|
+ rm -rf /etc/letsencrypt/archive/${LETSENCRYPT_HOSTNAME}*
|
|
196
|
+ rm /etc/letsencrypt/renewal/${LETSENCRYPT_HOSTNAME}.conf
|
|
197
|
+
|
|
198
|
+ # restart the web server
|
|
199
|
+ systemctl restart nginx
|
|
200
|
+}
|
|
201
|
+
|
176
|
202
|
function add_cert_letsencrypt {
|
177
|
203
|
CERTFILE=$LETSENCRYPT_HOSTNAME
|
178
|
204
|
|
|
@@ -307,6 +333,11 @@ function make_cert_bundle {
|
307
|
333
|
}
|
308
|
334
|
|
309
|
335
|
function create_cert {
|
|
336
|
+ if [ $remove_cert ]; then
|
|
337
|
+ remove_cert_letsencrypt
|
|
338
|
+ return
|
|
339
|
+ fi
|
|
340
|
+
|
310
|
341
|
if [ $LETSENCRYPT_HOSTNAME ]; then
|
311
|
342
|
add_cert_letsencrypt
|
312
|
343
|
else
|