Immer auf WWW und HTTPS umleiten

M

mw197

Gast
Hallo Leute,

ich habe nun ein SSL-Zertifikat auf folgende Domain: www.meine-domain.de

Ich möchte jetzt alle Anfragen auf HTTPS und WWW am Anfang umleiten lassen. Ich habe das schon versucht und klappt soweit auch, allerdings nicht bei einem Szenario:

Code:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)$ https://www.meine-domain.de/$1 [R=301,L]
RewriteRule ^feedback$ index.php?page=feedback
RewriteRule ^kontakt$ index.php?page=contact
RewriteRule ^([0-9]+)$ index.php?p=$1
RewriteRule ^([a-z0-9-]+)$ index.php?page=content&contentID=$1

Wenn ich jetzt meine-Domain.de im Browser eingebe, leitet er mich automatisch auf https://www.meine-domain.de/ um. Korrekt!

Wenn ich jetzt www.meine-Domain.de im Browser eingebe, leitet er mich automatisch auf https://www.meine-domain.de/ um. Korrekt!

Rufe ich allerdings https://meine-domain.de (ohne www.) auf, leitet er mich nicht automatisch auf https://www.meine-domain.de/ um.
Es kommt immer erst die Fehlermeldung, dass das Zertifikat nicht besteht. Das Zertifikat besteht nämlich nur bei WWW. Kann ich da was dran drehen?
 
ich würde das mal auf folgende Regel zurückführen:
Code:
RewriteCond %{SERVER_PORT} !^443$

hier sagst du ja, wenn Port !=443 dann ... Bei HTTPS://meine-domain.de gibst du ja direkt den Port 443 mit. Daher ist die Bedingung erfüllt und die weiteren Regeln nicht mehr relevant. Versuch mal was passiert, wenn du diese Regel entfernst. Denn mit folgender Regel:

Code:
RewriteRule ^(.*)$ https://www.meine-domain.de/$1 [R=301,L]

schreibst du die URL ja sowieso immer auf https://www.... um, also ists ja auch egal über welchen Port die initiale Anfrage erfolgt ist.
 
Danke für deinen Tipp. Habe die Zeile mal entfernt und probiert. Vorher natürlich Cookie, Cache und so geleert. Leider gleiches Ergebnis.

Kommt immer erst die Meldung:
meine-domain.de verwendet ein ungültiges Sicherheitszertifikat.

Das Zertifikat gilt nur für www.meine-domain.de.

(Fehlercode: ssl_error_bad_cert_domain)

Dann kann ich das Zertifikat manuell bestätigen und danach greift dann die htaccess-Datei ein und leitet um. Das kann doch nicht sein?!
 
Hast du eine Möglichkeit, direkt die Nginx oder Apache Config anzupassen? Ich mache bei mir was ähnliches, jedoch schon direkt im WebServer und nicht erst über eine HTACCESS.

Code:
<VirtualHost *:80>
   Redirect permanent / https://www.meine-domain.de
</VirtualHost>

<VirtualHost *:443>
    ServerName      www.meine-domain.de

    SSLEngine               On
    SSLCertificateFile    /etc/letsencrypt/live/www.meine-domain.de/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.meine-domain.de/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.meine-domain.de/chain.pem
</VirtualHost>
 
leider nein, ist nur ein Webhosting-Angebot, wo ich Zertifikate von Let's Encrypt über die Admin-Oberfläche einbinden kann...
 
Unter WoSign gibt es auch kostenlose SSL Zertifikate fuer domain.tld und www.domain.tld inkl. 3 weiterer Subdomains.
 
soares schrieb:
Liegt am Zertifikat. Du musst dieses sowohl für www.mein-domain.de, als auch meine-domain.de ausstellen! Bei Let's Encrypt also zweimal den -d Parameter setzen.
Ergänzung ()

Falls Du zufällig bei all-inkl sein solltest: https://notizblog.tripax.de/2015/12/zertifikat-von-letsencrypt-automatisch-erneuern/

Ja, bei ALL-INKL.COM bin ich. Hatte das schon probiert ein Zertifikat für beide auszustellen aber das funktioniert nicht. Da lade ich dann die Datei auf den Server der mir in der Konsole angezeigt wird und wenn ich dann fortfahre mit "ENTER" springt letsencrypt wieder zu dem Schritt davor... Dann bin ich quasi in einer Endlosschleife...
 
Genau das "Problem" hatte ich auch. Bis ich kapiert habe, dass für jede Domain eine Datei für die Verifizierung hochgeladen werden muss! Lies Dir die Meldung genau durch. Da werden zwei verschiedene Dateien mit unterschiedlichen Inhalten gefordert!

Mir war das aber zu umständlich. Ich nutze deswegen jetzt das Webroot-Plugin und binde den lokalen Ordner mittels CurlFtpFS ein. Das lässt sich ganz leicht automatisieren und ich muss mich um nichts weiter kümmern (sollte sich nicht etwas beim Let's Encrypt Client ändern).

Im von mir verlinkten Blogpost findet sich auch der Download-Link zu einem Skript, das die Aktivierung mittels KAS übernimmt.
 
Zuletzt bearbeitet: (Typo)
soares schrieb:
Genau das "Problem" hatte ich auch. Bis ich kapiert habe, dass für jede Domain eine Datei für die Verifizierung hochgeladen werden muss! Lies Dir die Meldung genau durch. Da werden zwei verschiedene Dateien mit unterschiedlichen Inhalten gefordert!

Mir war das aber zu umständlich. Ich nutze deswegen jetzt das Webroot-Plugin und binde den lokalen Ordner mittels CurlFtpFS ein. Das lässt sich ganz leicht automatisieren und ich muss mich um nichts weiter kümmern (sollte sich nicht etwas beim Let's Encrypt Client ändern).

Im von mir verlinkten Blogpost findet sich auch der Download-Link zu einem Skript, das die Aktivierung mittels KAS übernimmt.

AHHHHHHHHHHHHHHHHHH Du hast Recht, genau das war das Problem :D :D :D

Habe mir jetzt ein Zertifikat für WWW und einmal für ohne ausgestellt und siehe da => KLAPPT!

Herzlichen Dank für den Hinweis, da muss man erst einmal drauf kommen. Ist mir echt nie aufgefallen :D

Danke für eure Hilfe!
 
Zurück
Oben