Weiterleitung HTTP zu HTTPS

  • Servus zusammen,


    ich hoffe jemand ist vor den Weihnachtsferien noch aktiv bzw. kann mir helfen :P


    Auf meinem PI läuft ein Webserver, welcher mit Apache2 betrieben wird, dessen URL bei strato hinterlegt ist. Ich nenne sie mal: http://www.meineurl.de

    Auf no-ip.com habe ich eine DDNS eingerichtet. Diese nenn ich mal: raspi.servebeer.com


    Der Webserver reagiert sowohl auf http://www.meineurl.de als auch auf http://www.raspi.servebeer.com


    So eine ungesicherte Website ist natürlich nicht der burner, weshalb ich mich nach einem ssl zertifkat umgeschaut habe

    und bin bei letsencrypt fündig geworden. Dieses habe ich auch installiert und über https wird mir die Homepage über beide

    URLs angezeigt. Folglich stimmt die Portweiterleitung und das Zertifikat ist erfolgreich installiert. Hurra.


    Hier is der Quellcode zur Datei: /etc/apache2/sites-enabled/000-default.cont

    <VirtualHost *:80>

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]

    </IfModule>

    RewriteCond %{SERVER_NAME} =www.raspi.servebeer.com

    </VirtualHost>


    Hier is der Quellcode zur Datei: /etc/apache2/sites-enabled/default-ssl.conf


    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/raspi.servebeer.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/raspi.servebeer.com/privkey.pem
    <FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
    </Directory>
    </VirtualHost>
    </IfModule>




    Nun zu meiner eigentlichen Frage: Kann ich meinen PI bzw. die Einstellungen der FIles, die für das aufrufen des SSL Zertifikats

    zuständig sind, so konfigurieren, dass ich eine Weiterleitung bei einer HTTP-Anfrage auf meinen Webserver diese automatisch an

    HTTPS weiterleiten kann? Wenn ja wie mache ich das?


    Vielen Dank schonmal für eure Antworten!

    Edited 5 times, last by Zache ().

  • Wenn ich den Code so in /etc/apache2/sites-enabled/000-default.conf kopiere und den Webserver wieder starte bekomm ich folgende Fehlermeldungen:


    Dez 19 14:22:19 raspberrypi apachectl[1767]: AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/000-default.conf
    Dez 19 14:22:19 raspberrypi apachectl[1767]: AH00112: Warning: DocumentRoot [/usr/local/apache2/htdocs] does not exist
    Dez 19 14:22:19 raspberrypi apachectl[1767]: AH00112: Warning: DocumentRoot [/usr/local/apache2/htdocs] does not exist

    Edited 2 times, last by Zache ().

  • Den einzigen Unterschied, den ich sehe ist, ass es n anderes Verzeichnis und dieses in Klammern steht. Mehr auch nicht :D

    So ich hab das DocumentRoot geändert, jedoch bekomme ich immer noch die selbe Fehlermeldung.

    Warum ist das so?!


    Dez 20 07:07:01 raspberrypi apachectl[14914]: AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/000-default.conf:1
    Dez 20 07:07:01 raspberrypi apachectl[14914]: AH00112: Warning: DocumentRoot [/usr/local/apache2/htdocs] does not exist
    Dez 20 07:07:01 raspberrypi apachectl[14914]: Action 'start' failed.
    Dez 20 07:07:01 raspberrypi apachectl[14914]: The Apache error log may have more information.
    Dez 20 07:07:01 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited status=1
    Dez 20 07:07:01 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.



    Meine zwei Files, unter sites-enabled wie sites-available, sehen jetzt wie folgt aus. Hab ich in dieses vielleicht noch einen Fehler drin?


    /etc/apache2/sites-enabled/000-default.conf




    NameVirtualHost *:80
    <VirtualHost *:80>
    ServerName http://www.meineurl.de
    Redirect / https://meineurl.de
    </VirtualHost>

    <VirtualHost _default_:443>
    ServerName meineurl.de
    DocumentRoot /var/www/html
    SSLEngine On

    SSLCertificateFile /etc/letsencrypt/live/awvraspi.servebeer.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/awvraspi.servebeer.com/privkey.pem
    </VirtualHost>



    /etc/apache2/sites-enabled/default-ssl.conf



    <IfModule mod_ssl.c>
    <VirtualHost *:443>
    ServerName http://www.awvraspi.servebeer.com
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/awvraspi.servebeer.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/awvraspi.servebeer.com/privkey.pem
    <FilesMatch "\.(html|cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
    SSLOptions +StdEnvVars
    </Directory>
    </VirtualHost>
    </IfModule>


    Ich verzweifel wirklich, bitte deshalb um eure Hilfe das Problem schnellstmöglich gelöst zu bekommen....


    Edit: Nochmal ne dumme Frage: Muss ich bei meinem DynDNS-Host und/oder meinem URL-Anbieter auch SSL aktivieren oder geschieht die Weiterleitung von http zu https ausschließlich auf meinem PI?




    Edited 3 times, last by Zache ().

  • Meine /sites-available/default.conf

    Meine /sites-available/ssl.conf

  • Mit "dem selben Error" meinte ich das Bild, welches im Anhang des postes zu finden ist, wleches sich auf mein Start-Post bezog.

    Die Seite ist immer noch nur über https://www.meineurl.de oder https://www.raspi.servebeer.com aufrufbar, wenn ich eine http-Verbindung

    möchte, kommt diese Meldung. Ich führe das mit Microsoft Edge aus. Habe das auch über mein Handy (Chrome) probiert - das gleiche Spiel.....

  • Am besten einen virtuellen Host einrichten und dann das lets encrypt Script laufen lassen.

    Das fragt dann ob man eine Umleitung will.


    Bei einem Ubuntu-Server steht dann so was drin (Apache, vor dem Ende von VirtualHost):


    Code
    1. RewriteEngine on
    2. RewriteCond %{SERVER_NAME} = machine.domain.ch
    3. RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
  • RewriteEngine on RewriteCond %{SERVER_NAME} = machine.domain.ch RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]


    Hatten wir schon in #6:

    Quote

    RewriteEngine on

    RewriteCond %{SERVER_NAME} =meine.seite.de

    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    Deshalb wirds jetzt vllt. auch nichts mehr mit Port 80.

  • Deine Fehlermeldung kommt von irgend so einem Symantec Security Schlangenöl, welches dir den Zugang aus obskuren Gründen verwehrt.

    Wenn du das nicht selbst einsetzt, wird es wohl dein ISP tun (was ich bezweifle). Da hilft dir keine Apache-Config.

    "Wenn du nichts zu sagen hast, sag einfach nichts!"

  • Die Fehlermeldung bekomm ich auf der Arbeit, wenn ich es über mein Handy aufruf (Chrome) bekomme ich eine Seite mit nem traurigen smiley ohne erklärung warum..

    Edited once, last by Zache ().