SSL-Verschl├╝sselung von eigenem Zertifikat auf Let's Encrypt umstellen

Hallo zusammen,

ich bin noch etwas neu, deswegen verzeiht, wenn ich euch zu wenig Informationen gebe.

Ich habe mir vor einiger Zeit einem YouTube-Tutorial folgend den Traum einer eigenen Nextcloud verwirklicht.^^
Kurz zusammengefasst: der apache2 Server und die Nextcloud laufen auf einem Raspberry Pi 4 Modell B; 4 GB, ARM-Cortex-A72 4 x, 1,50 GHz, 4 GB RAM. Das Datenverzeichnis liegt auf einer externen Festplatte (HDD), die knapp 500GB fasst und mit USB3.0 am Pi h├Ąngt. Die Nextcloud habe l├Ąuft sehr fl├╝ssig und einwandfrei - da hab ich keine Sorgen.

Hier noch ein paar Daten zum Setup:
Nextcloud 21.0.1
Apache/2.4.38
PHP 7.3.27-1
10.3.27-MariaDB-0+deb10u1
Raspbian GNU/Linux 10 (buster)
Kernel 5.10.17-v7l+

Ich habe obiger Anleitung folgend ein eigenes SSL-Zertifikat ausgestellt, jedoch erh├Ąlt man dann immer diese gruselige Sicherheitswarnung, die f├╝r mich nach einmal akzeptieren nicht st├Ârend ist, aber wenn ich Dateien teile, dann will ich nicht, dass unerfahrere Nutzer dar├╝ber verwundert sind und ich jedes Mal darauf hinweisen muss. Deswegen m├Âchte ich auf ein LetÔÇÖs Encrypt Zertifikat umstellen.

Daher habe ich nun die Anleitung von Certbot befolgt und snapd installiert. Jedoch erhalte ich mit sudo certbot certonly --apache folgende Fehlermeldung:

Certbot failed to authenticate some domains (authenticator: apache). The Certificate Authority reported these problems:
  Domain: kaninchenbau.....org
  Type:   connection
  Detail: Fetching http://kaninchenbau.....org/.well-known/acme-challenge/LHIhFaPdzFz6BBPSkT0T7fSAsH3DxuoARFeCD2TMfx0: Error getting validation data

Hint: The Certificate Authority failed to verify the temporary Apache configuration changes made by Certbot. Ensure that the listed domains point to this Apache server and that it is accessible from the internet.

Some challenges have failed.

Ich habe daraufhin versucht das bisherige Zertifikat zu entfernen, und auf http umzuschalten, aber da bleiben alle Versuche erfolglos:

<?php                                                             
$CONFIG = array (                                                 
  'instanceid' => '...',                                 
  'passwordsalt' => '...',             
  'secret' => '...', 
  'trusted_domains' =>                                            
  array (                                                         
    0 => '...',                                         
    1 => 'kaninchenbau.....org',                                
  ),                                                              
  'datadirectory' => '/media/festplatte/nextcloud',               
  'dbtype' => 'mysql',                                            
  'version' => '21.0.7.0',                                        
  'overwrite.cli.url' => 'https://kaninchenbau.....org/',       
  'overwritehost' => 'kaninchenbau.....org',                                               
  ...

Hier habe ich die Zeile overwrite.cli.url auskommentiert. Au├čerdem habe ich in /etc/apache2/sites-available/000-default.conf von

<VirtualHost *:80>                                                                              
        DocumentRoot /var/www/nextcloud                                                         
                                                                                                
        ErrorLog ${APACHE_LOG_DIR}/error.log                                                    
        CustomLog ${APACHE_LOG_DIR}/access.log combined                                         
                                                                                                
        <IfModule mod_rewrite.c>                                                                
                RewriteEngine On                                                                
                RewriteCond %{HTTPS} off                                                        
                RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]                   
        </IfModule>                                                                             
</VirtualHost>                                                                                  
                                                                                                
