it-swarm.com.de

Ist es schlecht, http zu https umzuleiten?

Ich habe gerade ein SSL-Zertifikat auf meinem Server installiert.

Anschließend wurde eine Umleitung für den gesamten Datenverkehr in meiner Domain auf Port 80 eingerichtet, um ihn auf Port 443 umzuleiten.

Mit anderen Worten, mein gesamter http://example.com Verkehr wird jetzt auf die entsprechende https://example.com Version der Seite umgeleitet.

Die Umleitung erfolgt in meiner Apache Virtual Hosts-Datei mit so etwas ...

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_Host}/$1 [NC,R,L] 

Meine Frage ist, gibt es irgendwelche Nachteile bei der Verwendung von SSL?

Da dies keine 301-Weiterleitung ist, verliere ich dann den Link-Saft/das Ranking in Suchmaschinen, wenn ich zu https wechsle?

Ich schätze die Hilfe. Ich wollte schon immer SSL auf einem Server einrichten, nur um es zu üben, und ich habe mich schließlich entschlossen, es heute Abend zu tun. Bisher scheint es gut zu funktionieren, aber ich bin mir nicht sicher, ob es eine gute Idee ist, dies auf jeder Seite zu verwenden. Meine Website ist kein E-Commerce und verarbeitet keine sensiblen Daten. Es ist hauptsächlich für das Aussehen und den Nervenkitzel, es zum Lernen zu installieren.


AKTUALISIERTE AUSGABE

Seltsamerweise erstellt Bing diesen Screenshot von meiner Website, da überall HTTPS verwendet wird ...

enter image description here

249
JasonDavis

Das Flag [R] Ist eine 302 Umleitung (Moved Temporarily). Wenn Sie wirklich möchten, dass Benutzer die HTTPS-Version Ihrer Site verwenden (Hinweis: Sie tun dies), sollten Sie [R=301] Für eine permanente Weiterleitung verwenden:

RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_Host}/$1 [NC,R=301,L] 

Ein 301 Hält alle Ihre Google-Fu- und hart verdienten Pageranks intakt . Stellen Sie sicher, dass mod_rewrite Aktiviert ist:

a2enmod rewrite

Um Ihre genaue Frage zu beantworten:

Ist es schlecht, http zu https umzuleiten?

Auf keinen Fall. Es ist sehr gut.

318
Mark Henderson

Obwohl ich die Idee von SSL-Sites nur unterstütze, würde ich sagen, dass ein Nachteil der Overhead ist, der von Ihrem Site-Design abhängt. Ich meine zum Beispiel, wenn Sie viele einzelne Bilder in IMG-Tags bereitstellen, kann dies dazu führen, dass Ihre Website viel langsamer läuft. Ich würde jedem empfehlen, der nur SSL-Server verwendet, um sicherzustellen, dass sie mit den folgenden Funktionen arbeiten.

  1. Überprüfen Sie die gesamte Site auf interne Links und stellen Sie sicher, dass alle HTTPS verwenden, wenn Sie Ihren eigenen Domainnamen in Links angeben, damit Sie keine eigenen Weiterleitungen verursachen.
  2. Aktualisieren Sie Ihr <meta property="og:url" zur Verwendung der https-Version Ihrer Domain.
  3. Wenn du benutzt <base href= erneut aktualisieren, um HTTPS zu verwenden.
  4. Installieren Sie SPDY-Protokoll, wenn möglich
  5. Stellen Sie sicher, dass Sie nach Möglichkeit CSS-Image-Sprites verwenden, um die Anzahl der Anforderungen zu verringern.
  6. Aktualisieren Sie Ihre Sitemaps, um den https-Status anzuzeigen, damit Spinnen diese Änderung im Laufe der Zeit erfahren.
  7. Ändern Sie Suchmaschineneinstellungen wie Google Webmaster-Tools, um HTTPS zu bevorzugen
  8. Laden Sie nach Möglichkeit alle taktischen Medien auf HTTPS-CDN-Server.

Wenn das oben Genannte angesprochen wird, bezweifle ich, dass Sie viele Probleme haben werden.

49
TheBritishGeek

Wenn Sie https eingerichtet haben, sollten Sie es überall auf der Site verwenden. Sie vermeiden das Risiko von Problemen mit gemischten Inhalten. Wenn Sie über die erforderlichen Tools verfügen, können Sie die gesamte Website sicher machen.

