Wyłącz TLS 1.0 i 1.1 w Apache i Nginx

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):

SSL /TLS wersje obsługiwane przez example.com

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

Testy Chrome zostały przeprowadzone w Chrome 84 w systemie Windows 10. Zrzuty ekranu pochodzą z przeglądarki Chrome. Zwróć uwagę, że aktualna wersja Microsoft Edge (oparta na Chromium) wyświetla ten sam kod błędu co Chrome, któremu towarzyszy nieco inny tekst.

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

TLS Komunikat o błędzie 1.0 w przeglądarce ChromeKliknię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.

Zaawansowane informacje o TLS 1.0 i 1.1 w Chrome

Mozilla Firefox

Testy Firefoksa przeprowadzono w przeglądarce Firefox 79.0 w systemie Windows 10.

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.

Firefox TLS Komunikat o błędzie 1.0 i 1.1

Kliknięcie umożliwiać TLS 1.0 i 1.1 przycisk może pomóc załadować witrynę, ale nie jest to jednorazowe zwolnienie. Aby ponownie wyłączyć TLS 1.0 i 1.1, przejdź do about:config w przeglądarce Firefox i ustaw security.tls.version.enable-deprecated do false.

ustaw zabezpieczenia.tls.version.enable-deprecated na false

Apple Safari

Testy Safari przeprowadzono w wersji Safari 13.1.2 w systemie macOS 10.15.6 (Catalina)

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.

TLS 1.0 w Apple Safari

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!

Twitter
Facebook
LinkedIn
Reddit
E-mail

Bądź na bieżąco i bezpiecznie

SSL.com jest światowym liderem w dziedzinie cyberbezpieczeństwa, PKI i certyfikaty cyfrowe. Zarejestruj się, aby otrzymywać najnowsze wiadomości branżowe, wskazówki i ogłoszenia o produktach od SSL.com.

Będziemy wdzięczni za Twoją opinię

Weź udział w naszej ankiecie i daj nam znać, co myślisz o swoim ostatnim zakupie.