Просмотр исходного кода

Function to create nginx ssl parameters

Bob Mottram 9 лет назад
Родитель
Сommit
a870beed6e
1 измененных файлов: 26 добавлений и 71 удалений
  1. 26
    71
      src/freedombone

+ 26
- 71
src/freedombone Просмотреть файл

@@ -1437,7 +1437,7 @@ function set_default_onion_domains {
1437 1437
     fi
1438 1438
 }
1439 1439
 
1440
-function website_http_redirect {
1440
+function nginx_http_redirect {
1441 1441
     # redirect port 80 to https
1442 1442
     domain_name=$1
1443 1443
     filename=/etc/nginx/sites-available/$domain_name
@@ -1456,6 +1456,21 @@ function website_http_redirect {
1456 1456
     echo '' >> $filename
1457 1457
 }
1458 1458
 
1459
+function nginx_ssl {
1460
+    # creates the SSL/TLS section for a website
1461
+    domain_name=$1
1462
+    filename=/etc/nginx/sites-available/$domain_name
1463
+    echo '    ssl on;' >> $filename
1464
+    echo "    ssl_certificate /etc/ssl/certs/${domain_name}.crt;" >> $filename
1465
+    echo "    ssl_certificate_key /etc/ssl/private/${domain_name}.key;" >> $filename
1466
+    echo "    ssl_dhparam /etc/ssl/certs/${domain_name}.dhparam;" >> $filename
1467
+    echo '' >> $filename
1468
+    echo '    ssl_session_timeout 60m;' >> $filename
1469
+    echo '    ssl_prefer_server_ciphers on;' >> $filename
1470
+    echo "    ssl_protocols $SSL_PROTOCOLS;" >> $filename
1471
+    echo "    ssl_ciphers '$SSL_CIPHERS';" >> $filename
1472
+}
1473
+
1459 1474
 function set_repo_commit {
1460 1475
     repo_dir=$1
1461 1476
     repo_commit_name=$2
@@ -6475,7 +6490,7 @@ function install_owncloud {
6475 6490
     ln -s /usr/share/owncloud /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs
6476 6491
 
6477 6492
     if [[ $ONION_ONLY == "no" ]]; then
6478
-        website_http_redirect $OWNCLOUD_DOMAIN_NAME
6493
+        nginx_http_redirect $OWNCLOUD_DOMAIN_NAME
6479 6494
         echo 'server {' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6480 6495
         echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6481 6496
         echo "    root /var/www/$OWNCLOUD_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
@@ -6486,15 +6501,7 @@ function install_owncloud {
6486 6501
         echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6487 6502
         echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6488 6503
         echo '' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6489
-        echo '    ssl on;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6490
-        echo "    ssl_certificate /etc/ssl/certs/$OWNCLOUD_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6491
-        echo "    ssl_certificate_key /etc/ssl/private/$OWNCLOUD_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6492
-        echo "    ssl_dhparam /etc/ssl/certs/$OWNCLOUD_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6493
-        echo '' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6494
-        echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6495
-        echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6496
-        echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6497
-        echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6504
+        nginx_ssl $OWNCLOUD_DOMAIN_NAME
6498 6505
         echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6499 6506
         echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
6500 6507
         echo '    add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$OWNCLOUD_DOMAIN_NAME
@@ -6917,15 +6924,7 @@ function install_gogs {
6917 6924
         echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6918 6925
         echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6919 6926
         echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6920
-        echo '    ssl on;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6921
-        echo "    ssl_certificate /etc/ssl/certs/$GIT_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6922
-        echo "    ssl_certificate_key /etc/ssl/private/$GIT_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6923
-        echo "    ssl_dhparam /etc/ssl/certs/$GIT_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6924
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6925
-        echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6926
-        echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6927
-        echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6928
-        echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6927
+        nginx_ssl $GIT_DOMAIN_NAME
6929 6928
         echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6930 6929
         echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
6931 6930
         echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
@@ -7745,16 +7744,7 @@ function install_wiki {
7745 7744
         echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7746 7745
         echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7747 7746
         echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7748
-        echo '    ssl on;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7749
-        echo "    ssl_certificate /etc/ssl/certs/$WIKI_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7750
-        echo "    ssl_certificate_key /etc/ssl/private/$WIKI_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7751
-        echo "    ssl_dhparam /etc/ssl/certs/$WIKI_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7752
-        echo '' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7753
-        echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7754
-        echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7755
-        echo '    ssl_session_cache  builtin:1000  shared:SSL:10m;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7756
-        echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7757
-        echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7747
+        nginx_ssl $WIKI_DOMAIN_NAME
7758 7748
         echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7759 7749
         echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
7760 7750
         echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$WIKI_DOMAIN_NAME
@@ -8095,16 +8085,7 @@ function install_blog {
8095 8085
         echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8096 8086
         echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8097 8087
         echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8098
-        echo '    ssl on;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8099
-        echo "    ssl_certificate /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8100
-        echo "    ssl_certificate_key /etc/ssl/private/$FULLBLOG_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8101
-        echo "    ssl_dhparam /etc/ssl/certs/$FULLBLOG_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8102
-        echo '' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8103
-        echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8104
-        echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8105
-        echo '    ssl_session_cache  builtin:1000  shared:SSL:10m;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8106
-        echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8107
-        echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8088
+        nginx_ssl $FULLBLOG_DOMAIN_NAME
8108 8089
         echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8109 8090
         echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
8110 8091
         echo '    add_header Strict-Transport-Security "max-age=0;";' >> /etc/nginx/sites-available/$FULLBLOG_DOMAIN_NAME
@@ -8672,22 +8653,13 @@ function install_gnu_social {
8672 8653
 
8673 8654
     microblog_nginx_site=/etc/nginx/sites-available/$MICROBLOG_DOMAIN_NAME
8674 8655
     if [[ $ONION_ONLY == "no" ]]; then
8675
-        website_http_redirect $MICROBLOG_DOMAIN_NAME
8656
+        nginx_http_redirect $MICROBLOG_DOMAIN_NAME
8676 8657
         echo 'server {' >> $microblog_nginx_site
8677 8658
         echo '  listen 443 ssl;' >> $microblog_nginx_site
8678 8659
         echo "  server_name $MICROBLOG_DOMAIN_NAME;" >> $microblog_nginx_site
8679 8660
         echo '' >> $microblog_nginx_site
8680 8661
         echo '  # Security' >> $microblog_nginx_site
8681
-        echo '  ssl on;' >> $microblog_nginx_site
8682
-        echo "  ssl_certificate /etc/ssl/certs/$MICROBLOG_DOMAIN_NAME.pem;" >> $microblog_nginx_site
8683
-        echo "  ssl_certificate_key /etc/ssl/private/$MICROBLOG_DOMAIN_NAME.key;" >> $microblog_nginx_site
8684
-        echo "  ssl_dhparam /etc/ssl/certs/$MICROBLOG_DOMAIN_NAME.dhparam;" >> $microblog_nginx_site
8685
-        echo '' >> $microblog_nginx_site
8686
-        echo '  ssl_session_timeout 60m;' >> $microblog_nginx_site
8687
-        echo '  ssl_prefer_server_ciphers on;' >> $microblog_nginx_site
8688
-        echo '  ssl_session_cache  builtin:1000  shared:SSL:10m;' >> $microblog_nginx_site
8689
-        echo "  ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> $microblog_nginx_site
8690
-        echo "  ssl_ciphers '$SSL_CIPHERS';" >> $microblog_nginx_site
8662
+        nginx_ssl $MICROBLOG_DOMAIN_NAME
8691 8663
         echo '  add_header X-Frame-Options DENY;' >> $microblog_nginx_site
8692 8664
         echo '  add_header X-Content-Type-Options nosniff;' >> $microblog_nginx_site
8693 8665
         echo '  add_header Strict-Transport-Security max-age=15768000;' >> $microblog_nginx_site
@@ -9136,7 +9108,7 @@ function install_hubzilla {
9136 9108
     add_ddns_domain
9137 9109
 
9138 9110
     if [[ $ONION_ONLY == "no" ]]; then
9139
-        website_http_redirect $HUBZILLA_DOMAIN_NAME
9111
+        nginx_http_redirect $HUBZILLA_DOMAIN_NAME
9140 9112
         echo 'server {' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9141 9113
         echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9142 9114
         echo "    root /var/www/$HUBZILLA_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
@@ -9151,16 +9123,7 @@ function install_hubzilla {
9151 9123
         echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9152 9124
         echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9153 9125
         echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9154
-        echo '    ssl on;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9155
-        echo "    ssl_certificate /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.bundle.crt;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9156
-        echo "    ssl_certificate_key /etc/ssl/private/$HUBZILLA_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9157
-        echo "    ssl_dhparam /etc/ssl/certs/$HUBZILLA_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9158
-        echo '' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9159
-        echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9160
-        echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9161
-        echo '    ssl_session_cache  builtin:1000  shared:SSL:10m;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9162
-        echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9163
-        echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9126
+        nginx_ssl $HUBZILLA_DOMAIN_NAME
9164 9127
         echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9165 9128
         echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
9166 9129
         echo '    add_header Strict-Transport-Security max-age=15768000;' >> /etc/nginx/sites-available/$HUBZILLA_DOMAIN_NAME
@@ -9548,15 +9511,7 @@ function install_mediagoblin {
9548 9511
     echo '    limit_conn conn_limit_per_ip 10;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9549 9512
     echo '    limit_req zone=req_limit_per_ip burst=10 nodelay;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9550 9513
     echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9551
-    echo '    ssl on;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9552
-    echo "    ssl_certificate /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.crt;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9553
-    echo "    ssl_certificate_key /etc/ssl/private/$MEDIAGOBLIN_DOMAIN_NAME.key;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9554
-    echo "    ssl_dhparam /etc/ssl/certs/$MEDIAGOBLIN_DOMAIN_NAME.dhparam;" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9555
-    echo '' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9556
-    echo '    ssl_session_timeout 60m;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9557
-    echo '    ssl_prefer_server_ciphers on;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9558
-    echo "    ssl_protocols $SSL_PROTOCOLS; # not possible to do exclusive" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9559
-    echo "    ssl_ciphers '$SSL_CIPHERS';" >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9514
+    nginx_ssl $MEDIAGOBLIN_DOMAIN_NAME
9560 9515
     echo '    add_header X-Frame-Options DENY;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9561 9516
     echo '    add_header X-Content-Type-Options nosniff;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME
9562 9517
     echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$MEDIAGOBLIN_DOMAIN_NAME