In Bezug auf die Umleitung von http zu https ist die Antwort nicht so einfach.

Durch die Umleitung wird es für Ihre Benutzer viel einfacher. Sie geben einfach whateversite.com ein und werden zu https umgeleitet.

Aber. Was ist, wenn sich der Benutzer manchmal in einem unsicheren Netzwerk befindet (oder sich in der Nähe von Troy Hunt und seiner Ananas befindet )? Dann fordert der Benutzer http://whateversite.com aus alter Gewohnheit an. Das ist http. Das kann kompromittiert werden. Die Weiterleitung könnte auf https://whateversite.com.some.infrastructure.long.strange.url.hacker.org verweisen. Für einen normalen Benutzer würde es ziemlich legitim aussehen. Aber der Verkehr kann abgefangen werden.

Wir haben hier also zwei konkurrierende Anforderungen: Benutzerfreundlich und sicher zu sein. Glücklicherweise gibt es ein Mittel namens HSTS-Header . Damit können Sie die Umleitung aktivieren. Der Browser wechselt zur sicheren Site, merkt sich dies aber dank des HSTS-Headers auch. Wenn der Benutzer whateversite.com eingibt, das sich in diesem unsicheren Netzwerk befindet, wechselt der Browser sofort zu https, ohne durch die Umleitung über http zu springen. Wenn Sie nicht mit sehr sensiblen Daten umgehen, ist dies für die meisten Websites ein fairer Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit. (Als ich kürzlich eine Anwendung für die Bearbeitung von Krankenakten eingerichtet habe, habe ich alle https ohne Weiterleitung verwendet.) Leider unterstützt Internet Explorer keine HSTS-Quelle ( ). Wenn Ihre Zielgruppe also hauptsächlich IE und die Daten sind vertraulich. Möglicherweise möchten Sie Weiterleitungen deaktivieren.

Wenn Sie also nicht auf Benutzer abzielen IE Benutzer), verwenden Sie die Umleitung, aktivieren Sie jedoch auch den HSTS-Header.

37
Anders Abel

Daran ist nichts auszusetzen, und in der Tat ist es eine bewährte Methode (für Websites, die sollten über eine sichere Verbindung bereitgestellt werden). Tatsächlich ähnelt das, was Sie tun, der Konfiguration, die ich verwende:

<VirtualHost 10.2.3.40:80>
  ServerAdmin [email protected]
  ServerName secure.example.com
  RedirectMatch 301 (.*) https://secure.example.com$1
</VirtualHost>

# Insert 10.2.3.40:443 virtual Host here :)

Das 301 Statuscode zeigt eine permanente Weiterleitung an und weist fähige Clients an, die sichere URL für zukünftige Verbindungen zu verwenden (z. B. das Lesezeichen aktualisieren).

Wenn Sie die Site nur über TLS/SSL bereitstellen, würde ich eine weitere Anweisung empfehlen, um HTTP Strict Transport Security (HSTS) in Ihrer sicher virtuellen zu aktivieren Wirt:

<IfModule mod_headers.c>
  Header set Strict-Transport-Security "max-age=1234; includeSubdomains"
</IfModule>

Dieser Header weist fähige Clients an (die meisten von ihnen heutzutage, glaube ich), dass sie nur HTTPS verwenden mit dem bereitgestellte Domain (secure.example.com, in diesem Fall) für das nächste 1234 Sekunden. Das ; includeSubdomains Teil ist optional und gibt an, dass die Direktive nicht nur für die aktuelle Domain gilt, sondern für alle darunter liegenden (z. B. alpha.secure.example.com). Beachten Sie, dass der HSTS-Header nur Von Browsern akzeptiert wird, wenn er über eine SSL/TLS-Verbindung bereitgestellt wird!

Um Ihre Serverkonfiguration anhand der aktuellen Best Practice zu testen, ist Qualys 'SSL Server Test service eine gute kostenlose Ressource. Ich würde versuchen, mindestens ein A- zu erzielen (mehr kann man mit Apache 2.2 nicht erreichen, da die Kryptographie mit elliptischen Kurven nicht unterstützt wird).

21
Calrion

Ist es schlecht, http zu https umzuleiten?

