LINUX.ORG.RU

HTTPS now everywhere

 , , ,


0

2

Здравствуй, ЛОР!

В связи с наметившимся отказом производителей браузеров от HTTP в пользу HTTPS у меня родился вопрос.

Есть сервер, на котором крутится сайт с несколькими доменами. Сейчас домена 3, но это число будет расти и постепенно достигнет ~30. Каждый домен - отдельный сайт.

На каждом домене имеется по несколько поддоменов, являющиеся сайтами дочерних организаций. Каждая дочерняя организация может по желанию привязать свой домен и сайт этой организации станет доступен по поддомену основного домена и по привязанному домену.

Все работает без Apache VirtualHost и находится в одном DocumentRoot. Все это дело обрабатывает некоторый единый для всех доменов и поддоменов самописный движок, который определяет какой домен/поддомен запрошен и выполняет соответствующие этому домену действия.

Внимаение вопрос: как к этому добру прикрутить HTTPS?

★★★★★

Прочитать ман по HTTPS к своему апачу если в интернет смотрит он. Либо nginx/что там если он у тебя перед апачем. CMS, PHP и прочее — побоку, если ты не хочешь аутенфикацию по HTTPS-сертификатам. Купить wildcard-сертификаты на домены либо если есть желание возиться и число дочерних организаций достаточно фиксировано — можно и не wildcard, хотя зачем? Свои домены дочерних организаций — ещё сертификаты. Удачи.

x3al ★★★★★ ()
Последнее исправление: x3al (всего исправлений: 1 )
Ответ на: комментарий от x3al

Предположим, я куплю Wildcard сертификат скажем на 3 домена, смогу ли я добавить к нему еще домены? Или надо будет покупать снова?

r0ck3r ★★★★★ ()
Последнее исправление: r0ck3r (всего исправлений: 1 )
Ответ на: комментарий от r0ck3r

на каждый домен второго уровня нужен будет свой сертификат

Harald ★★★★★ ()
Ответ на: комментарий от x3al

понял, Wildcard - один основной домен и неограниченное количество поддоменов.

Предположим, я куплю этой сертификат для *.домен1.рф, а как поступить с *.домен2.рф? Куплю еще один сертификат, а как настроить Apache?

r0ck3r ★★★★★ ()

Все работает без Apache VirtualHost и находится в одном DocumentRoot.

Кхммм. И как ты собираешься определять, какой сертификат отдавать браузеру?

Этот костыль тебе аукнется.

x3al ★★★★★ ()
Ответ на: комментарий от r0ck3r

ну блин, что теперь :)

сертификаты ещё можно получать на IP адрес вместо домена, но я точно не знаю, будет ли браузер открывать без ворнингов страницы по доменному имени, или это только работает если открывать сайты по IP

Можешь погуглить в этом направлении

Harald ★★★★★ ()
Ответ на: комментарий от r0ck3r

У тебя выбор между реализацией HTTPS как протокола (!) в твоём костыле, раскидывающем по доменам и переводом всего на как минимум виртуалхосты.

Я верю, что ты сделаешь правильный выбор.

x3al ★★★★★ ()
Ответ на: комментарий от r0ck3r

нет виртуалхостов

а придётся их сделать..

и в каждом из них — свои (индивидуальные) настройки SSL

пример:

<VirtualHost *:443>
    ServerName "ДОМЕН"
    ServerAlias "www.ДОМЕН"
    DocumentRoot "КАТАЛОГ_ДО_САЙТА/htdocs"
    #SuexecUserGroup "ПОЛЬЗОВАТЕЛЬ" "ПОЛЬЗОВАТЕЛЬ" # это если есть Suexec
    
    SSLCertificateFile "БЛАБЛАБЛАБЛА/ssl-cert.pem"
    SSLCertificateKeyFile "БЛАБЛАБЛАБЛА/ssl-cert-key.pem"
    SSLCertificateChainFile "БЛАБЛАБЛАБЛА/ssl-cert-chain.pem"
    
    CustomLog БЛАБЛАБЛА
    ErrorLog БЛАБЛАБЛА
