Właśnie zainstalowałem certyfikat SSL na moim serwerze.
Następnie skonfigurował przekierowanie dla całego ruchu w mojej domenie na porcie 80, aby przekierować go do portu 443.
Innymi słowy, cały mój http://example.com
ruch jest teraz przekierowywany do odpowiedniej https://example.com
wersji strony.
Przekierowanie odbywa się w moim pliku Apache Virtual Hosts za pomocą czegoś takiego ...
RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
Moje pytanie brzmi: czy są jakieś wady korzystania z SSL?
Ponieważ nie jest to przekierowanie 301, czy utracę sok / pozycję linku w wyszukiwarkach, przechodząc na https
?
Doceniam pomoc. Zawsze chciałem skonfigurować SSL na serwerze, tylko ze względu na praktykę robienia tego i ostatecznie zdecydowałem się to zrobić dziś wieczorem. Wygląda na to, że do tej pory działało dobrze, ale nie jestem pewien, czy warto używać tego na każdej stronie. Moja strona nie jest eCommerce i nie obsługuje poufnych danych; dotyczy głównie wyglądu i emocji związanych z instalacją go do nauki.
AKTUALIZACJA
Dziwnie Bing tworzy ten zrzut ekranu z mojej strony, teraz, gdy używa HTTPS wszędzie ...
źródło
sslstrip
atak przekierowujący w stylu (oba są przejmującymi żądanie man-in-the-middle), więc przeglądarki HSTS -aware zablokują je oba.src="://example.com/jquery.js"
- zwróć uwagę na brak przeglądarkihttp
lubhttps
tak ładuje odpowiednią. Miałem koszmar, aby niektóre osadzone rzeczy Amazon ładowały się poprawnie, ponieważ API (ładowane przez https) produkowało linki http - co oznacza, że nie działały one poprawnie, dopóki nie znalazłem nieudokumentowanego parametru do przełączania łączy httpsOdpowiedzi:
[R]
Flag na własną rękę jest302
przekierowanie (Moved Temporarily
). Jeśli naprawdę chcesz, aby osoby korzystające z Twojej witryny korzystały z wersji HTTPS (wskazówka: robisz), powinieneś używać[R=301]
stałego przekierowania:A
301
utrzymuje nienaruszone wszystkie twoje google-fu i ciężko zarobione strony . Upewnij się, żemod_rewrite
jest włączony:Aby odpowiedzieć na dokładne pytanie:
Piekło nie To jest bardzo dobre.
źródło
Chociaż popieram pomysł witryn tylko z protokołem SSL, powiedziałbym, że jedną wadą są koszty ogólne w zależności od projektu witryny. Mam na przykład na myśli, że jeśli wyświetlasz wiele pojedynczych zdjęć w tagach img, może to spowodować, że Twoja strona będzie działać wolniej. Radzę każdemu, kto korzysta z serwerów obsługujących wyłącznie protokół SSL, aby upewnić się, że działają w następujących przypadkach.
<meta property="og:url"
do korzystania z wersji domeny https.<base href=
ponownie aktualizacji, aby użyć HTTPS.Jeśli powyższe zostanie rozwiązane, wątpię, abyś miał wiele problemów.
źródło
Referer
nagłówka. Na przykład ta strona korzysta z jQuery z CDN Google, a moja przeglądarka wysyła do Google żądanie za każdym razem, gdy przeładuję stronę. W ten sposóbReferer
nagłówek jest wysyłany do Google, który jest ustawiony na adres URL tej witryny. Dzięki temu Google może śledzić witryny odwiedzane przeze mnie, gdy mój adres IP się nie zmienia (a jeśli w tym czasie korzystam z usługi Google, Google może również połączyć te informacje z moim kontem Google).Mam skonfigurowane https, więc powinieneś używać go wszędzie na stronie. Unikniesz ryzyka problemów z mieszaną treścią, a jeśli masz wymagane narzędzia, dlaczego nie zabezpieczyć całej witryny?
Jeśli chodzi o przekierowanie z http na https, odpowiedź nie jest taka prosta.
Przekierowanie znacznie ułatwi użytkownikom, po prostu wpisują na whateversite.com i zostają przekierowani na https.
Ale. Co się stanie, jeśli użytkownik czasami znajduje się w niezabezpieczonej sieci (lub jest blisko Troy Hunt i jego ananasa )? Następnie użytkownik poprosi http://whateversite.com o stary nawyk. To jest http. To może być zagrożone. Przekierowanie może wskazywać na https://whateversite.com.some.infrastructure.long.strange.url.hacker.org . Dla zwykłego użytkownika wyglądałoby to całkiem legalnie. Ale ruch może zostać przechwycony.
Mamy więc dwa konkurujące ze sobą wymagania: być przyjaznym dla użytkownika i bezpiecznym. Na szczęście istnieje rozwiązanie zwane nagłówkiem HSTS . Za jego pomocą możesz włączyć przekierowanie. Przeglądarka przejdzie do bezpiecznej strony, ale dzięki nagłówkowi HSTS również ją zapamiętaj. Gdy użytkownik wpisze w whateversite.com siedzącą w tej niezabezpieczonej sieci, przeglądarka od razu przejdzie na https, bez przechodzenia przez przekierowanie na http. Chyba że masz do czynienia z bardzo wrażliwymi danymi, uważam, że jest to sprawiedliwy kompromis między bezpieczeństwem a użytecznością w przypadku większości witryn. (Kiedy ostatnio konfigurowałem aplikację do obsługi dokumentacji medycznej, połączyłem wszystkie https bez przekierowania). Niestety Internet Explorer nie obsługuje HSTS ( źródło), więc jeśli twoi odbiorcy najczęściej używają IE, a dane są wrażliwe, możesz chcieć wyłączyć przekierowania.
Więc jeśli nie jesteś kierowany do użytkowników IE, skorzystaj z przekierowania, ale włącz także nagłówek HSTS.
źródło
Nie ma w tym nic złego, a tak naprawdę jest to najlepsza praktyka (w przypadku witryn, które powinny być obsługiwane przez bezpieczne połączenie). W rzeczywistości to, co robisz, jest bardzo podobne do konfiguracji, której używam:
301
Kod statusu wskazuje na stałe przekierowanie, instruowania klientów zdolnych do korzystania z bezpiecznego adresu URL dla przyszłych połączeń (np zaktualizować zakładkę).Jeśli witryna będzie obsługiwana tylko przez TLS / SSL, zaleciłbym kolejną dyrektywę, aby włączyć HTTP Strict Transport Security (HSTS) na bezpiecznym hoście wirtualnym:
Ten nagłówek instruuje zdolnych klientów (większość obecnie, jak sądzę), że powinni używać HTTPS tylko z podaną domeną (
secure.example.com
w tym przypadku) przez następne1234
sekundy. Ta; includeSubdomains
część jest opcjonalna i wskazuje, że dyrektywa ma zastosowanie nie tylko do bieżącej domeny, ale do każdej pod nią (npalpha.secure.example.com
.). Zauważ, że nagłówek TGV jest tylko akceptowane przez przeglądarki, gdy podawane za pośrednictwem połączenia SSL / TLS!Aby przetestować konfigurację serwera pod kątem bieżących najlepszych praktyk, dobrym darmowym zasobem jest usługa testowania serwera SSL Qualys ; Chciałbym zdobyć przynajmniej A- (z Apache 2.2 nie można uzyskać więcej niż to z powodu braku wsparcia dla kryptografii krzywej eliptycznej).
źródło
Strict-Transport-Security: max-age=0
neguje każdą poprzednią dyrektywę; jak zawsze, aby je zaakceptować, należy je przesłać przez HTTPS, ale jest to przydatny sposób anulowania rzeczy, jeśli zdecydujesz, że musisz również używać HTTP w domenie.Łał ! przekierowanie HTTP na HTTPS jest bardzo dobrą rzeczą i nie widzę w tym żadnych wad.
Upewnij się tylko, że Twoi klienci mają odpowiedni urząd certyfikacji, aby uniknąć nieprzyjaznych ostrzeżeń o certyfikacie w przeglądarce.
Ponadto sposób skonfigurowania Apache do przekierowywania na HTTPS wydaje się być w porządku.
źródło
Nie, wcale nie. Właściwie to jest dobra rzecz do zrobienia!
W przekierowaniach:
Może być bardziej wydajny, całkowicie eliminując przepisywanie . Oto moja konfiguracja w podobnej sytuacji ...
źródło
HTTPS nie jest całkowicie niezawodny. Oczywiście normalne wymuszanie HTTPS jest dobrą rzeczą. Zapobiega to, by normalni przestępcy nie robili nic złego użytkownikom.
Pamiętaj jednak, aby sprawdzić ustawienia SSL, takie jak ustawienie SSLCiphers. Wyłącz takie rzeczy, jak krypto RC4, protokół SSLv2 i SSLv3. Ponadto powinieneś dowiedzieć się, czy biblioteki kryptosystemowe twojego systemu obsługują TLS1.2 (co jest tym, co chcesz mieć;))
Włącz SSL, to dobra rzecz.
źródło
Osobiście jestem za używaniem SSL do zabezpieczania połączeń w sieci, ale uważam, że wszystkie inne odpowiedzi tutaj pominięte to to, że nie każde urządzenie i oprogramowanie zdolne do połączenia HTTP będzie mogło używać SSL, dlatego zastanowiłbym się nad zapewnieniem użytkownikom sposobu, aby tego uniknąć, jeśli nie jest dla nich obsługiwany. Możliwe jest również, że osoby w niektórych krajach, w których technologia szyfrowania jest nielegalna, nie będą miały dostępu do Twojej witryny. Rozważę dodanie niezaszyfrowanej strony docelowej z linkiem, aby wymusić niezabezpieczoną wersję witryny, ale chyba że użytkownik specjalnie wybierze takie postępowanie, jak powiedziałeś, i po prostu przekaże je do wersji HTTPS.
źródło
Oto niektóre z szerokich problemów związanych z pociągnięciem pędzla:
MITM / SSLSTRIP : To ogromne zastrzeżenie. Jeśli chcesz wyświetlać swoją witrynę przez HTTPS, wyłącz HTTP na stronie . W przeciwnym razie pozostawiasz użytkowników otwartych na różne ataki typu man-in-the-middle, w tym SSLSTRIP, który przechwytuje żądania i po cichu obsługuje je przez HTTP, wstawiając własny skrypt złośliwego oprogramowania do strumienia. Jeśli użytkownik tego nie zauważy, pomyśli , że jego sesja jest bezpieczna, a tak naprawdę nie jest.
Jeśli witryna wymaga bezpiecznego logowania, należy zabezpieczyć całą sesję użytkownika. Nie uwierzytelniaj przez HTTPS, a następnie przekieruj użytkownika z powrotem do HTTP. Jeśli to zrobisz, ponownie narażasz użytkowników na ataki MITM. Standardowe podejście do uwierzytelniania w tych dniach polega na jednokrotnym uwierzytelnieniu, a następnie przekazaniu tokena uwierzytelniającego w obie strony (w pliku cookie). Ale jeśli uwierzytelniasz się przez HTTPS, a następnie przekierowujesz na HTTP, wówczas man-in-the-middle może przechwycić ten plik cookie i korzystać z witryny tak, jakby był uwierzytelnionym użytkownikiem, omijając Twoje bezpieczeństwo.
Problemy z wydajnością HTTPS są praktycznie ograniczone do uzgadniania związanego z tworzeniem nowego połączenia. Zrób, co możesz, aby zminimalizować potrzebę wielu połączeń HTTPS z adresu URL, a będziesz mil dalej. I to szczerze mówiąc, nawet jeśli udostępniasz swoje treści przez HTTP. Jeśli czytasz na SPDY, zdasz sobie sprawę, że wszystko, co robi, ma na celu dostarczenie całej zawartości z jednego adresu URL za pomocą jednego połączenia. Tak, użycie HTTPS wpływa na buforowanie. Ale w każdym razie, ile stron internetowych to po prostu statyczna zawartość, którą można buforować? Prawdopodobnie zyskasz więcej za grosze, używając buforowania na serwerze sieciowym, aby zminimalizować nadmiarowe zapytania do bazy danych, które nieustannie odtwarzają niezmienione dane i zapobiegają wykonywaniu kosztownych ścieżek kodu częściej niż to konieczne.
źródło
Technicznie nie jest to odpowiedź na twoje pierwotne pytanie, ale jeśli używasz rozszerzenia Google Chrome HTTPS Gdziekolwiek (jestem pewien, że istnieją podobne rozszerzenia w innych przeglądarkach), rozszerzenie automatycznie przekierowuje strony z HTTP do tej samej strony z HTTPS. Używam go przez jakiś czas i nie miałem żadnych problemów (może poza spowolnieniem, ale tego nie testowałem). HTTPS: Wszędzie można zmienić niektóre reguły po stronie serwera, ale ponieważ nie zrobiłem wiele w tym obszarze, nie jestem pewien dokładnych szczegółów.
Wracając do twojego rzeczywistego pytania, jeśli używasz czegoś takiego jak HTTPS, gdziekolwiek indziej, jest jeszcze mniej motywacji do korzystania tylko z HTTP, chociaż wyobrażam sobie, że trudno jest ustawić prawidłowe reguły, kiedy będziesz ich potrzebować.
źródło
jedyną techniczną wadą HTTPS przez HTTP jest to, że przetwarzanie żądań HTTPS jest obliczeniowo droższe niż zwykły HTTP
Jednak biorąc pod uwagę, że większość współczesnych serwerów ma procesory o dużej mocy, wpływ ten jest zwykle nieistotny, chyba że masz bardzo wysoki poziom ruchu, w którym to momencie bardziej niż prawdopodobne jest użycie równoważenia obciążenia
Wraz z pojawieniem się protokołów takich jak SPDY, które wymagają do działania protokołu SSL / TLS, w rzeczywistości przeciwdziała to wspomnianemu narzutowi obliczeniowemu, zapewniając znaczną poprawę wydajności w odniesieniu do wielu żądań i ogólnie szybsze przekazywanie zasobów do klienta.
źródło
Przekierowanie na https jest bardzo dobre, ale czytam, że zależy to również od tego, jak zorganizujesz przekierowanie.
Stworzenie dedykowanego wirtualnego serwera do przekierowywania przychodzących żądań HTTP do połączenia https, jak sugeruje odpowiedź na security.stackexchange.com, brzmi bardzo inteligentnie i zamknie niektóre dodatkowe zagrożenia bezpieczeństwa. Konfiguracja w Apache wyglądałaby mniej więcej tak:
źródło