Wszystkie wersje SSL /TLS protokół przed TLS 1.2 są teraz przestarzałe i uważane za niezabezpieczone. Wiele platform serwerów internetowych nadal ma TLS 1.0 i TLS 1.1 domyślnie włączone. Jednak wszystkie nowoczesne przeglądarki internetowe są kompatybilne z TLS 1.2. Z tego powodu właściciele witryn powinni sprawdzić konfigurację swojego serwera, aby upewnić się, że tylko aktualne, bezpieczne wersje SSL /TLS są włączone, a wszystkie inne (w tym TLS 1.0, TLS 1.1 i SSL 3.0) są wyłączone.
Ten przewodnik zawiera instrukcje sprawdzania, które wersje SSL /TLS są włączone na stronie internetowej, wyłączając przestarzałe wersje SSL /TLS w Apache i Nginx i pokazuje przykłady błędów przeglądarki wynikających z serwerów, na których działają tylko przestarzałe, niezabezpieczone wersje SSL /TLS.
Sprawdź włączone SSL /TLS wersje
Narzędzia online
Możesz szybko sprawdzić wersje SSL /TLS Twoja witryna obsługuje, odwiedzając CDN77 TLS szachownica i wpisując nazwę domeny, którą chcesz sprawdzić. Jak widać poniżej, https://example.com obecnie wyłącza SSL wersje 2 i 3, ale włącza wszystkie wersje TLS (w tym wycofane TLS 1.1 i 1.0):
Nmap
Możesz również sprawdzić certyfikat SSL /TLS wersje i szyfry obsługiwane przez witrynę internetową z otwartym kodem źródłowym nmap narzędzie wiersza poleceń:
nmap --script ssl-enum-ciphers -p
Domyślny port dla SSL /TLS is 443
. Poniższe polecenie wygeneruje raport dla example.com
:
$ nmap --script ssl-enum-ciphers -p 443 example.com Począwszy od Nmap 7.80 (https://nmap.org) o godzinie 2020-08-25 13:10 EDT Raport skanowania Nmap na przykład.com (93.184.216.34) Host działa (opóźnienie 0.031 s). Inne adresy, na przykład example.com (nie skanowano): 2606: 2800: 220: 1: 248: 1893: 25c8: 1946 PORT STAN SERVICE 443 / tcp open https | ssl-enum-ciphers: | TLSwersja 1.0: | szyfry: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A | TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | sprężarki: | NULL | preferencje szyfrowania: serwer | TLSwersja 1.1: | szyfry: | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A | TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | sprężarki: | NULL | preferencje szyfrowania: serwer | TLSwersja 1.2: | szyfry: | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (dh 2048) - A | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (dh 2048) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (dh 2048) - A | TLS_DHE_RSA_WITH_AES_128_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (dh 2048) - A | TLS_DHE_RSA_WITH_AES_256_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (dh 2048) - A | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (rsa 2048) - A | TLS_DHE_RSA_WITH_SEED_CBC_SHA (dh 2048) - A | TLS_RSA_WITH_SEED_CBC_SHA (rsa 2048) - A | sprężarki: | NULL | preferencje szyfrowania: serwer | _ najmniejsza siła: Wykonano Nmap: 1 adres IP (1 host w górę) przeskanowany w 3.88 sekundy
Konfiguracja serwera
Apache
Wyłączyć TLS 1.0 i 1.1 w Apache, będziesz musiał edytować plik konfiguracyjny zawierający rozszerzenie SSLProtocol
dyrektywy dla Twojej witryny. Ten plik może znajdować się w różnych miejscach w zależności od platformy, wersji lub innych szczegółów instalacji. Oto niektóre możliwe lokalizacje:
/usr/local/apache2/conf/extra/httpd-ssl.conf
(domyślna instalacja Apache)/etc/apache2/mods-enabled/ssl.conf
(Ubuntu / Debian)/private/etc/apache2/extra/httpd-ssl.conf
(System operacyjny Mac)
Po zlokalizowaniu poprawnego pliku konfiguracyjnego poszukaj linii zaczynającej się od SSLProtocol
. W tym przykładzie z domyślnej instalacji Apache macOS wyłącza SSLv3 z rozszerzeniem -
operator, ale umożliwia TLS 1.0 i 1.1:
SSLProtokół wszystko -SSLv3
Możesz wyłączyć wszystkie przestarzałe wersje SSL /TLS obsługiwane przez Apache, określając je w następujący sposób:
SSLProtokół wszystko -SSLv3 -TLSV1 -TLSv1.1
Powyższa konfiguracja umożliwia TLS 1.2, a także TLS 1.3, jeśli jest dostępny w Twoim środowisku.
Apache i wirtualne hosty
Apache może obsługiwać więcej niż jedną witrynę internetową na jednym serwerze. Te wirtualne hosty może być oparty na numerze IP, porcie lub nazwie domeny i może obejmować ustawienia, które zastępują podstawową konfigurację Apache. Z tego powodu powinieneś sprawdzić ustawienia każdego wirtualnego hosta w swoich plikach konfiguracyjnych, zwłaszcza jeśli zmiany w podstawowym SSL /TLS konfiguracja wydaje się nie działać.
W przypadku wersji Apache wcześniejszych niż 2.4.42 (zbudowanych / połączonych z OpenSSL przed 1.1.1) nie było możliwe określenie różnych SSL /TLS protokoły dla hostów wirtualnych opartych na nazwach, które mają ten sam podstawowy numer IP i port - SSLProtocol
pierwszego wirtualnego hosta został zastosowany do wszystkich pozostałych. Począwszy od Apache 2.4.42 / OpenSSL 1.1.1, rozszerzenie SSLProtocol
każdego hosta wirtualnego opartego na nazwie jest honorowany, gdy Wskazanie nazwy serwera (SNI) jest dostarczane przez klienta w okresie SSL /TLS uścisk ręki.
Po wprowadzeniu zmian w konfiguracji załaduj ponownie Apache, aby wprowadzić je w życie. Aby uzyskać więcej informacji na temat SSLProtocol
dyrektywy, zapoznaj się z Apache dokumentacja.
nginx
SSL /TLS ustawienia protokołu można określić w podstawowym pliku konfiguracyjnym Nginx (zwykle znajdującym się w /etc/nginx/nginx.conf
) lub w plikach konfiguracyjnych witryny. Poszukaj linii zaczynającej się od ssl_protocols
. Na przykład poniższy tekst pochodzi z wartości domyślnej nginx.conf
plik z nowej instalacji Nginx na Ubuntu:
ssl_protokoły TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Porzucenie SSLv3, ref: POODLE
Możesz edytować tę linię, aby tylko aktualne, bezpieczne wersje SSL /TLS są uwzględnione:
ssl_protokoły TLSv1.2 TLSwersja 1.3;
Zwróć uwagę, że wszelkie ustawienia w domyślnej konfiguracji SSL mogą zostać zastąpione przez blokadę serwera podczas konfigurowania poszczególnych nazw domen, więc pamiętaj o ich sprawdzeniu, jeśli zmiany w ustawieniach protokołu nie są odzwierciedlone w witrynie.
Po wprowadzeniu zmian w konfiguracji załaduj ponownie Nginx, aby wprowadzić je w życie. Aby uzyskać więcej informacji, zapoznaj się z dokumentacją Nginx na temat konfigurowanie serwerów HTTPS.
TLS Błędy przeglądarki 1.0 i 1.1
Bo TLS wersje 1.0 i 1.1 są obecnie uważane za niezabezpieczone, większość nowoczesnych przeglądarek wyświetli komunikat o błędzie, jeśli napotka stronę internetową, na której te przestarzałe TLS wersje są włączone, ale TLS 1.2 lub 1.3 nie jest. Przykłady tych błędów przedstawiono poniżej:
Google Chrome
Google Chrome wyświetla następujący komunikat o błędzie, gdy łączy się z uruchomioną witryną internetową TLS 1.0 lub 1.1:
Twoje połączenie nie jest w pełni bezpieczne
Ta witryna korzysta z przestarzałej konfiguracji zabezpieczeń, która może ujawnić Twoje informacje (na przykład hasła, wiadomości lub karty kredytowe), gdy są wysyłane do tej witryny.NET::ERR_SSL_OBSOLETE_VERSION
Kliknięcie Zaawansowane spowoduje wyświetlenie następującego komunikatu wraz z łączem umożliwiającym przejście do witryny internetowej oznaczonym etykietą niezabezpieczonym:
Użyto połączenia używanego do ładowania tej witryny TLS 1.0 lub TLS 1.1, które są przestarzałe i zostaną wyłączone w przyszłości. Po wyłączeniu użytkownicy nie będą mogli wczytać tej witryny. Serwer powinien włączyć TLS 1.2 lub nowszy.
Mozilla Firefox
Mozilla Firefox generuje następujący komunikat o błędzie, gdy łączy się z uruchomioną witryną internetową TLS 1.0 lub 1.1:
Bezpieczne połączenie nie powiodło się
Wystąpił błąd podczas połączenia z [URL]. Peer używa nieobsługiwanej wersji protokołu bezpieczeństwa.
Kod błędu:SSL_ERROR_UNSUPPORTED_VERSION
...
Ta witryna internetowa może nie obsługiwać TLS 1.2, czyli minimalna wersja obsługiwana przez przeglądarkę Firefox. Włączanie TLS 1.0 i 1.1 mogą pozwolić na pomyślne nawiązanie połączenia.
TLS 1.0 i TLS 1.1 zostanie trwale wyłączony w przyszłej wersji.
Apple Safari
Przeglądarka Safari firmy Apple załaduje witryny HTTPS przy użyciu TLS 1.0 i 1.1, ale wyświetli komunikat „Niezabezpieczone” w pasku adresu przeglądarki.
Po więcej informacji
Aby przeczytać o problemach dotyczących bezpieczeństwa związanych z wcześniejszymi wersjami TLS, przeczytaj nasz artykuł, Przestarzałe wcześnie TLS dla bezpieczniejszego Internetu. Aby uzyskać więcej informacji o ważnych różnicach między plikami TLS 1.2 i TLS 1.3, sprawdź TLS 1.3 już tu zostanie.
Jak zawsze, w razie pytań prosimy o kontakt mailowy pod adresem Support@SSL.com, połączenie 1-877-SSL-SECURElub po prostu kliknij łącze czatu w prawym dolnym rogu tej strony. Odpowiedzi na wiele często zadawanych pytań można również znaleźć w naszym baza wiedzy. Dziękujemy za odwiedzenie SSL.com!
SSL.com zapewnia szeroką gamę domen SSL /TLS certyfikaty serwera dla witryn HTTPS, w tym: