Vulpo One

Tag: tls

SPDY и TLS в Apache

SPDY — модная нынче замена протоколу HTTP от Google. Не просто костыль от “корпорации добра”, а поддерживаемый браузерами стандарт и кандидат на включение в HTTP/2.0

Фичи: во-первых, цель — чтобы все ресурсы страницы были отданы за 1 соединение (очень заметно, если на странице подключается много мелких файлов), во-вторых, простота настройки.

Установка в CentOS 6:

  1. качаете и устанавливаете mod-spdy-beta_current_x86_64.rpm (64 бита) или mod-spdy-beta_current_i386.rpm (32 бита)
  2. перезагружаете апачу

всё, у вас SPDY. В nginx тоже должно быть просто, но у меня Apache

Недостатки (а как же без них):

  1. Работает только через SSL (пока)
  2. несовместим с Apache mod_php

Тут в принципе всё решаемо. PHP перенастраивается на работу с FastCGI — и лучше сделать так как можно скорее, т.к. от mod_php много и других проблем, таких как чушь с правами на файлы и требование неоптимальной версии апача — Apache MPM Prefork

С SSL чуть хитрее — многие помнят (а у многих и до сих пор крутится соответствующая древность на серваках) те несладкие времена, когда для поднятия сервака на https:// требовалось каждому хосту раздать по IP-шнику. Так вот, эти времена прошли и можно без нервов сделать веб чуть безопаснее

Надо убедиться что

  1. ваш OpenSSL версии 0.9.8k и старше (и TLS в нем не выключен)
  2. апача собрана с этой версией OpenSSL
  3. установлен mod_ssl

Для CentOS 6 (не 5!) всё собрано соответственно, так что надо просто установить

Всё! У вас сервак с поддержкой SNI, которая позволяет обходить ограничения старых версий SSL

Рекомендуется еще в конфиг Apache добавть такую строку: SSLStrictSNIVHostCheck (on|off)

on закроет доступ старым браузерам, не умеющим работать с SNI (премногоуважаемый всеми IE6, Firefox младше 2.0, Safari младше 3.2.1, Opera младше 8.0, Google Chrome такое с рождения умел), off позволит им заходить, тем не менее, устрашая “неверными” сертификатами. Я подумал чутка и поставил on. Ибо нефиг

SPDY добывать здесь: code.google.com/p/mod-spdy
Инфа про SNI и TLS тут: wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI

Comments