Parcourir la source

Dovecot uses default certificate

Bob Mottram il y a 8 ans
Parent
révision
6ec1758fad
2 fichiers modifiés avec 46 ajouts et 34 suppressions
  1. 15
    23
      src/freedombone-app-xmpp
  2. 31
    11
      src/freedombone-base-email

+ 15
- 23
src/freedombone-app-xmpp Voir le fichier

@@ -309,10 +309,12 @@ function install_xmpp_main {
309 309
         return
310 310
     fi
311 311
 
312
-    # obtain a cert for the default domain
313
-    if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "0" ]]; then
314
-        echo $'Obtaining certificate for the main domain'
315
-        create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
312
+    if [[ $ONION_ONLY == 'no' ]]; then
313
+        # obtain a cert for the default domain
314
+        if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "0" ]]; then
315
+            echo $'Obtaining certificate for the main domain'
316
+            create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
317
+        fi
316 318
     fi
317 319
 
318 320
     apt-get -yq install lua-sec lua-bitop
@@ -340,29 +342,19 @@ function install_xmpp_main {
340 342
 
341 343
     # create a certificate
342 344
     if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "0" ]]; then
343
-        if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} xmpp) == "0" ]]; then
345
+        if [[ $(cert_exists xmpp) == "0" ]]; then
344 346
             ${PROJECT_NAME}-addcert -h xmpp --dhkey ${DH_KEYLENGTH}
345 347
             check_certificates xmpp
346 348
         fi
347 349
     fi
348
-    if [ -f /etc/ssl/private/xmpp.key ]; then
349
-        chown prosody:prosody /etc/ssl/private/xmpp.key
350
-    fi
351
-    if [ -f /etc/ssl/certs/xmpp.crt ]; then
352
-        chown prosody:prosody /etc/ssl/certs/xmpp.crt
353
-    fi
354
-    if [ -f /etc/ssl/certs/xmpp.dhparam ]; then
355
-        chown prosody:prosody /etc/ssl/certs/xmpp.dhparam
356
-    fi
357
-    if [ -f /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key ]; then
358
-        chown prosody:prosody /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key
359
-    fi
360
-    if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
361
-        chown prosody:prosody /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem
362
-    fi
363
-    if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam ]; then
364
-        chown prosody:prosody /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam
365
-    fi
350
+
351
+    groupadd default
352
+    usermod -g default prosody
353
+
354
+    chown root:default /etc/ssl/private/xmpp.*
355
+    chown root:default /etc/ssl/certs/xmpp.*
356
+    chown root:default /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.*
357
+    chown root:default /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.*
366 358
 
367 359
     cp -a /etc/prosody/conf.avail/example.com.cfg.lua /etc/prosody/conf.avail/xmpp.cfg.lua
368 360
 

+ 31
- 11
src/freedombone-base-email Voir le fichier

@@ -1218,24 +1218,44 @@ function configure_imap {
1218 1218
         exit 48
1219 1219
     fi
1220 1220
 
1221
-    if [ ! -f /etc/ssl/certs/dovecot.dhparam ]; then
1222
-        ${PROJECT_NAME}-addcert -h dovecot --dhkey $DH_KEYLENGTH
1223
-        check_certificates dovecot
1221
+    if [[ $ONION_ONLY == 'no' ]]; then
1222
+        # obtain a cert for the default domain
1223
+        if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "0" ]]; then
1224
+            echo $'Obtaining certificate for the main domain'
1225
+            create_site_certificate ${DEFAULT_DOMAIN_NAME} 'yes'
1226
+        fi
1227
+    fi
1228
+
1229
+    if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "0" ]]; then
1230
+        if [[ $(cert_exists dovecot) == "0" ]]; then
1231
+            ${PROJECT_NAME}-addcert -h dovecot --dhkey $DH_KEYLENGTH
1232
+            check_certificates dovecot
1233
+        fi
1224 1234
     fi
1225
-    chown root:dovecot /etc/ssl/certs/dovecot.*
1226
-    chown root:dovecot /etc/ssl/private/dovecot.*
1235
+
1236
+    groupadd default
1237
+    usermod -g default dovecot
1238
+
1239
+    chown root:default /etc/ssl/certs/dovecot.*
1240
+    chown root:default /etc/ssl/private/dovecot.*
1241
+    chown root:default /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.*
1242
+    chown root:default /etc/ssl/private/${DEFAULT_DOMAIN_NAME}.*
1227 1243
 
1228 1244
     if [ ! -f /etc/dovecot/conf.d/10-ssl.conf ]; then
1229 1245
         echo $'Unable to find /etc/dovecot/conf.d/10-ssl.conf'
1230 1246
         exit 83629
1231 1247
     fi
1232 1248
     sed -i 's|#ssl =.*|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
1233
-    sed -i 's|ssl = no|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
1234
-    sed -i 's|ssl = yes|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
1235
-    sed -i 's|#ssl_cert =.*|ssl_cert = </etc/ssl/certs/dovecot.crt|g' /etc/dovecot/conf.d/10-ssl.conf
1236
-    sed -i 's|ssl_cert =.*|ssl_cert = </etc/ssl/certs/dovecot.crt|g' /etc/dovecot/conf.d/10-ssl.conf
1237
-    sed -i 's|#ssl_key =.*|ssl_key = </etc/ssl/private/dovecot.key|g' /etc/dovecot/conf.d/10-ssl.conf
1238
-    sed -i 's|ssl_key =.*|ssl_key = </etc/ssl/private/dovecot.key|g' /etc/dovecot/conf.d/10-ssl.conf
1249
+    sed -i 's|ssl =.*|ssl = required|g' /etc/dovecot/conf.d/10-ssl.conf
1250
+    if [[ $(cert_exists ${DEFAULT_DOMAIN_NAME} pem) == "1" ]]; then
1251
+        sed -i "s|#ssl_cert =.*|ssl_cert = </etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/dovecot/conf.d/10-ssl.conf
1252
+        sed -i "s|ssl_cert =.*|ssl_cert = </etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem|g" /etc/dovecot/conf.d/10-ssl.conf
1253
+    else
1254
+        sed -i "s|#ssl_cert =.*|ssl_cert = </etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.crt|g" /etc/dovecot/conf.d/10-ssl.conf
1255
+        sed -i "s|ssl_cert =.*|ssl_cert = </etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.crt|g" /etc/dovecot/conf.d/10-ssl.conf
1256
+    fi
1257
+    sed -i "s|#ssl_key =.*|ssl_key = </etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key|g" /etc/dovecot/conf.d/10-ssl.conf
1258
+    sed -i "s|ssl_key =.*|ssl_key = </etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key|g" /etc/dovecot/conf.d/10-ssl.conf
1239 1259
     sed -i 's|#ssl_dh_parameters_length.*|ssl_dh_parameters_length = 2048|g' /etc/dovecot/conf.d/10-ssl.conf
1240 1260
     sed -i 's/#ssl_prefer_server_ciphers.*/ssl_prefer_server_ciphers = yes/g' /etc/dovecot/conf.d/10-ssl.conf
1241 1261
     sed -i "s|#ssl_protocols =.*|ssl_protocols = '$SSL_PROTOCOLS'|g" /etc/dovecot/conf.d/10-ssl.conf