-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cert_generator.sh
executable file
·52 lines (42 loc) · 1.27 KB
/
cert_generator.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
: "${EMAIL_ADDRESS? not set}"
: "${DOMAIN? not set}"
: "${CERT_PATH? not set}"
set -e
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
case $ARCH in
x86_64)
ARCH="amd64"
;;
aarch64)
ARCH="arm64"
;;
armv7l)
ARCH="arm"
;;
i386)
ARCH="386"
;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac
TARGET="${OS}_${ARCH}"
INSTALLER_URL=$(curl -L https://api.github.com/repos/xenolf/lego/releases/latest --no-progress-meter | grep browser_download_url | grep ${TARGET} | cut -d '"' -f 4)
INSTALLER_PATH=/tmp/$(basename "$INSTALLER_URL")
echo "[INFO] -------------------------"
echo "[INFO] SSL Certificate Generator"
echo "[INFO] -------------------------"
echo ""
echo "[INFO] Installing Lego..."
curl -L -o ${INSTALLER_PATH} ${INSTALLER_URL} --no-progress-meter
tar xzf ${INSTALLER_PATH} -C /tmp
echo "[INFO] Generating certificates..."
/tmp/lego --tls --email="${EMAIL_ADDRESS}" --domains="${DOMAIN}" --domains="www.${DOMAIN}" --path="${CERT_PATH}" --accept-tos run
echo "[INFO] Generated Certificates"
ls -lR ${CERT_PATH}
echo "[INFO] Compressing generated certificates..."
tar -czf "${CERT_PATH}.tar.gz" ${CERT_PATH}
echo "[INFO] Certificates generated..."