- PVSM.RU - https://www.pvsm.ru -
В нашем блоге на Хабре мы пишем о развитии облачного сервиса 1cloud [2] (по ссылке [3] можно найти список статей о наших разработках). Также мы рассматриваем интересные вопросы, связанные с технологиями для создания ИТ-проектов. Ранее мы уже рассказывали о масштабировании [4] приложений на Ruby, ускорении загрузки [5] страниц и борьбе с DDoS-атаками с помощью NGINX.
Сегодня речь пойдет о еще об одной важной для любого веб-разработчика теме — работе с SSL. Команда проекта CertSimple в своем блоге опубликовала материал [6] с разбором часто встречающихся вопросов по использованию этой технологии. Мы выбрали основные моменты этой статьи.
В 2015 году веб-разработчики получили о SSL информации больше, чем когда бы то ни было. Если вы регулярно читаете ресурсы, вроде Hack News, то вы, наверное, уже в курсе, что:
Это для начала. Теперь поговорим об ответах на некоторые часто задаваемые вопросы.
Это самый распространенный вопрос, поскольку в SSL Lab, это состояние не отражается. Если Chrome выдает следующее:
connection is encrypted using an obsolete cipher suite
Прописывайте в настройках конфига GCM-шифры перед клиентскими шифрами CBC.
Есть более простой вариант: Mozilla SSL Config Generator [9] показывает оптимальные настройки файла для большинства веб-серверов. Обновите свой конфиг, перезапустите веб-сервер, и проблема решена.
Если вы:
Скорее всего, теперь у вас куча файлов, с одинаковым именем, относящихся к разным дубликатам ключа. Если ваш веб-сервер ругается подобным образом:
Error: Public Key Certificate and Private Key doesn't match
Это означает, что у вас в наличии множество пар ключей, и что ваш сервер пытается использовать один ключ от пары, а сертификат другой.
Для того чтобы выяснить, соответствует ли файл сертификата приватному ключу, проверьте его modulus:
# Check the modulus of a certificate
openssl x509 -noout -modulus -in example.com.crt | shasum -a 256
# Check the modulus of a key
openssl rsa -noout -modulus -in example.com.key | shasum -a 256
# Check the modulus of a certificate request
openssl req -noout -modulus -in example.com.csr | shasum -a 256
Если modulus одинаков, то и приватный ключ совпадает с сертификатом. То есть они принадлежат одной паре. Если modulus разный, значит, файлы созданы независимо и не являются частью одной пары.
Пользуетесь геолокацией? WebTLC? В таком случае ваш браузер нуждается в SSL для чувствительных к проблемам безопасности особенностей HTML5 [11].
Если появляется ошибка invalid https:// setup on localhost
, вы потратите кучу времени на сворачивание окна предупреждения SSL.
Хорошая новость в том, что беспокоиться не о чем. Установка доверенного localhost setup
на ваш Mac займет всего пару минут. Инструкции прилагаются [12].
1024-битный RSA признан небезопасным. Практически каждый сайт сегодня в сети использует его 2048-битную версию. Так почему бы не сделать следующий шаг и не перейти к 4096-битному RSA сертификату?
Проблема в том, что дополнительная нагрузка замедлит обмен данными между браузером и вашим сайтом. Вы можете оценить потери с помощью инструмента [13] Chrome DevTools.
Кроме того, как отметил в Hacker News Джофри Томас [14], ваш промежуточный CA сертификат, вероятней всего, будет 2048-битный RSA. Если вы считаете его недостаточно крепкой защитой, знайте, что промежуточный 2048-битный CA сертификат все еще может быть взломан [15] и использован для подделки сертификата вашей организации.
Если у вас паранойя по поводу надежности, попробуйте сертификат ECDSA вместо RSA. Он определенно надежней и меньше перегружают процессор, чем RSA: 256-битный ECC ключ эквивалентен 3072-битному RSA.
Сегодня с ECC работают браузеры от Windows Vista и выше, OS X 10.9, Android 3 и iOS7. Основная проблема пока с облачными провайдерами: Heroku и AWS CloudFront до сих пор его не поддерживают.
Существует множество форматов, подходящих для PKI и SSL, но в основном серверный софт сейчас использует два из них:
Это двоичный формат, используемый Windows и Tomcat (в конфигурации по умолчанию), с расширением pfx или p12.
Он объединяет приватные ключи, сертификаты, промежуточные сертификаты в один файл.
Вы можете легко менять один формат на другой:
# Convert PEM to PKCS12
openssl pkcs12 -export -inkey privatekey.pem -in cert.pem -certfile cacert.pem -out bundle.p12
# Convert PKCS12 file to PEM
# (you can then chop the files up with a text editor)
openssl pkcs12 -nodes -in bundle.p12 -out bundle.pem
На сегодня все, спасиб за внимание! Не забывайте подписываться на наш блог [16].
Автор: 1cloud.ru
Источник [17]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/109204
Ссылки в тексте:
[1] Image: http://habrahabr.ru/company/1cloud/blog/275335/
[2] 1cloud: http://1cloud.ru/
[3] по ссылке: http://habrahabr.ru/company/1cloud/blog/268547/
[4] масштабировании: http://habrahabr.ru/company/1cloud/blog/272471/
[5] ускорении загрузки: http://habrahabr.ru/company/1cloud/blog/268461/
[6] материал: http://habrahabr.ru/company/1cloud/blog/275107/
[7] Let’s Encrypt: http://letsencrypt.org/
[8] расширенной проверкой: https://certsimple.com/blog/are-ev-ssl-certificates-worth-it
[9] Mozilla SSL Config Generator: https://mozilla.github.io/server-side-tls/ssl-config-generator/
[10] SSL Labs: https://www.ssllabs.com/ssltest/
[11] особенностей HTML5: https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins
[12] прилагаются: https://certsimple.com/blog/localhost-ssl-fix
[13] инструмента: https://certsimple.com/blog/measuring-ssl-rsa-keys
[14] Джофри Томас: https://twitter.com/geofft
[15] может быть взломан: https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning
[16] наш блог: http://habrahabr.ru/company/1cloud/blog/
[17] Источник: http://habrahabr.ru/post/275335/
Нажмите здесь для печати.