浏览代码

Additional options for letsencrypt

These are used to create an initial account
Bob Mottram 9 年前
父节点
当前提交
bd0acd2af5
共有 2 个文件被更改,包括 35 次插入9 次删除
  1. 8
    8
      src/freedombone
  2. 27
    1
      src/freedombone-addcert

+ 8
- 8
src/freedombone 查看文件

@@ -4804,7 +4804,7 @@ function configure_imap_client_certs {
4804 4804
             if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
4805 4805
                 ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --ca "" --dhkey $DH_KEYLENGTH
4806 4806
             else
4807
-                ${PROJECT_NAME}-addcert -e $DEFAULT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --ca "" --dhkey $DH_KEYLENGTH
4807
+                ${PROJECT_NAME}-addcert -e $DEFAULT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --ca "" --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
4808 4808
             fi
4809 4809
         fi
4810 4810
     fi
@@ -6379,7 +6379,7 @@ quit" > $INSTALL_DIR/batch.sql
6379 6379
             if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
6380 6380
                 ${PROJECT_NAME}-addcert -h $OWNCLOUD_DOMAIN_NAME --dhkey $DH_KEYLENGTH
6381 6381
             else
6382
-                ${PROJECT_NAME}-addcert -e $OWNCLOUD_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
6382
+                ${PROJECT_NAME}-addcert -e $OWNCLOUD_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
6383 6383
             fi
6384 6384
             check_certificates $OWNCLOUD_DOMAIN_NAME
6385 6385
         fi
@@ -6722,7 +6722,7 @@ quit" > $INSTALL_DIR/batch.sql
6722 6722
             if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
6723 6723
                 ${PROJECT_NAME}-addcert -h $GIT_DOMAIN_NAME --dhkey $DH_KEYLENGTH
6724 6724
             else
6725
-                ${PROJECT_NAME}-addcert -e $GIT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
6725
+                ${PROJECT_NAME}-addcert -e $GIT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
6726 6726
             fi
6727 6727
             check_certificates $GIT_DOMAIN_NAME
6728 6728
         fi
@@ -7660,7 +7660,7 @@ function install_wiki {
7660 7660
             if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
7661 7661
                 ${PROJECT_NAME}-addcert -h $WIKI_DOMAIN_NAME --dhkey $DH_KEYLENGTH
7662 7662
             else
7663
-                ${PROJECT_NAME}-addcert -e $WIKI_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
7663
+                ${PROJECT_NAME}-addcert -e $WIKI_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
7664 7664
             fi
7665 7665
             check_certificates $WIKI_DOMAIN_NAME
7666 7666
         fi
@@ -8022,7 +8022,7 @@ function install_blog {
8022 8022
             if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
8023 8023
                 ${PROJECT_NAME}-addcert -h $FULLBLOG_DOMAIN_NAME --dhkey $DH_KEYLENGTH
8024 8024
             else
8025
-                ${PROJECT_NAME}-addcert -e $FULLBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
8025
+                ${PROJECT_NAME}-addcert -e $FULLBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
8026 8026
             fi
8027 8027
             check_certificates $FULLBLOG_DOMAIN_NAME
8028 8028
         fi
@@ -8311,7 +8311,7 @@ quit" > $INSTALL_DIR/batch.sql
8311 8311
 
8312 8312
     if [[ $ONION_ONLY == "no" ]]; then
8313 8313
         if [ ! -f /etc/ssl/certs/$MICROBLOG_DOMAIN_NAME.dhparam ]; then
8314
-            ${PROJECT_NAME}-addcert -e $MICROBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
8314
+            ${PROJECT_NAME}-addcert -e $MICROBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
8315 8315
             check_certificates $MICROBLOG_DOMAIN_NAME
8316 8316
         fi
8317 8317
     fi
@@ -8709,7 +8709,7 @@ quit" > $INSTALL_DIR/batch.sql
8709 8709
 
8710 8710
     if [[ $ONION_ONLY == "no" ]]; then
8711 8711
         if [ ! -f /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.dhparam ]; then
8712
-            ${PROJECT_NAME}-addcert -e $HUBZILLA_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
8712
+            ${PROJECT_NAME}-addcert -e $HUBZILLA_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
8713 8713
             check_certificates $HUBZILLA_DOMAIN_NAME
8714 8714
         fi
8715 8715
     fi
@@ -9033,7 +9033,7 @@ function install_mediagoblin {
9033 9033
         if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9034 9034
             ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9035 9035
         else
9036
-            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH
9036
+            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9037 9037
         fi
9038 9038
         check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9039 9039
     fi

+ 27
- 1
src/freedombone-addcert 查看文件

@@ -33,6 +33,9 @@ PROJECT_NAME='freedombone'
33 33
 export TEXTDOMAIN=${PROJECT_NAME}-addcert
34 34
 export TEXTDOMAINDIR="/usr/share/locale"
35 35
 
36
+CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
37
+COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
38
+
36 39
 HOSTNAME=
37 40
 LETSENCRYPT_HOSTNAME=
38 41
 COUNTRY_CODE="US"
@@ -46,6 +49,7 @@ DH_KEYLENGTH=2048
46 49
 INSTALL_DIR=/root/build
47 50
 LETSENCRYPT_SERVER='https://acme-v01.api.letsencrypt.org/directory'
48 51
 LETSENCRYPT_REPO='https://github.com/letsencrypt/letsencrypt'
52
+MY_EMAIL_ADDRESS=
49 53
 
50 54
 function show_help {
51 55
     echo ''
@@ -63,6 +67,7 @@ function show_help {
63 67
     echo $'  -l --location [locn]        Optional location name'
64 68
     echo $'  -o --organisation [name]    Optional organisation name'
65 69
     echo $'  -u --unit [name]            Optional unit name'
70
+    echo $'     --email [address]        Email address for letsencrypt'
66 71
     echo $'     --dhkey [bits]           DH key length in bits'
67 72
     echo $'     --nodh ""                Do not calculate DH params'
68 73
     echo $'     --ca ""                  Certificate authority cert'
@@ -86,6 +91,10 @@ case $key in
86 91
     shift
87 92
     LETSENCRYPT_HOSTNAME="$1"
88 93
     ;;
94
+    --email)
95
+    shift
96
+    MY_EMAIL_ADDRESS="$1"
97
+    ;;
89 98
     -s|--server)
90 99
     shift
91 100
     LETSENCRYPT_SERVER="$1"
@@ -151,6 +160,23 @@ CERTFILE=$HOSTNAME
151 160
 function add_cert_letsencrypt {
152 161
     CERTFILE=$LETSENCRYPT_HOSTNAME
153 162
 
163
+    # obtain the email address for the admin user
164
+    if [ ! $MY_EMAIL_ADDRESS ]; then
165
+        if [ -f $CONFIG_FILE ]; then
166
+            if grep -q "MY_EMAIL_ADDRESS=" $CONFIG_FILE; then
167
+                MY_EMAIL_ADDRESS=$(cat $CONFIG_FILE | grep "MY_EMAIL_ADDRESS=" | awk -F '=' '{print $2}')
168
+            fi
169
+        fi
170
+    fi
171
+    if [ ! $MY_EMAIL_ADDRESS ]; then
172
+        if [ -f $COMPLETION_FILE ]; then
173
+            if grep -q "Admin user:" $COMPLETION_FILE; then
174
+                ADMIN_USER=$(cat $COMPLETION_FILE | grep "Admin user" | awk -F ':' '{print $2}')
175
+                MY_EMAIL_ADDRESS=$ADMIN_USER@$HOSTNAME
176
+            fi
177
+        fi
178
+    fi
179
+
154 180
     if [ ! -d $INSTALL_DIR ]; then
155 181
         mkdir -p $INSTALL_DIR
156 182
     fi
@@ -172,7 +198,7 @@ function add_cert_letsencrypt {
172 198
     systemctl stop nginx
173 199
 
174 200
     cd ${INSTALL_DIR}/letsencrypt
175
-    ./letsencrypt-auto certonly --server $LETSENCRYPT_SERVER --standalone -d $LETSENCRYPT_HOSTNAME --renew-by-default
201
+    ./letsencrypt-auto certonly --server $LETSENCRYPT_SERVER --standalone -d $LETSENCRYPT_HOSTNAME --renew-by-default --agree-tos --email $MY_EMAIL_ADDRESS
176 202
     if [ ! "$?" = "0" ]; then
177 203
         echo $"Failed to install letsencrypt for domain $LETSENCRYPT_HOSTNAME"
178 204
         systemctl start nginx