瀏覽代碼

Consolidate certificate creation into a function

Bob Mottram 9 年之前
父節點
當前提交
7202346800
共有 1 個檔案被更改,包括 48 行新增80 行删除
  1. 48
    80
      src/freedombone

+ 48
- 80
src/freedombone 查看文件

1933
     if [ ! $1 ]; then
1933
     if [ ! $1 ]; then
1934
         return
1934
         return
1935
     fi
1935
     fi
1936
-    if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
1936
+    USE_LETSENCRYPT='no'
1937
+    if [ $2 ]; then
1938
+        USE_LETSENCRYPT=$2
1939
+    fi
1940
+    if [[ $USE_LETSENCRYPT == 'no' ]]; then
1937
         if [ ! -f /etc/ssl/private/$1.key ]; then
1941
         if [ ! -f /etc/ssl/private/$1.key ]; then
1938
             echo $"Private certificate for $CHECK_HOSTNAME was not created"
1942
             echo $"Private certificate for $CHECK_HOSTNAME was not created"
1939
             exit 63959
1943
             exit 63959
1958
     fi
1962
     fi
1959
 }
1963
 }
1960
 
1964
 
1965
+function create_site_certificate {
1966
+    SITE_DOMAIN_NAME="$1"
1967
+
1968
+    # if yes then only "valid" certs are allowed, not self-signed
1969
+    NO_SELF_SIGNED='no'
1970
+    if [ $2 ]; then
1971
+        NO_SELF_SIGNED="$2"
1972
+    fi
1973
+
1974
+    if [[ $ONION_ONLY == "no" ]]; then
1975
+        if [ ! -f /etc/ssl/certs/$SITE_DOMAIN_NAME.dhparam ]; then
1976
+            if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
1977
+                ${PROJECT_NAME}-addcert -h $SITE_DOMAIN_NAME --dhkey $DH_KEYLENGTH
1978
+                check_certificates $SITE_DOMAIN_NAME
1979
+            else
1980
+                ${PROJECT_NAME}-addcert -e $SITE_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
1981
+                if [ ! "$?" = "0" ]; then
1982
+                    if [[ $NO_SELF_SIGNED == 'no' ]]; then
1983
+                        echo $"Lets Encrypt failed for $SITE_DOMAIN_NAME, so try making a self-signed cert"
1984
+                        ${PROJECT_NAME}-addcert -h $SITE_DOMAIN_NAME --dhkey $DH_KEYLENGTH
1985
+                        check_certificates $SITE_DOMAIN_NAME
1986
+                    else
1987
+                        echo $"Lets Encrypt failed for $SITE_DOMAIN_NAME"
1988
+                        exit 682529
1989
+                    fi
1990
+                else
1991
+                    check_certificates $SITE_DOMAIN_NAME 'yes'
1992
+                fi
1993
+            fi
1994
+        fi
1995
+    fi
1996
+}
1997
+
1961
 function backup_database_local {
1998
 function backup_database_local {
1962
     # Makes local backups of databases which can then be automatically rolled
1999
     # Makes local backups of databases which can then be automatically rolled
1963
     # back if corruption is detected
2000
     # back if corruption is detected
6452
 
6489
 
6453
     configure_php
6490
     configure_php
6454
 
6491
 
6455
-    if [[ $ONION_ONLY == "no" ]]; then
6456
-        if [ ! -f /etc/ssl/certs/$OWNCLOUD_DOMAIN_NAME.dhparam ]; then
6457
-            if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
6458
-                ${PROJECT_NAME}-addcert -h $OWNCLOUD_DOMAIN_NAME --dhkey $DH_KEYLENGTH
6459
-            else
6460
-                ${PROJECT_NAME}-addcert -e $OWNCLOUD_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
6461
-            fi
6462
-            check_certificates $OWNCLOUD_DOMAIN_NAME
6463
-        fi
6464
-    fi
6492
+    create_site_certificate $OWNCLOUD_DOMAIN_NAME
6465
 
6493
 
6466
     # Ensure that the database gets backed up locally, if remote
6494
     # Ensure that the database gets backed up locally, if remote
6467
     # backups are not being used
6495
     # backups are not being used
6804
 
6832
 
6805
     configure_php
6833
     configure_php
6806
 
6834
 
6807
-    if [[ $ONION_ONLY == "no" ]]; then
6808
-        if [ ! -f /etc/ssl/certs/$GIT_DOMAIN_NAME.dhparam ]; then
6809
-            if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
6810
-                ${PROJECT_NAME}-addcert -h $GIT_DOMAIN_NAME --dhkey $DH_KEYLENGTH
6811
-            else
6812
-                ${PROJECT_NAME}-addcert -e $GIT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
6813
-            fi
6814
-            check_certificates $GIT_DOMAIN_NAME
6815
-        fi
6816
-    fi
6835
+    create_site_certificate $GIT_DOMAIN_NAME
6817
 
6836
 
6818
     nginx_ensite $GIT_DOMAIN_NAME
6837
     nginx_ensite $GIT_DOMAIN_NAME
6819
 
6838
 
7726
     echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7745
     echo '    }' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7727
     echo '}' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7746
     echo '}' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7728
 
7747
 
7729
-    if [[ $ONION_ONLY == "no" ]]; then
7730
-        if [ ! -f /etc/ssl/certs/$WIKI_DOMAIN_NAME.dhparam ]; then
7731
-            if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
7732
-                ${PROJECT_NAME}-addcert -h $WIKI_DOMAIN_NAME --dhkey $DH_KEYLENGTH
7733
-            else
7734
-                ${PROJECT_NAME}-addcert -e $WIKI_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
7735
-            fi
7736
-            check_certificates $WIKI_DOMAIN_NAME
7737
-        fi
7738
-    fi
7748
+    create_site_certificate $WIKI_DOMAIN_NAME
7739
 
7749
 
7740
     configure_php
7750
     configure_php
7741
 
7751
 
8049
     echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8059
     echo '    }' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8050
     echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8060
     echo '}' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8051
 
8061
 
8052
-    if [[ $ONION_ONLY == "no" ]]; then
8053
-        if [ ! -f /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.dhparam ]; then
8054
-            if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
8055
-                ${PROJECT_NAME}-addcert -h $FULLBLOG_DOMAIN_NAME --dhkey $DH_KEYLENGTH
8056
-            else
8057
-                ${PROJECT_NAME}-addcert -e $FULLBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
8058
-            fi
8059
-            check_certificates $FULLBLOG_DOMAIN_NAME
8060
-        fi
8061
-    fi
8062
+    create_site_certificate $FULLBLOG_DOMAIN_NAME
8062
 
8063
 
8063
     configure_php
8064
     configure_php
8064
 
8065
 
8647
 
8648
 
8648
     configure_php
8649
     configure_php
8649
 
8650
 
8650
-    if [[ $ONION_ONLY == "no" ]]; then
8651
-        if [ ! -f /etc/ssl/certs/$MICROBLOG_DOMAIN_NAME.dhparam ]; then
8652
-            ${PROJECT_NAME}-addcert -e $MICROBLOG_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
8653
-            check_certificates $MICROBLOG_DOMAIN_NAME
8654
-        fi
8655
-    fi
8651
+    create_site_certificate $MICROBLOG_DOMAIN_NAME 'yes'
8656
 
8652
 
8657
     # Ensure that the database gets backed up locally, if remote
8653
     # Ensure that the database gets backed up locally, if remote
8658
     # backups are not being used
8654
     # backups are not being used
9397
 
9393
 
9398
     configure_php
9394
     configure_php
9399
 
9395
 
9400
-    if [[ $ONION_ONLY == "no" ]]; then
9401
-        if [ ! -f /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.dhparam ]; then
9402
-            ${PROJECT_NAME}-addcert -e $HUBZILLA_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9403
-            check_certificates $HUBZILLA_DOMAIN_NAME
9404
-        fi
9405
-    fi
9396
+    create_site_certificate $HUBZILLA_DOMAIN_NAME 'yes'
9406
 
9397
 
9407
     if [ ! -d $HUBZILLA_PATH/view/tpl/smarty3 ]; then
9398
     if [ ! -d $HUBZILLA_PATH/view/tpl/smarty3 ]; then
9408
         mkdir $HUBZILLA_PATH/view/tpl/smarty3
9399
         mkdir $HUBZILLA_PATH/view/tpl/smarty3
9689
     else
9680
     else
9690
         sed -i "s|Mediagoblin onion domain.*|Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}|g" $COMPLETION_FILE
9681
         sed -i "s|Mediagoblin onion domain.*|Mediagoblin onion domain:${MEDIAGOBLIN_ONION_HOSTNAME}|g" $COMPLETION_FILE
9691
     fi
9682
     fi
9692
-    
9683
+
9693
     # web config
9684
     # web config
9694
     MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9685
     MEDIAGOBLIN_VIRTUAL_HOST=/etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9695
     nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
9686
     nginx_http_redirect $MEDIAGOBLIN_DOMAIN_NAME
9759
     else
9750
     else
9760
         echo -n '' > $MEDIAGOBLIN_VIRTUAL_HOST
9751
         echo -n '' > $MEDIAGOBLIN_VIRTUAL_HOST
9761
     fi
9752
     fi
9762
-    
9753
+
9763
     echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9754
     echo 'server {' >> $MEDIAGOBLIN_VIRTUAL_HOST
9764
     echo "  listen 127.0.0.1:${MEDIAGOBLIN_ONION_PORT} default_server;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9755
     echo "  listen 127.0.0.1:${MEDIAGOBLIN_ONION_PORT} default_server;" >> $MEDIAGOBLIN_VIRTUAL_HOST
9765
     echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9756
     echo '  #################################################' >> $MEDIAGOBLIN_VIRTUAL_HOST
9821
     echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9812
     echo '  }' >> $MEDIAGOBLIN_VIRTUAL_HOST
9822
     echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
9813
     echo '}' >> $MEDIAGOBLIN_VIRTUAL_HOST
9823
 
9814
 
9824
-    if [ ! -f /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam ]; then
9825
-        if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
9826
-            ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9827
-        else
9828
-            ${PROJECT_NAME}-addcert -e $MEDIAGOBLIN_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
9829
-            if [ ! "$?" = "0" ]; then
9830
-                echo $'Lets Encrypt failed for this domain, so try making a self-signed cert'
9831
-                ${PROJECT_NAME}-addcert -h $MEDIAGOBLIN_DOMAIN_NAME --dhkey $DH_KEYLENGTH
9832
-            fi          
9833
-        fi
9834
-        check_certificates $MEDIAGOBLIN_DOMAIN_NAME
9835
-    fi
9815
+    create_site_certificate $MEDIAGOBLIN_DOMAIN_NAME
9836
 
9816
 
9837
     nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9817
     nginx_ensite $MEDIAGOBLIN_DOMAIN_NAME
9838
     systemctl restart php5-fpm
9818
     systemctl restart php5-fpm
10522
         VOIP_TURN_NONCE="$(openssl rand -base64 32 | cut -c1-30)"
10502
         VOIP_TURN_NONCE="$(openssl rand -base64 32 | cut -c1-30)"
10523
     fi
10503
     fi
10524
 
10504
 
10525
-    # create a certificate if needed
10526
-    if [ ! -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.pem ]; then
10527
-        if [ ! -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.crt ]; then
10528
-            if [ ! -f /etc/ssl/certs/$DEFAULT_DOMAIN_NAME.dhparam ]; then
10529
-                if [[ $LETSENCRYPT_ENABLED != "yes" ]]; then
10530
-                    ${PROJECT_NAME}-addcert -h $DEFAULT_DOMAIN_NAME --dhkey $DH_KEYLENGTH
10531
-                else
10532
-                    ${PROJECT_NAME}-addcert -e $DEFAULT_DOMAIN_NAME -s $LETSENCRYPT_SERVER --dhkey $DH_KEYLENGTH --email $MY_EMAIL_ADDRESS
10533
-                fi
10534
-                check_certificates $DEFAULT_DOMAIN_NAME
10535
-            fi
10536
-        fi
10537
-    fi
10505
+    create_site_certificate $DEFAULT_DOMAIN_NAME
10538
 
10506
 
10539
     echo '##' > /etc/turnserver/turnserver.conf
10507
     echo '##' > /etc/turnserver/turnserver.conf
10540
     echo '# TurnServer configuration file.' >> /etc/turnserver/turnserver.conf
10508
     echo '# TurnServer configuration file.' >> /etc/turnserver/turnserver.conf