|
|
@@ -1,33 +1,50 @@
|
|
1
|
1
|
#!/bin/bash
|
|
2
|
2
|
# script convert end make ssl sert for https
|
|
3
|
|
-# info -
|
|
4
|
|
-#
|
|
|
3
|
+# info - script auto update cert for sites
|
|
|
4
|
+# version 1.10.1
|
|
|
5
|
+# author Koshuba V.O.- 2021
|
|
|
6
|
+# master@qbpro.ru
|
|
|
7
|
+#
|
|
5
|
8
|
path_certbot="/etc/letsencrypt/live";
|
|
6
|
9
|
path_ssl="/etc/ssl/private";
|
|
7
|
10
|
source certbot.conf;
|
|
8
|
|
-logfile="/var/log/syslog";
|
|
|
11
|
+log="/var/log/syslog";
|
|
9
|
12
|
#
|
|
10
|
13
|
cmd=$1;
|
|
11
|
14
|
#
|
|
12
|
|
-
|
|
13
|
|
-function makesslkey() {
|
|
14
|
|
-:>/etc/ssl/crt-list.txt
|
|
|
15
|
+## if keys update certbot - recreate keys for sites
|
|
|
16
|
+function makekeys() {
|
|
|
17
|
+valtrue=0;
|
|
|
18
|
+rdate=$(date +%Y-%m-%d);
|
|
|
19
|
+rtime=$(date +%H:%M);
|
|
15
|
20
|
for ((dmn=0; dmn != ${#domains[@]}; dmn++))
|
|
16
|
21
|
do
|
|
17
|
|
- cat $path_certbot/${domains[$dmn]}/cert.pem > $path_ssl/${domains[$dmn]}.pem;
|
|
18
|
|
- cat $path_certbot/${domains[$dmn]}/chain.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
19
|
|
- cat $path_certbot/${domains[$dmn]}/fullchain.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
20
|
|
- cat $path_certbot/${domains[$dmn]}/privkey.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
21
|
|
-done
|
|
22
|
|
-for ((icrt=0; icrt != ${#domains[@]}; icrt++))
|
|
23
|
|
- do
|
|
24
|
|
- echo "$path_ssl/${domains[$icrt]}.pem">>/etc/ssl/crt-list.txt
|
|
|
22
|
+ keydate=$(ls -l --time-style=long-iso $path_certbot/${domains[$dmn]}/cert.pem |awk {'print$6'});
|
|
|
23
|
+ keytime=$(ls -l --time-style=long-iso $path_certbot/${domains[$dmn]}/cert.pem |awk {'print$7'});
|
|
|
24
|
+ if [ "$keydate" = "$rdate" ] && [ "$keytime" = "$rtime" ];
|
|
|
25
|
+ then
|
|
|
26
|
+ ((valtrue++));
|
|
|
27
|
+ cat $path_certbot/${domains[$dmn]}/cert.pem > $path_ssl/${domains[$dmn]}.pem;
|
|
|
28
|
+ cat $path_certbot/${domains[$dmn]}/chain.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
|
29
|
+ cat $path_certbot/${domains[$dmn]}/fullchain.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
|
30
|
+ cat $path_certbot/${domains[$dmn]}/privkey.pem >> $path_ssl/${domains[$dmn]}.pem;
|
|
|
31
|
+ echo "$rdate - $rtime - autocertbot: recreate cert for ${domains[$dmn]}">> $log;
|
|
|
32
|
+ fi
|
|
25
|
33
|
done
|
|
|
34
|
+if [ $valtrue != 0 ];
|
|
|
35
|
+ then
|
|
|
36
|
+ :>/etc/ssl/crt-list.txt
|
|
|
37
|
+ for ((icrt=0; icrt != ${#domains[@]}; icrt++))
|
|
|
38
|
+ do
|
|
|
39
|
+ echo "$path_ssl/${domains[$icrt]}.pem">>/etc/ssl/crt-list.txt
|
|
|
40
|
+ done
|
|
|
41
|
+fi
|
|
26
|
42
|
}
|
|
27
|
43
|
|
|
28
|
44
|
function renew() {
|
|
29
|
45
|
/etc/init.d/haproxy stop;
|
|
30
|
46
|
certbot renew;
|
|
|
47
|
+ makekeys;
|
|
31
|
48
|
/etc/init.d/haproxy start;
|
|
32
|
49
|
}
|
|
33
|
50
|
|
|
|
@@ -39,7 +56,6 @@ for ((dmn=0; dmn != ${#domains[@]}; dmn++))
|
|
39
|
56
|
do
|
|
40
|
57
|
certbot certonly --preferred-challenges http --standalone -d ${domains[$dmn]};
|
|
41
|
58
|
done
|
|
42
|
|
-makesslkey;
|
|
43
|
59
|
/etc/init.d/haproxy start;
|
|
44
|
60
|
}
|
|
45
|
61
|
|
|
|
@@ -51,11 +67,6 @@ case "$cmd" in
|
|
51
|
67
|
createCert;
|
|
52
|
68
|
;;
|
|
53
|
69
|
|
|
54
|
|
-## create cert keys
|
|
55
|
|
-"--keylist" | "--keylist" )
|
|
56
|
|
-makesslkey;
|
|
57
|
|
-;;
|
|
58
|
|
-
|
|
59
|
70
|
## update cert
|
|
60
|
71
|
"--update" | "--update" )
|
|
61
|
72
|
renew;
|
|
|
@@ -64,9 +75,8 @@ renew;
|
|
64
|
75
|
## start defaults
|
|
65
|
76
|
|
|
66
|
77
|
* )
|
|
67
|
|
-echo "please input pameters: autocertbot.sh --create | --update | --keylist";
|
|
|
78
|
+echo "please input pameters: autocertbot.sh --create | --update";
|
|
68
|
79
|
echo "autocertbot.sh --create; create new certificate"
|
|
69
|
80
|
echo "autocertbot.sh --update; update certificates;"
|
|
70
|
|
-echo "autocertbot.sh --keylist; create ssl keylist;"
|
|
71
|
81
|
;;
|
|
72
|
|
-esac
|
|
|
82
|
+esac
|