<IfModule mod_ssl.c>                                                                            
        <VirtualHost *:443>                                                                     
                DocumentRoot /var/www/nextcloud                                                 
                SSLEngine on                                                                    
                SSLCertificateFile /var/cert/server.crt                                         
                SSLCertificateChainFile /var/cert/server.csr                                    
                SSLCertificateKeyFile /var/cert/server.key                                      
                <IfModule mod_headers.c>                                                        
                        Header always set Strict-Transport-Security "max-age=15768000; preload" 
                        Redirect 301 /.well-known/carddav /remote.php/dav                       
                        Redirect 301 /.well-known/caldav /remote.php/dav                        
                </IfModule>                                                                     
        </VirtualHost>
</IfModule>

zu dem ge├Ąndert:

<VirtualHost *:80>                                                                             
        DocumentRoot /var/www/nextcloud
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>                                                                                  

<IfModule mod_ssl.c>
        <VirtualHost *:443>  
                DocumentRoot /var/www/nextcloud
        </VirtualHost>
</IfModule>

Auch ein a2dismod ssl hat nichts gebracht.

Achso und die Adresse ist eine DynDNS von noIP, falls das irgendetwas ausmachen sollte.

Kann mir hier jemand weiterhelfen? Ich w├Ąre sehr dankbar dar├╝ber :slight_smile:
Liebe Gr├╝├če!

Keine Ahnung wof├╝r das brauchst. Mach aber wenn m├Âglich einen gro├čen Bogen um Snap.

Damit Lets Encrypt das Zertifikat ausstellen kannst, muss aus dem Internet (also von Lets Encrypt) der Zugriff ├╝ber Port 80 und Port 443 erreichbar sein. Es k├Ânnte sein, dass das nicht der Fall ist. Falls du die Ports 80 und 443 weitergeleitet hast und es sonst funktioniert hat, k├Ânnte es an deinem Webserver liegen. Vielleicht solltest du lieber alles neu machen. Auch kannst du vielleicht mal Teile dieser Anleitung verwenden.

1 Like

Das stand so in der Anleitung von Certbot. Wieso sollte man einen gro├čen Bogen um Snap machen?

Das habe ich mir in der Tat schon gedacht, aber meine Konfiguration nicht so ├Ąndern k├Ânnen, dass es funktionierte. Mithilfe deiner verlinkten Anleitung habe ich dann ein alternatives config-File erstellt (das, was in der Anleitung vorgeschlagen war) und in der FritzBox Port 80 freigegeben (das habe ich glaube ich auch etwas sp├Ąt bemerkt). Dann den Certbot seine Arbeit verrichten lassen wie in der Anleitung. Zum Schluss wieder zu meinem alten config-File gewechselt und in der FritzBox Port 80 geschlossen - funktioniert nun alles. :smiley:
Vielen Dank f├╝r die Hilfe!

Ich bin mir nicht sicher, ob es dann beim Update der Zertifikate in einigen Monaten Probleme gibt. Zudem ist Port 80 kein Sicherheitsrisiko, sofern sowieso mehr oder weniger alles auf SSL umgeleitet wird. TLS/SSL ist eine reine Transportverschl├╝sslung. Wenn jemand aus dem Internet deine Nextcloud hackt, dann wohl nicht, da der Webserver mit oder ohne SSL lief.

Snap ist die M├Âglichkeit mit ein paar Klicks eine Nextcloud ohne eigenes Wissen hochzuziehen. Vor einiger Zeit sollte ich mal das Zertifikat einer Snap-Installation bei einem Bekannten umstellen. Scheinbar sieht es Snap nicht vorher, dass man in der Migrationsphase zwei SSL-Zertifikate verwenden kann. Selbst hier im Forum hatte niemand eine L├Âsung f├╝r dieses Problem. Am Ende haben wir den alten schlechten Namen beibehalten, da sonst alle Links falsch oder mindestens ohne g├╝ltigem Zertifikat gewesen w├Ąren.