</VirtualHost>

предварительно включить SSL — так (например):

LoadModule ssl_module БЛАБЛАБЛА/mod_ssl.so

# ... ... ... 

Listen 443
<VirtualHost *:443>
        DocumentRoot "/srv/http/default.http/htdocs"
        #SuexecUserGroup "default-web-user" "default-web-user" # это если есть Suexec
        SSLCertificateFile "/srv/http/default.http/ssl-cert.pem"
        SSLCertificateKeyFile "/srv/http/default.http/ssl-cert-key.pem"
        CustomLog "/var/log/httpd/default.access_log" combined
        ErrorLog "/var/log/httpd/default.error_log"
</VirtualHost>

то есть где-то отдельно включать SNI — *не_требуется*. всё из коробки уже должно работать

user_id_68054 ★★★★★ ()
Ответ на: комментарий от r0ck3r

А, ещё ты можешь использовать multiple domains certificate, но... если ты собираешься часто добавлять туда домены, то остаётся пожелать удачи.

x3al ★★★★★ ()

кстати.. интересно...

если Мозила хочет избавиться от «http://» — то не хочет ли она сделать чтобы поумолчанию web-сайт открывался бы по «https://» ?

в ситуациях когда мы просто в адресной строке набираем web-домен сайта без протокола (например — www.example.com ) ..

а иначе лицемерие какое-то получается — говорить "http плохой!" и при этом поощрять его использование!

получается, что каждый https-сайт должен иметь ещё и http-с-переадресацией... пффф....

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 3 )
Ответ на: комментарий от user_id_68054

Не всё сразу. Должна быть плавная миграция. Сначала HTTP можно объявить deprecated, а лишь через некоторое время полностью убирать.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от user_id_68054

в ситуациях когда мы просто в адресной строке набираем web-домен сайта без протокола

многие криворукие админы оставили неработающую https-версию.

Ну и тот же https everywhere уже сейчас показывает, что уйма веб так-называемых-мастеров, особенно в этой стране, не умеют пропускать протокол при подключении javascript'ов. Со всеми вытекающими.

x3al ★★★★★ ()
Ответ на: комментарий от Harald

сертификаты ещё можно получать на IP адрес вместо домена, но я точно не знаю, будет ли браузер открывать без ворнингов страницы по доменному имени, или это только работает если открывать сайты по IP

Должен. Иначе совсем песец.

И тут должен быть не варнинг, а «Валим отсюда, тут фишинг» большими буквами.

x3al ★★★★★ ()
Ответ на: комментарий от x3al

фишка в том, чтобы поддомены можно было добавлять/менять динамически

Конечно, можно сделать так, чтобы висел демон и смотрел что добавили пользователи и делал запись VirtualHost, но это, по-моему, еще больший костыль

r0ck3r ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

Не всё сразу. Должна быть плавная миграция. Сначала HTTP можно объявить deprecated, а лишь через некоторое время полностью убирать.

боюсь что скачкообразного — прыжка тут не избежать.. :-)

даже если ты хоть 300 раз объявишь «http://» устаревшим!

...всё равно до тех пока пока поумолчанию не начнут открываться web-домены по «https://» — до этих пор производители web-сайтов не задёргаются.. а так и будут сидеть на «http://».. :-)

я даже и не знаю какие нерадикальные меры можно придумать применять, чтобы согнать всех из «http://» на «https://».. :-)

быть может Мозила должна сделать например так: если человек открывает http-версию сайта , то проигрывается самая унылая музыкальная песня Филлипа Кирокорова. или что-то такое в этом духе! :-)

а вот акция "убрать все технические новшества для http и сделать их лишь для https" — тут не сработает для большенства web-сайтов. так как большенству web-сайтов и не нужны технические-всякие-штуки :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от r0ck3r

Конечно, можно сделать так, чтобы висел демон и смотрел что добавили пользователи и делал запись VirtualHost, но это, по-моему, еще больший костыль

как раз наоборот, нормальное решение

