|  | @@ -319,18 +319,19 @@ function update_prosody_modules {
 | 
	
		
			
			| 319 | 319 |              curr_hash=$(sha256sum $INSTALL_DIR/$prosody_modules_filename | awk -F ' ' '{print $1}')
 | 
	
		
			
			| 320 | 320 |              if [[ "$curr_hash" != "$prosody_modules_hash" ]]; then
 | 
	
		
			
			| 321 | 321 |                  echo $'Prosody modules hash does not match'
 | 
	
		
			
			|  | 322 | +                exit 83562
 | 
	
		
			
			| 322 | 323 |              else
 | 
	
		
			
			| 323 | 324 |                  # Extract the modules
 | 
	
		
			
			| 324 |  | -                if [ -d prosody-modules ]; then
 | 
	
		
			
			| 325 |  | -                    rm -rf prosody-modules
 | 
	
		
			
			|  | 325 | +                if [ -d $INSTALL_DIR/prosody-modules ]; then
 | 
	
		
			
			|  | 326 | +                    rm -rf $INSTALL_DIR/prosody-modules
 | 
	
		
			
			| 326 | 327 |                  fi
 | 
	
		
			
			| 327 | 328 |                  tar -xzvf $prosody_modules_filename
 | 
	
		
			
			| 328 |  | -                if [ -d prosody-modules ]; then
 | 
	
		
			
			|  | 329 | +                if [ -d $INSTALL_DIR/prosody-modules ]; then
 | 
	
		
			
			| 329 | 330 |                      systemctl stop prosody
 | 
	
		
			
			| 330 | 331 |                      if [ ! -d /var/lib/prosody/prosody-modules ]; then
 | 
	
		
			
			| 331 |  | -                        mkdir /var/lib/prosody/prosody-modules
 | 
	
		
			
			|  | 332 | +                        mkdir -p /var/lib/prosody/prosody-modules
 | 
	
		
			
			| 332 | 333 |                      fi
 | 
	
		
			
			| 333 |  | -                    cp -r prosody-modules/* /var/lib/prosody/prosody-modules
 | 
	
		
			
			|  | 334 | +                    cp -r $INSTALL_DIR/prosody-modules/* /var/lib/prosody/prosody-modules/
 | 
	
		
			
			| 334 | 335 |                      chown -R prosody:prosody /var/lib/prosody/prosody-modules
 | 
	
		
			
			| 335 | 336 |                      systemctl start prosody
 | 
	
		
			
			| 336 | 337 |                  fi
 | 
	
	
		
			
			|  | @@ -648,7 +649,11 @@ function xmpp_create_config {
 | 
	
		
			
			| 648 | 649 |      echo "    curve = $XMPP_ECC_CURVE;" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 649 | 650 |      echo "    ciphers = $XMPP_CIPHERS;" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 650 | 651 |      echo '    options = {"no_sslv2", "no_sslv3" };' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 651 |  | -    echo "    dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 652 | +    if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
 | 
	
		
			
			|  | 653 | +        echo "    dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 654 | +    else
 | 
	
		
			
			|  | 655 | +        echo "    dhparam = \"/etc/ssl/certs/xmpp.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 656 | +    fi
 | 
	
		
			
			| 652 | 657 |      echo "}" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 653 | 658 |      echo '' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 654 | 659 |      echo 'ssl = {' >> /etc/prosody/prosody.cfg.lua
 | 
	
	
		
			
			|  | @@ -663,7 +668,11 @@ function xmpp_create_config {
 | 
	
		
			
			| 663 | 668 |      echo '    depth = "2";' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 664 | 669 |      echo "    ciphers = $XMPP_CIPHERS;" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 665 | 670 |      echo '    options = {"no_sslv2", "no_sslv3" };' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 666 |  | -    echo "    dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 671 | +    if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
 | 
	
		
			
			|  | 672 | +        echo "    dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 673 | +    else
 | 
	
		
			
			|  | 674 | +        echo "    dhparam = \"/etc/ssl/certs/xmpp.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 675 | +    fi
 | 
	
		
			
			| 667 | 676 |      echo '}' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 668 | 677 |      echo '' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 669 | 678 |      echo 'c2s_require_encryption = true' >> /etc/prosody/prosody.cfg.lua
 | 
	
	
		
			
			|  | @@ -688,17 +697,22 @@ function xmpp_create_config {
 | 
	
		
			
			| 688 | 697 |          echo "VirtualHost \"${DEFAULT_DOMAIN_NAME}\"" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 689 | 698 |      fi
 | 
	
		
			
			| 690 | 699 |      echo '    ssl = {' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 691 |  | -    echo "        key = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.key\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 692 | 700 |      if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
 | 
	
		
			
			| 693 | 701 |          echo "        certificate = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 702 | +        echo "        key = \"/etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 694 | 703 |      else
 | 
	
		
			
			| 695 | 704 |          echo "        certificate = \"/etc/ssl/certs/xmpp.crt\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 705 | +        echo "        key = \"/etc/ssl/private/xmpp.key\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 696 | 706 |      fi
 | 
	
		
			
			| 697 | 707 |      echo "        curve = $XMPP_ECC_CURVE;" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 698 | 708 |      echo '        depth = "2";' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 699 | 709 |      echo "        ciphers = $XMPP_CIPHERS;" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 700 | 710 |      echo '        options = {"no_sslv2", "no_sslv3" };' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 701 |  | -    echo "        dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 711 | +    if [ -f /etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem ]; then
 | 
	
		
			
			|  | 712 | +        echo "        dhparam = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 713 | +    else
 | 
	
		
			
			|  | 714 | +        echo "        dhparam = \"/etc/ssl/certs/xmpp.dhparam\";" >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			|  | 715 | +    fi
 | 
	
		
			
			| 702 | 716 |      echo '    }' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 703 | 717 |      echo '' >> /etc/prosody/prosody.cfg.lua
 | 
	
		
			
			| 704 | 718 |      echo 'Include "conf.d/*.cfg.lua"' >> /etc/prosody/prosody.cfg.lua
 | 
	
	
		
			
			|  | @@ -828,6 +842,8 @@ function install_xmpp {
 | 
	
		
			
			| 828 | 842 |                  echo $'Failed to create xmpp private certificate'
 | 
	
		
			
			| 829 | 843 |                  exit 36829
 | 
	
		
			
			| 830 | 844 |              fi
 | 
	
		
			
			|  | 845 | +            chmod g=rX /etc/ssl/private/xmpp.key
 | 
	
		
			
			|  | 846 | +            chmod g=rX /etc/ssl/certs/xmpp.*
 | 
	
		
			
			| 831 | 847 |          fi
 | 
	
		
			
			| 832 | 848 |      fi
 | 
	
		
			
			| 833 | 849 |  
 | 
	
	
		
			
			|  | @@ -849,7 +865,7 @@ function install_xmpp {
 | 
	
		
			
			| 849 | 865 |          sed -i "s|key =.*|key = \"/etc/ssl/private/${DEFAULT_DOMAIN_NAME}.key\";|g" /etc/prosody/conf.avail/xmpp.cfg.lua
 | 
	
		
			
			| 850 | 866 |          sed -i "s|certificate =.*|certificate = \"/etc/ssl/certs/${DEFAULT_DOMAIN_NAME}.pem\";|g" /etc/prosody/conf.avail/xmpp.cfg.lua
 | 
	
		
			
			| 851 | 867 |      else
 | 
	
		
			
			| 852 |  | -        sed -i "s|key =.*|key = \"/etc/ssl/privates/xmpp.key\";|g" /etc/prosody/conf.avail/xmpp.cfg.lua
 | 
	
		
			
			|  | 868 | +        sed -i "s|key =.*|key = \"/etc/ssl/private/xmpp.key\";|g" /etc/prosody/conf.avail/xmpp.cfg.lua
 | 
	
		
			
			| 853 | 869 |          sed -i "s|certificate =.*|certificate = \"/etc/ssl/certs/xmpp.crt\";|g" /etc/prosody/conf.avail/xmpp.cfg.lua
 | 
	
		
			
			| 854 | 870 |      fi
 | 
	
		
			
			| 855 | 871 |      if ! grep -q "xmpp.dhparam" /etc/prosody/conf.avail/xmpp.cfg.lua; then
 | 
	
	
		
			
			|  | @@ -946,6 +962,7 @@ function install_xmpp {
 | 
	
		
			
			| 946 | 962 |      chown -R prosody /var/lib/prosody
 | 
	
		
			
			| 947 | 963 |      chown -R prosody /usr/lib/prosody
 | 
	
		
			
			| 948 | 964 |      chmod -R 700 /etc/prosody/conf.d
 | 
	
		
			
			|  | 965 | +    usermod -a -G www-data prosody
 | 
	
		
			
			| 949 | 966 |  
 | 
	
		
			
			| 950 | 967 |      if [ -d /etc/letsencrypt ]; then
 | 
	
		
			
			| 951 | 968 |          usermod -a -G ssl-cert prosody
 |