Nein überhaupt nicht. Eigentlich ist es eine gute Sache!

Bei Weiterleitungen:

Es könnte effizienter sein, indem das Umschreiben vollständig eliminiert. Hier ist meine Konfiguration für eine ähnliche Situation ...

<VirtualHost *:80>
  ServerName domainname.com

  <IfModule mod_alias.c>
    Redirect permanent / https://domainname.com/
  </IfModule>
</VirtualHost>
5
Pothi Kalimuthu

Wow ! HTTP zu HTTPS umzuleiten ist eine sehr gute Sache und ich kann keine Nachteile dafür sehen.

Stellen Sie einfach sicher, dass Ihre Clients über die richtige Zertifizierungsstelle verfügen, um nicht benutzerfreundliche Warnungen vor Zertifikaten im Browser zu vermeiden.

Darüber hinaus scheint die Art und Weise, wie Sie Apache für die Umleitung zu HTTPS eingerichtet haben, in Ordnung zu sein.

5
krisFR

HTTPS ist nicht gerade narrensicher. Natürlich ist es eine gute Sache, normalerweise HTTPS zu erzwingen. Es verhindert, dass normale Kriminelle Ihren Benutzern etwas Böses antun.

Denken Sie jedoch daran, Ihre SSL-Einstellungen wie die SSLCiphers-Einstellung zu überprüfen. Deaktivieren Sie Dinge wie RC4-Krypto, das SSLv2- und das SSLv3-Protokoll. Außerdem sollten Sie herausfinden, ob die Krypto-System-Bibliotheken Ihres Systems TLS1.2 unterstützen (was Sie möchten;))

Schalten Sie SSL ein, es ist eine gute Sache.

4
Tobias Mädel

Hier sind einige der allgemeinen Probleme mit Pinselstrichen:

  • MITM/SSLSTRIP: Dies ist eine große Einschränkung. Wenn Sie Ihre Site über HTTPS bereitstellen möchten , deaktivieren Sie HTTP auf der Site . Andernfalls lassen Sie Ihre Benutzer für verschiedene Man-in-the-Middle-Angriffe offen, einschließlich SSLSTRIP, die Anforderungen abfangen und sie leise über HTTP bedienen und ihr eigenes Malware-Skript in den Stream einfügen. Wenn der Benutzer es nicht bemerkt, wird er denken , dass seine Sitzung sicher ist, wenn dies tatsächlich nicht der Fall ist.

    • Das Problem dabei ist jedoch, dass Sie möglicherweise viele Besucher verlieren, wenn Ihre Site eine öffentliche Site ist und Sie HTTP nur kurzerhand deaktivieren. Es wird ihnen wahrscheinlich nicht einmal einfallen, HTTPS zu versuchen, wenn die Site nicht mit HTTP geladen wird.
  • Wenn für Ihre Site eine sichere Anmeldung erforderlich ist, sollte die gesamte Benutzersitzung gesichert sein. Authentifizieren Sie sich nicht über HTTPS und leiten Sie den Benutzer dann zurück zu HTTP. Wenn Sie dies erneut tun, sind Ihre Benutzer für MITM-Angriffe anfällig. Der Standardansatz für die Authentifizierung besteht heutzutage darin, sich einmal zu authentifizieren und dann ein Authentifizierungstoken hin und her zu übergeben (in einem Cookie). Wenn Sie sich jedoch über HTTPS authentifizieren und dann zu HTTP umleiten, kann ein Mann in der Mitte dieses Cookie abfangen und die Site so verwenden, als ob er Ihr authentifizierter Benutzer wäre, wobei Ihre Sicherheit umgangen wird.

  • Die "Leistungs" -Probleme mit HTTPS beschränken sich praktisch auf den Handshake, der beim Erstellen einer neuen Verbindung erforderlich ist. Tun Sie, was Sie können, um die Notwendigkeit mehrerer HTTPS-Verbindungen über eine URL zu minimieren, und Sie sind meilenweit voraus. Und das gilt offen gesagt auch dann, wenn Sie Ihre Inhalte über HTTP bereitstellen. Wenn Sie sich über SPDY informieren, werden Sie feststellen, dass alles, was es tut, darauf ausgerichtet ist, den gesamten Inhalt von einer einzigen URL über eine einzige Verbindung bereitzustellen. Ja, die Verwendung von HTTPS wirkt sich auf das Caching aus. Aber wie viele Websites sind heutzutage überhaupt nur statische, zwischenspeicherbare Inhalte? Durch das Caching auf Ihrem Webserver werden Sie wahrscheinlich mehr Geld verdienen, um redundante Datenbankabfragen zu minimieren, bei denen unveränderte Daten immer wieder abgerufen werden, und um zu verhindern, dass teure Codepfade häufiger als nötig ausgeführt werden.