Harald ★★★★★ ()
Ответ на: комментарий от x3al

> в ситуациях когда мы просто в адресной строке набираем web-домен сайта без протокола

многие криворукие админы оставили неработающую https-версию.

Ну и тот же https everywhere уже сейчас показывает, что уйма веб так-называемых-мастеров, особенно в этой стране, не умеют пропускать протокол при подключении javascript'ов. Со всеми вытекающими.

ну вот как раз сразу резко и научатся! :-)

user_id_68054 ★★★★★ ()
Ответ на: комментарий от user_id_68054

я даже и не знаю какие нерадикальные меры можно придумать применять, чтобы согнать всех из «http://» на «https://».. :-)

Выдавать страшное предупреждение. Но позволять заходить на сайт.

Chaser_Andrey ★★★★★ ()
Ответ на: комментарий от Chaser_Andrey

Выдавать страшное предупреждение. Но позволять заходить на сайт.

надеюсь это предупреждение будет отличаться от того, которое показывается при заходе на невалидный «https://» .. :-)

а иначе такие меры приведут лишь к тому, что люди будут думать — "а, вот опять это предупреждение, которое как обычно возникает и нужно нажимать кнопку Я_На_Всё_Согласен"

а когда люди будут заходить на невалидный «https://» — и им тоже будет возникать предупреждение — и они автоматическим движением руки также будут нажимать туже кнопку :-)

а потом интернет-провайдеры будут заниматься подменой TLS-сертификатов и пользователи будут сидеть с лицами «okay_face.jpg» :-)

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 3 )
Ответ на: комментарий от user_id_68054

если Мозила хочет избавиться от «http://»

То, по-моему, она растеряет последних поклонников, по крайней мере в России. Огромная масса сайтов не только сидит на http без желания куда-то переползать, но и в принципе уже не может поменяться на https (отсутствие поддержки разработчиков и т.п.)

У Мозиллы сейчас совсем не тот вес, чтобы пытаться так нагло перекраивать рынок. Даже Гугл при всей наглости и то осторожничает тут.

KRoN73 ★★★★★ ()
Ответ на: комментарий от KRoN73

У Мозиллы сейчас совсем не тот вес, чтобы пытаться так нагло перекраивать рынок. Даже Гугл при всей наглости и то осторожничает тут.

Думаю, Гугл подтянется. Тем более у них уже в планах дополнительная маркировка http как небезопасного

https://www.chromium.org/Home/chromium-security/marking-http-as-non-secure

Vovka-Korovka ★★★★★ ()
Ответ на: комментарий от r0ck3r

Конечно, можно сделать так, чтобы висел демон и смотрел что добавили пользователи и делал запись VirtualHost, но это, по-моему, еще больший костыль

это нормальное поведение, под которое у серверов есть мякий reload, вместо restart. У меня на написание такой дряни ушёл день, и два дня - на автоматический скрипт в chroot-окружении (с тестированием, и ох, ещё и это отвалилось?)

alexmaru ()
Ответ на: комментарий от t184256

ну убрать кнопку для всех не-private-network-сайтов, фиг ли делов-то.

private-network-сайты защищены ещё слабее чем public-network-сайты ..

к тебе школьник-хакер подрубится по WiFi в твою private-сеть и начнёт куралесить на уровне Ethernet-протокола свою мутную фигню с подменой ip-адресов...

...а самоподписанный сертификат (https, который ты ранее уже подтврждал в браузере) — тебя бы спас бы в этой ситуации.

даже CUPS уже и тот работает внутри private-network — по https . а уж самодельные внутрикорпоративные сайты и подавно могут. :-)

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1 )
Ответ на: комментарий от t184256

погоди.. я запутался...

а про какую кнопку ты имел ввиду? :-D

если про кнопку «разрешить этот самоподписанный сертификат?» — то да — пусть убирают для не-private-network..

вообщем ты прав!

user_id_68054 ★★★★★ ()
Последнее исправление: user_id_68054 (всего исправлений: 1 )
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.