NC unter Ubuntu Server nur lokal mit https nutzen

Hallo,
ich möchte einen minimalen Nextcloud Server einrichten, bzw. habe dies schon mal getan.
OS ist Ubuntu 22.04 Server auf einem Futro900 Thin Client.
Dafür habe ich Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-76-generic x86_64) minimiert installiert und bediene das über SSH.
Da die Anleitung ( Example installation on Ubuntu 20.04 LTS) nicht ganz aktuell ist habe ich hier nach installiert: https://www.veuhoff.net/nextcloud-installation-fuer-linux-ubuntu-22-04-komplettanleitung/
Da ich das ganze nur lokal im Heimnetz nutzen möchte habe ich den Teil mit dem letsencrypt Zertifikat erstmal weggelassen.
Leider macht NC mir da einen Strich durch die Rechnung, da die Links für Caldav und Carddav nur unter https erzeugt werden.
Ich habe dann mit openssl ein Zertifikat erzeugt und in default-ssl.conf hinterlegt aber irgendwie hakt alles und ich lande immer wieder auf http, obwohl ich meine https eingestellt zu haben

Frage: Hat jemand dafür mal eine funktionierende Anleitung oder kann ich die o.g. Beispielanleitung für 20.04.LTS nehmen und nur die php Version anpassen?

Frage: Was müsste in .htaccess, default-ssl.conf und nextcloud.conf stehen damit ich über https statt http zugreifen kann.

Mfg
Axel

Hi hab mal schnell eine Anleitung anhand deines Links zusammengestellt, und denke das sollte so funktionieren. In dieser Anleitung gehe ich davon aus, dass du Nextcloud auf einem frischen System und unveränderten System installiert hast, und dich exakt an die verlinkte Anleitung gehalten hast. Wenn du Dinge anders benamst, umkonfiguriert oder weitere Webdienste / VirtualHosts auf dem Server installiert hast, musst du das bei den folgenden Befehlen und configs natürlich berücksichtigen bzw. ist evtl. weitere Konfigurationsarbeit erforderlich.

Wechsle in eine Root Shell:

sudo -s

Aktiviere das https Modul für Apache:

a2enmod ssl

Erstelle einen neuen Virtual Host:

nano /etc/apache2/sites-available/nextcloud-ssl.conf

folgendes hinzufügen:

<IfModule mod_ssl.c>
<VirtualHost *:443>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/nextcloud
     ServerName example.com

     ErrorLog /var/log/apache2/nextcloud-error.log
     CustomLog /var/log/apache2/nextcloud-access.log combined

     <Directory /var/www/html/nextcloud/>
     Options +FollowSymlinks
     AllowOverride All
     Require all granted
     SetEnv HOME /var/www/html/nextcloud
     SetEnv HTTP_HOME /var/www/html/nextcloud
      <IfModule mod_dav.c>
        Dav off
      </IfModule>
     </Directory>
    
     SSLEngine on
     SSLProtocol -all +TLSv1.3 +TLSv1.2
     SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
     SSLHonorCipherOrder off
     SSLSessionTickets off

     SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
     SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
</IfModule>

Anmerkung: Anstatt den “Snakeoil” Zertifikaten, kannst du auch diejenigen angeben, die du selbet erstellt hast.

Die Datei speichern und nano verlassen mit STRG-X und Y.

Den neuen Virtual Host aktivieren und die default-ssl.conf deaktivieren:

a2ensite nextcloud-ssl.conf && a2dissite default-ssl.conf 

Backup des bestehnden VirtualHosts erstellen…

cp /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-available/nextcloud.conf.backup

…und eine Weiterleitung auf https hinzufügen:

Mit nano öffnen…

nano /etc/apache2/sites-available/nextcloud.conf

und folgendermassen abändern:

<VirtualHost *:443>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/nextcloud
     ServerName example.com
     ErrorLog /var/log/apache2/nextcloud-error.log
     CustomLog /var/log/apache2/nextcloud-access.log combined

     RewriteEngine On
     RewriteCond %{REQUEST_URI} !^/\.well\-known/acme\-challenge/
     RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

folgende Zeile zur config.php der Nextcloud hinzufügen:

overwriteprotocol' => 'https',

Apache neustarten:

systemctl restart apache2

Ich hoffe ich habe nichts vergessen, und es hilft dir weiter. :slight_smile:

1 Like

Hallo,
super danke!
Das werde ich gleich mal umsetzen. Ich werde mir dafür ein lokales Zertifikat mit openssl erzeugen.

Mfg
Axel

PS: Ich habe den Server eben mal neu aufgesetzt, da war alles komplett durcheinander nachdem ich versucht hatte die “Sicherheitsmeldungen” von Nextcloud die nach Update auf die aktuelle Version aufgelaufen waren, umzusetzen.

Hallo, nochmal danke!
Hat alles geklappt.
Mfg
Axel

1 Like