Як я можу відключити TLS 1.0 та 1.1 в apache?


31

Хтось знає, чому я не можу відключити tls 1.0 та tls1.1, оновивши конфігурацію до цього.

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

Після цього я перезавантажую apache, я роблю сканування ssl за допомогою ssllabs або comodo ssl інструменту, і він все ще говорить, що підтримуються tls 1.1 та 1.0. Я хотів би їх видалити?

Відповіді:


45

Якщо у вас є декілька TLS VirtualHosts та використовується індикація імені сервера (SNI), дозволений синтаксис має SSLProtocol директиву для кожного VirtualHost, але якщо у вас немає IP VirtualHosts на практиці, налаштування від першого появи SSLProtocolдирективи використовуються для всього сервера та / або всі VirtualHosts на основі імен, що підтримують TLS 1 .

Тому перевірте свої основні httpd.conf(і всі включені фрагменти, наприклад, conf.d/*.confподібні включення ), чи не зустрічається більше SSLProtocolдиректив.

Ви синтаксис правильний, хоча я згоден з відповіддю ezra-s, що, розгорнувши allстенограму, ви можете трохи покращити:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

простим використанням:

 SSLProtocol TLSv1.2

Це все має сенс, проте я зробив те, що ви рекомендували. Я grep'd мій / etc / httpd каталог для всіх посилань на "SSLProtocol". Потім я оновив його на SSLProtocol TLSv1.2, потім здійснив перезапуск, і він все ще показує, що підтримуються tls 1.0 і 1.1. Я також спробував це на іншому моєму сервері і тому ж питанні. Будь-які ідеї?
Девід

1
Помилкова тривога, це дійсно було кешоване повідомленнями comodo та ssllabs. Здається, зараз звітують правильно. Дякую.
Девід

3
Я думаю, я б рекомендував використовувати "всі" з мінусом для протоколів, які ви не хочете. Майбутні версії apache визначають "все" по-різному, оскільки розробляються нові стандарти, а старі стандарти виявляються небезпечними.
bobpaul

якщо ви використовуєте Letsencrypt, не забудьте перевірити/etc/letsencrypt/options-ssl-apache.conf
Мемес

9

що ви вказали достатньо, він не повинен відображати жодних інших протоколів. Пам'ятайте, що SSLLABS кешує останні тести. Хоча знання того, що не існує інших протоколів, які б визначали це так, як ви, - це певна суперечка.

У будь-якому випадку ви можете використовувати це або просто:

SSLProtocol TLSv1.2

Чи є різниця, якщо ви вкажете -ALL +TLSv1.2?
Chazy Chaz

"Усі" розширюються до "+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2". Я не бачу користі від використання "-Всі". Власне, з документації не видно, що "-all" є навіть дійсним синтаксисом. Ви можете зробити протокол [+/-], але все це не протокол: httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

Я також боровся з цією проблемою, модифікація конфігурацій з SSLProtocolдирективою не працювала. Я в кінцевому підсумку додав наступне до моєї віртуальної конфігурації хоста:

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

Яка працювала чудово. Більше про SSLOpenSSLConfCmdдирективу ви можете прочитати тут .


4

Вимкнути версію TLS1.0 в Apache.

Якщо у вас кілька віртуальних хостингів, вам доведеться оновити файл усіх конфігурацій, інакше ssl.conf достатньо.

Щоб перевірити підтримку версії TSL:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

Змініть файл конфігурації Apache, vi /etc/httpd/conf.d/web.confвидаліть усі TLS та дозвольте лише TLS1.2.

SSLProtocol TLSv1.2

Затвердити після внесення змін.

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart

-1

Вам потрібно перезапустити послугу Apache, використовуючи наступну команду для відображення змін.

sudo service apache2 restart

Нижче код буде добре працювати для мене, ви можете переглянути цю статтю, щоб отримати детальнішу інформацію, https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

Це нічого не відключить. Він увімкне лише TLSv1.2. І як перезапустити, варіюється від розподілу до дистрибутива і навіть між версіями в тому ж дистрибутиві.
Джеральд Шнайдер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.