- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день.
Имеютмся 2 VPS с Centos 6.6
Установлены ISPmanager
Создан бесплатный SSL сертификат в StartSSL + Бонус этого же сертификата на субдомен
На каждом сервере свой выделенный IP
На первом сервере установлен основной домен.ру
На втором сервере установлен субдомен.домен.ру
На первом сервере с основным доменом работает только Apache
На втором Установлены Nginx+Apache
Делаю проверку SSL на сайте https://www.ssllabs.com/, основной домен в норме, а вот субдомен начинает чудить, пишет что This site works only in browsers with SNI support. Соответственно в IE8 под WinXP сертификат не является доверенным, а IE в ХР впринципе не поддерживает SNI, т.к. там нет TLS (ну или както в том плане вобщем), хотя основной домен работает. Естественно и там и там включена (для теста) строчка ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
Вопрос. Что могло повлиять, что субдомен так странно себя ведет. Может я чего накрутил в настройках? Опять же, очистил nginx.conf и создал субдомен на сервере заново. Результат одинаков, субдомен отказывается показывать сертификат доверенным в IE8.
ps
установил на основной домен nginx. Теперь теже грабли что и на субдомене.
Отсюда вопрос. Что нужно сделать с nginx, чтобы он перестал делать эту ерунду с SNI, а IE8 начал понимать сертификат?
Кстати строчка ssl_protocols TLSv1 TLSv1.1 TLSv1.2; не отключает SSLv3
Кстати строчка ssl_protocols TLSv1 TLSv1.1 TLSv1.2; не отключает SSLv3
Это неправда, отключает.
Это неправда, отключает.
Да, попробовал строчку в http{ записать, отключил.
Результат одинаков, субдомен отказывается показывать сертификат доверенным в IE8.
ps
установил на основной домен nginx. Теперь теже грабли что и на субдомене.
Отсюда вопрос. Что нужно сделать с nginx, чтобы он перестал делать эту ерунду с SNI, а IE8 начал понимать сертификат?
Не видя домен и конфиг, сказать что либо точно невозможно.
Но рискну предположить, что указана не вся цепочка сертификатов.
Но рискну предположить, что указана не вся цепочка сертификатов.
В сведениях сертификата данные о самоподписном сертификате на сервере, видимо тот, что используется ISPmanager-oм.
Nginx v1.8
Конфиг полный стандарт, даже не знаю есть ли смысл такой выкладывать, любые другие манипуляции к эффекту не приводят.
Сертификаты установлены правильно, и подключал со степлингом промежуточные сертификаты.
Смысл в том, что в других браузерах всё норм. Но IE в XP не поддерживает SNI. Это когда на одном сервере находятся несколько доменов с SSL сертификатами и с помощью nginx можно выбрать и настроить каждый домен со своим сертификатом. Первый запрос к серверу, когда приходит по https, сервер отдает неглядя первый попавшийся SSL, но ему нужно отдать правильный. Короче SNI спасает в этом плане и отдает из 10 доменов и 10 сертификатов нужный.
Но у меня вопрос в другом, SNI мне наоборот не нужна. На сервере 1 домен. Возможно глупая железка видит как второй домен сервер Апача, или локалхоста или даже http сервер ISPmanager (он как раз таки подписан самописным сертификатом), или ip адрес на порту 81 (nginx+apache). В настройках сервера указан основной домен к ip адресу уже по умолчанию, т.е. если вводим IP адрес в строке, то запускается сайт на домене, а не выдается ошибка 403, 404. В общем я не пойму что он видит и что ему нужно.
Также пытался писать пути к сертификатам прям в секции http{}, nginx это допускает, если ставим один wild сертификат которым подписываем все домены. Не помогает. Получается, что самоподписной сертификат гдето еще раньше засвечивается.
Пыхтел с настройками, ничего не получается. Но я вижу, что на других сайтах включен nginx и сайты отлично работают по https в ie8 XP с шифрацией RC4 (TLS), и это единственная шифрация в ie которую можно включить без уязвимых SSLv3. Хотя опять же, не имеет это никакого значения какая шифрация, суть в том что nginx выдает неправильный первый попавшийся сертификат сервера, хотя в конфиге nginx указан лишь один доверенный сертификат.
Я понимаю, что судя по статистике пользователей на IE8 остался 1,1% и к тому же половина боты с поддержкой JS, и понимаю что поддержку XP пора прекращать... новсё же, может кто подскажет как вылечить эту болезнь.
зы
В общем попытаюсь сделать еще тест, удалить самоподписной сертификат в ISP, вставив туда нормальный.
---------- Добавлено 01.06.2015 в 01:01 ----------
Всё. Победил.
Объясню у кого такая же проблема.
Это конфликт в nginx изза панели ISPmanager
В конфиге сервера nginx видим строчку include /usr/local/ispmgr/etc/nginx.domain;
Я думаю все понимают, что вставляется дополнительная секция из ISP по этому пути.
Строчка находится в самой первой секции http{}, соответственно самоподписной сертификат от ISP берет на себя приоритет и поэтому такая трабла в IE XP.
Есть 2 решения, либо удалить из nginx.domain пути на сертификаты и прописать в nginx.conf в секции http{} "правильные" подписанные сертификаты, либо заменить файлы сертификатов ISP
ssl_certificate /usr/local/ispmgr/etc/manager.crt;
ssl_certificate_key /usr/local/ispmgr/etc/manager.key;
manager.crt manager.key выданные в ЦС, что я и сделал. Ребут сервера и всё норм.
Еще дополню про ssl stapling.
Про пост выше. Кое какие глюки остались, поэтому пошел дальше и закомментил к черту строку include /usr/local/ispmgr/etc/nginx.domain;, сделал распределение сертификатов в секциях server. Из секции http нужно удалить. Об этом ниже.
-----------------------------------------
Часто сижу на этом форуме, люди здесь мне помогают, решил тоже помоч кому нибудь, т.к. не мог найти интструкции которая бы заработала у меня.
Итак. Имеем сертификаты от StartSSL 2 штуки. Nginx обязательно обновляем до версии 1.8
Так как у меня 2 сервера с распределенной нагрузкой, я подписал их одним сертификатом, чтобы не запрашивались лишние сретификаты и не расла изза этого дополнительная нагрузка. StartSSL позволяет зарегистрировать сертификат на домен + субдомен. Ктото регает на субдомен вида www.site.ru, я же регал на subbomain.site.ru который у меня находится на 2 сервере. Отсюда возникла трабла, www получился без сертификата, что дало ошибку в неподписанном SSL на www.site.ru. Пришлось зарегать второй сертификат на этот же домен site.ru + "субдомен" WWW.site.ru Вообще наврено некорректно www называть субдоменом. Ну пускай будет им.
Я надеюсь понятно будет, мой первый сервер site.ru, второй сервер subdomain.site.ru, поэтому сертификат удачно разместился на двух физических серверах. Типа зачем? Надо мне так!
2 сертификат по сути был нужен только ради переадресации на site.ru без www. Т.к. в nginx ну и вообще по принципу работы SSL протокола, переадресация с www на без www при отсутствии второго сертификата не заработает. Можете проверить, как пример, зайдите на сбербанк онлайн или робокассу, и допишите к адресу www. Всё поймете. Для меня странно, что такие крупные конторы так наплевательски к этому отнеслись.
Короче, как сделать так чтобы при всей этой канителе заработал SSL стэплинг?
Да он собственно и без этой канители не работал, все инструкции что я находил были неполными, программерам не свойственно всё доходчиво объяснять, отсюда и инструкции как из жопы.
Разберу пример одного сервера, т.к. второй мой сервер ничем не отличается от первого кроме того что на нем установлен субдомен.
Итак, имеем ISPmanager-Lite 4.4.10.23, естественно с наикривейшей документацией.
Домены по стандарту создаем в панеле, указываем галочку SSL, выбираем сертификат введенный вручную. До этого его нужно создать в панеле с помощью копипастинга, инструкции найдете, они сносные, хотя тоже там запарка с последним нижнем полем, черт пойми какой сертификат вводить, вообще по хорошему туда нужно вводить промежуточный серверный с именем файла sub.class1.server.ca.pem, есть еще клиентский, будьте внимательны в названии. Вставлять так, чтобы на конце не было переноса и пробела, иначе ошибка.
Если SSL у вас заработал в стандартном конфиге, идем далее, настраиваем стэплинг.
Так будет выглядеть секция для редиректа с https www на https без www
server {
server_name www.site.ru;
listen 111.111.111.111:443 ssl spdy;
ssl_certificate /var/www/httpd-cert/sss/cert.chained.crt; #это ключ самого сертификата, но прикол в том, что ISPmanager его уже объединил с промежуточным, и тем не менее стэплинг ничерта не работает.
ssl_certificate_key /var/www/httpd-cert/sss/decryptprivat.key; #это ваш декриптованный private key, криптованный не заработает
ssl_trusted_certificate /var/www/httpd-cert/sss/ca.pem; #а это чудо и есть наш файл для стэплинга, на название не смотреть, оно совпадает с названием некого сертификата от StartSSL, но готовится вручную иначе.
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 5m;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8;
add_header Strict-Transport-Security 'max-age=15778463';
return 301 https://site.ru$request_uri;
}
Как приготовить сертификат для ssl_stapling в StartSSL?
Строгая последовательность!
Открываем наш Notepad++
Копируем и вставляем туда код сертификата выданный на домен, при скачивании со StartSSL он имеет как правило название вашсайт.crt либо копируйте из меню Retrieve Certificate на сайте StartSSL .
Смотрим чтобы после ---- не было пробелов, нажимаем энтер, копипастим следущий сертификат, с названием Class 1 Intermediate Server CA sub.class1.server.ca.pem (ВНИМАНИЕ, ТАМ СНОВА В НАЗВАНИИ server, есть такой же но client, у нас 1 класс, т.к. серт бесплатный), далее снова без пробелов и жмем энтер, с новой строки копипастим StartCom Root CA (PEM encoded) ca.pem.
Любой лишний пробел выпьет у вас крови.
Итого 3 сертификата.
Всё, сохраняем. Готово. Копируем в туже папку где остальные серты, ну и прописываем пути в nginx ssl_trusted_certificate /var/www/httpd-cert/sss/ca.pem;
service nginx restart
Забыл, это я привел пример конфиг редиректа, на основной конфиг всё тоже самое НО:
1. server_name site.ru;
2. без редиректа return 301 https://site.ru$request_uri;
3. все названия файлов сертификатов другие (это в моем случае, т.к. на www подключал другой серт, в вашем случае если серт выписали один на www и без www то все пути повторяются.
4. комментим строку отвечающую за доступ к ISP по адресу хх.хх.хх.хх:1500 #include /usr/local/ispmgr/etc/nginx.domain; иначе будете с бубном плясать как я.В IE под XP не будет работать и не будет работать редирект. браузер заматюкается на неподписанный серт ISP см. пост выше.
5.теперь доступ к ISP по адресу site.ru:1500, в том случае ели на вашем сервере 1 домен и он установлен по умолчанию к IP адресу сервера. Как проверить? Если заходим на хх.хх.хх.хх то перебрасывает на site.ru, ISP по адресу https://xx.xx.xx.xx:1500/ispmgr более не доступен, привыкайте.
6. Пункты 3-5 в вашем случае могут быть не нужны. остальные редиректы с http на https не привожу. Там главное помнить, что будет несколько секций server, отдельно под www http порты 80 и 443.
Как проверить что всё гууд?
1. Проверяем на логи ошибок nginx. Заходим на сайт, смотрим ошибки. Если есть типа 4567#0: OCSP_basic_verify() failed (SSL: error:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:Verify error:unable to get issuer certificate) while requesting certificate status, responder: ocsp.startssl.com значит вы накосячили.
На сайт заходить только с винды выше XP и с браузером chrome, На ХР степлинг не работает! На многих браузерах тоже.
2. Если ошибок нет, то тестим дальше.
3. Заходим в консоль, команда
openssl s_client -connect site.ru:443 -tls1 -tlsextdebug -status < /dev/null| grep OCSP
Если всё правильно выдает кучу текста про сертификаты и их промежутки а также OCSP Response Data:
OCSP Response Status: successful (0x0)
Если ошибка то... OCSP response: no response sent
3. Тестим наш серт. https://www.ssllabs.com/ssltest/index.html После окончания внизу примерно будет зеленая строка OCSP stapling Yes.
4. Идем в магазин за пивом. Купите дешманское - работать перестанет.
Вот что бывает, если работать с ispmanager через винду.