Skip to content

Commit 3b49307

Browse files
authored
Merge pull request hestiacp#411 from hestiacp/develop
Feature backend letsencrypt
2 parents 4f3ab58 + a8a94da commit 3b49307

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

bin/v-add-letsencrypt-host

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#!/bin/bash
2+
# info: add letsencrypt for host and backend
3+
# options:
4+
#
5+
# The function check and validates the backend certificate and generate
6+
# a new let's encrypt certificate.
7+
8+
9+
#----------------------------------------------------------#
10+
# Variable&Function #
11+
#----------------------------------------------------------#
12+
13+
# Argument definition
14+
user="admin"
15+
domain=$HOSTNAME
16+
17+
# Includes
18+
source $HESTIA/func/main.sh
19+
source $HESTIA/func/domain.sh
20+
source $HESTIA/conf/hestia.conf
21+
22+
23+
#----------------------------------------------------------#
24+
# Verifications #
25+
#----------------------------------------------------------#
26+
27+
is_format_valid 'user' 'domain' 'aliases'
28+
is_object_valid 'user' 'USER' "$user"
29+
is_object_unsuspended 'user' 'USER' "$user"
30+
is_system_enabled "$WEB_SYSTEM" 'WEB_SYSTEM'
31+
32+
33+
#----------------------------------------------------------#
34+
# Action #
35+
#----------------------------------------------------------#
36+
37+
# Check if hostname already exists as domain
38+
if [ "$($BIN/v-list-web-domain $user $domain plain |cut -f 1)" != "$domain" ]; then
39+
# Create web domain for hostname
40+
$BIN/v-add-web-domain $user $domain
41+
fi
42+
43+
# Validate web domain
44+
is_object_valid 'web' 'DOMAIN' "$domain"
45+
is_object_unsuspended 'web' 'DOMAIN' "$domain"
46+
get_domain_values 'web'
47+
48+
# Load domain data
49+
eval $(grep "DOMAIN='$domain'" $USER_DATA/web.conf)
50+
51+
# Set ssl installation to yes
52+
add_ssl="yes"
53+
54+
if [ "$SSL" = "yes" ]; then
55+
# Valildate SSL Certificate
56+
if [ -e "$USER_DATA/ssl/$domain.ca" ]; then
57+
if openssl verify -CAfile $USER_DATA/ssl/$domain.ca $USER_DATA/ssl/$domain.pem | grep -q "$domain.pem: OK"; then
58+
add_ssl="no"
59+
fi
60+
else
61+
if openssl verify $USER_DATA/ssl/$domain.pem | grep -q "$domain.pem: OK"; then
62+
add_ssl="no"
63+
fi
64+
fi
65+
fi
66+
67+
# Add let's encrypt ssl if needed
68+
if [ "$add_ssl" = "yes" ]; then
69+
# Add let's encrypt ssl
70+
$BIN/v-add-letsencrypt-domain $user $domain
71+
fi
72+
73+
# Add certificate to backend
74+
$BIN/v-update-host-certificate $user $domain
75+
76+
77+
#----------------------------------------------------------#
78+
# Hestia #
79+
#----------------------------------------------------------#
80+
81+
exit

0 commit comments

Comments
 (0)