3
Craig

Persönlich bin ich alle für die Verwendung von SSL zum Sichern von Verbindungen im Web. Ich bin jedoch der Meinung, dass alle anderen Antworten hier übersehen haben, dass nicht jedes Gerät und jede Software, die zu einer HTTP-Verbindung fähig ist, SSL verwenden kann. Daher würde ich in Betracht ziehen, Benutzern eine Möglichkeit zu bieten, dies zu vermeiden, wenn es für sie nicht unterstützt wird. Es ist auch möglich, dass Personen in einigen Ländern, in denen Verschlüsselungstechnologie illegal ist, nicht auf Ihre Website zugreifen dürfen. Ich würde in Betracht ziehen, eine unverschlüsselte Zielseite mit einem Link hinzuzufügen, um die unsichere Version der Site zu erzwingen, es sei denn, ein Benutzer wählt dies ausdrücklich aus und leitet sie einfach an die HTTPS-Version weiter.

3
Vality

der einzige technische Nachteil von HTTPS über HTTP besteht darin, dass die Verarbeitung von HTTPS-Anforderungen rechenintensiver ist als normales HTTP

Angesichts der Tatsache, dass die meisten modernen Server über leistungsstarke CPUs verfügen, ist diese Auswirkung normalerweise vernachlässigbar, es sei denn, Sie haben extrem viel Verkehr und verwenden zu diesem Zeitpunkt höchstwahrscheinlich Load Balancer

Mit dem Aufkommen von Protokollen wie SPDY, für deren Funktion SSL/TLS erforderlich ist, wirkt dies dem oben genannten Rechenaufwand entgegen, indem erhebliche Leistungsverbesserungen in Bezug auf mehrere Anforderungen erzielt und Assets insgesamt schneller an den Client gesendet werden.

1
anthonysomerset

Es ist sehr gut, zu https umzuleiten, aber ich habe gelesen, dass es auch davon abhängt, wie Sie die Umleitung organisieren.

Wenn Sie einen dedizierten virtuellen Server zum Umleiten der eingehenden http-Anforderungen an Ihre https-Verbindung erstellen, wie in vorgeschlagen, klingt die Antwort auf security.stackexchange.com sehr klug und wird Schließen Sie einige zusätzliche Sicherheitsbedrohungen. Eine Konfiguration in Apache würde ungefähr so ​​aussehen:

# Virtual Host for rerouting
<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / https://www.example.com/
</VirtualHost>

# Virtual Host for secure hosting on https
<VirtualHost *:443>
    ServerName www.example.com
    SSLEngine on
    Header set Strict-Transport-Security "max-age=8640000;includeSubdomains"

    ...site settings...

</VirtualHost>
1
Wilt

Dies ist technisch gesehen keine Antwort auf Ihre ursprüngliche Frage. Wenn Sie jedoch die Erweiterung HTTPSEverywhere von Google Chrome) verwenden (ich bin sicher, dass es ähnliche Erweiterungen in anderen Browsern gibt), leitet die Erweiterung Websites mit automatisch weiter HTTP auf dieselbe Site mit HTTPS. Ich verwende es seit einer Weile und hatte keine Probleme (außer vielleicht eine Verlangsamung, aber ich habe das nicht getestet). HTTPSEverywhere kann durch bestimmte Regeln auf der Serverseite geändert werden , aber da ich in diesem Bereich nicht viel getan habe, bin ich mir der genauen Details nicht sicher.

Zurück zu Ihrer eigentlichen Frage: Wenn Sie so etwas wie HTTPSEverywhere verwenden, gibt es noch weniger Anreize, nur HTTP zu verwenden, obwohl ich mir vorstelle, dass es schwierig ist, korrekte Regeln für den Fall einzurichten, dass Sie sie benötigen.

1
trysis