Як увімкнути TLS 1.1 та 1.2 за допомогою OpenSSL та Apache


33

У світлі зростаючої кількості питань безпеки, таких як нещодавно оголошений браузер Exploit Against SSL / TLS (BEAST), мені було цікаво, як ми могли б піти на те, щоб включити TLS 1.1 та 1.2 за допомогою OpenSSL та Apache, щоб гарантувати, що ми не будемо вразливими до таких векторів загрози.

Відповіді:


25

TLS1.2 тепер доступний для apache, щоб додати TLSs1.2, вам просто потрібно додати в конфігурацію віртуального хоста https:

SSLProtocol -all +TLSv1.2

-all видаляє інший протокол ssl (SSL 1,2,3 TLS1)

+TLSv1.2 додає TLS 1.2

для більшої сумісності браузера, яку ви можете використовувати

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

до речі, ви також можете збільшити набір Cipher, використовуючи:

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-GCM-SHA256:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GC$

Ви можете перевірити безпеку свого веб-сайту https за допомогою веб-сканера на зразок: https://www.ssllabs.com/ssltest/index.html


2
Я не впевнений, чому ця посада позначена як "застаріла". Я скористався рекомендованим рішенням, і сайт мого клієнта перейшов від рейтингу "С" у лабораторіях Qualsys SSL до "А".
Майкл Собчак

Привіт, я видалив застаріле попередження, щоб запобігти непорозумінню, це було посилання на стару правильну відповідь. Я щасливий, що ваша безпека зросла;)
Froggiz

На сайтах-доступних / 000-default.conf я додав до віртуального хоста 'SSLProtocol -all + TLSv1.2' і отримав: AH00526: Помилка синтаксису в рядку 31 /etc/apache2/sites-enabled/000-default.conf : Неправильна команда 'SSLProtocol', можливо неправильно написана або визначена модулем, не включеним у налаштування сервера. Дія 'configtest' не вдалося.
Елія Вайс

Ви включили mod_ssl? (команда: a2enmod ssl)
Froggiz

"SSLProtocol: Незаконний протокол 'TLSv1.2'" (OS X 10.10.5)
Майкл


10

Відповідно до журналу змін OpenSSL , до галузі розробки OpenSSL 1.0.1 була додана підтримка TLS 1.2, але ця версія ще не випущена. Можливо, деякі зміни також знадобляться в коді mod_ssl, щоб фактично включити TLS 1.2 для Apache.

Ще одна широко використовувана бібліотека SSL / TLS - це NSS ; він використовується менш відомим модулем Apache mod_nss ; на жаль, поточні версії NSS також не підтримують TLS 1.2.

Ще одна бібліотека SSL / TLS є GnuTLS , і вона робить вигляд, що підтримує TLS 1.2 вже у своєму поточному випуску. Існує модуль Apache, що використовує GnuTLS: mod_gnutls , який також стверджує, що підтримує TLS 1.2. Однак цей модуль здається досить новим і може бути не дуже стабільним; Я ніколи не намагався ним користуватися.


1
@ Сергій, дякую за посилання та інформацію. Мені все ще прикро, що ми не в змозі використовувати ці стандарти, враховуючи їх вік. Мені здається дивним, що нам потрібно бути захисниками наших систем і наших мереж, але ми не можемо використовувати інструменти, які допомогли б покращити наші позиції безпеки. Крім того, схоже, що у людей із веб-браузера є способи допомогти у підтримці цих стандартів на додаток до таких серверів, як Apache та, можливо, IIS.
Джон

2
Ці відповіді все-таки точні, через рік?
Бен Уолтер

2
@BenWalther OpenSSL 1.0.1 вийшов у березні 2012 року за підтримки TLS 1.2. Остання версія на сьогодні - 1.0.1c. Я не впевнений, яка частина решти публікації все ще діє.
Бурхан Алі

6

Ви не можете, OpenSSL ще не пропонує випуску для TLS 1.1.

Один відповідний коментар до /. для цього питання:

Чи ласкаво поясніть немитим масам, як ви реалізуєте підтримку TLS 1.1 та 1.2 у світі, де домінуюча бібліотека OpenSSL ще не підтримує жодного з протоколів у своїх стабільних випусках? Звичайно, ви можете використовувати GnuTLS і mod_gnutls, і я це спробував, але не було сенсу, оскільки жоден браузер крім Opera це не підтримував, і в модулі були деякі дивні глюки. IE 8/9 повинен був підтримувати їх під Vista та 7, але не зміг отримати доступ до сайту, що обслуговується mod_gnutls, коли на стороні клієнта було включено 1.1 та 1.2. Я спробував це заново вчора просто з цікавості, і тепер навіть Opera 11.51 дроселів на TLS 1.1 і 1.2. Так що там. Ніщо насправді не підтримує протоколи. Потрібно зачекати OpenSSL 1.0.1 для TLS 1.1, і ніхто не знає, коли це потрапить на репост.

http://it.slashdot.org/comments.pl?sid=2439924&cid=37477890


1
@ Steve-o, дякую за інформацію. Це невтішно, що TLS 1.1 вийшов з квітня 2006 року, а TLS 1.2 вийшов із серпня 2008 року з оновленнями в березні 2011 року, і ми все ще не маємо можливості їх використовувати.
Джон

4

Адам Ленглі, інженер Google Chrome, зазначає, що TLS 1.1 не вирішив би цю проблему через проблему з впровадженням з SSLv3, над яким всім доведеться обійтися: браузери повинні повернутися до SSLv3 для підтримки помилкових серверів, а зловмисник може ініціювати це пониження рівня.

http://www.imperialviolet.org/2011/09/23/chromeandbeast.html


3

Gnu_tls працює як шарм, і він також реалізує SNI (ідентифікація імені сервера), що дуже корисно у віртуальному хостингу ....

Немає проблем також знайти бінні пакети для mod_gnutls в Linux-дистрибутивах, я використовую його з 2 років і жодних проблем, він також більш ефективний, ніж openssl imho.

Але проблема також полягає в тому, що більшість браузерів не підтримує tls 1.1 або 1.2, тому, будь ласка, почніть поширювати ідею регулярного оновлення браузерів для людей.


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