Как заставить общаться хост с доверенным сертификатом и домашний сервер с самоподписанным?
Сайт на хостинге с действительным сертификатом R3 от Let's Encrypt (назовем коротко - Хост)
хочет общаться с
домашним сервером на Python CherryPy (ajax и websocket), (назовем коротко - Сервер), IP белый статичный, алиас на другой домен
===
Если обе стороны без сертификатов по незащищенному соединению, то проблем нет, кроссдоменные запросы проходят с одобрения сервера.
Но оставлять хост без сертификата не хочется.
Выпустил самоподписанный для сервера с помошью openssl, и на IP, и на алиасный домен, и на локалхост, но браузеры ругаются на сертификат, говорят недействительный. Соответственно ни тебе ajax, ни тебе websocket, браузер рубит соединения обвиняя плохой сертификат сервера.
Простым (?) решением выглядит покупка для домашнего сервера, но цены - конь.
Есть хитрые варианты бесплатного решения?
==
UPD:
Я пометил вопрос сложным надеясь на развернутые ответы, если можно, решение степ бай степ. Спасибо.
Снижать порог безопасности браузера не предлагать, сайт на хостинге общедоступный. Еще раз спасибо.
Valentin Barbolin, куда добавить, как?
Общаться... Не знаю более понятного синонима в русском языке, сорри.
Я пометил вопрос сложным надеясь на развернутые ответы.
Общаться... Не знаю более понятного синонима в русском языке, сорри.
Тут понять бы что подразумевается под общение.
Что приходит в голову из твоего описания проблемы
1) Если сервера между собой передают какие-то данные, с использование соответствующих библиотек, следовательно необходимо найти опцию игнорировать сертификат для библиотеки которая устанавливает TLS соединение.
2) C VPS грузиться страница, а с домашнего сервера подгружаются js и устанавливается соединение между браузером и домашним сервером. В там ком случае, извольте, где-ж тут общение между серверами, это обмен данным между сервером и клиентом.
Valentin Barbolin, наша дискуссия в таком ключе ни к чему не приведет. Общение - двухсторонняя передача данных, и плевать каких, библиотека ленинская или "Хеллоу ворлд". Запрос - ответ. Я же указал методы - ajax и websocket
Давайте подождем ответов тех кто понял вопрос и в теме.
А нельзя что-ли завести домашний сервер в домен к серверу на хостинге? И пользоваться Let's encrypt для обоих серверов. ну например main.mysite.com - это сервер на хостинге, а slave.mysite.com - это дома.
ну или получить доменное имя (любое) на домашний сервер, 12 баксов в год - копейки
А нельзя что-ли завести домашний сервер в домен к серверу на хостинге? И пользоваться Let's encrypt для обоих серверов. ну например main.mysite.com - это сервер на хостинге, а slave.mysite.com - это дома.
Приходила в голову такая идея. На хосте "site.com" с сертификатом, копию сертификата положил на дом сервер. Но не понятно как заставить браузер считать сервер поддоменом хоста например "server.site.com". Редирект "адрес поддомена" => "IP сервера" или на другой домен через .htaccess не прокатывает, браузер смотрит на имя конечного адресата.
Или как правильно сделать?
В записях основного домена дополнительная А запись на поддомен возможна?
как заставить браузер считать сервер поддоменом хоста
Никак... Надо просто завести домашний сервер в домен, т.е. прописать в DNS доменпровайдера IP для slave.site.com Потом для slave.site.com просто выпустить новый сертификат, потому что для разных доменов третьего уровня должны быть разхные сертификаты. Ну или делать wildcard. https://community.letsencrypt.org/t/acme-v2-produc...
Надо просто завести домашний сервер в домен, т.е. прописать в DNS доменпровайдера IP для slave.site.com
Да, истина где-то рядом... Как я понимаю, в записях домена кроме А записи site.com на IP хоста должна появиться дополнительная запись server.site.com на IP моего дом сервера или алиасный домен. Так? Какой тип записи и в каком формате? У моего провайдера нет интерфейса записей кроме днс, только через тикет, нужна внятная инструкция. Спасибо.
Как я понимаю, в записях домена кроме А записи site.com на IP хоста должна появиться дополнительная запись server.site.com на IP моего дом сервера или алисный домен. Так
Да, именно так, алиас не нужен, если не нужна какая то переадресация. Просто прописываешь
А запись IP - server.site.com, а в Апаче в настройках прописываешь имя домена (но как настроить апач под имя домена это отдельный вопрос, в сети куча манулов по виртуальному хостингу).
AlexVWill, всё сделал через А запись., дом сервак теперь в поддомене. Хостер оказывается выпускает Let’s Encrypt Wildcard сертификаты если галочку поставить.. Думаю теперь мопэд заведется. Спасибо за помощь! )
Есть. Добавлять в каждый браузер выпущенный самоподписанный сертификат в доверенные. Работает это только так. Либо выпустить в LE сертификат для Сервера. Обычно на LE не выпускают либо когда не доверяют LE, либо когда есть свой CA, либо когда нужен сертификат со свойствами, которые LE не обеспечит.
Почему нельзя выпустить сертификат для Сервера на LE?
Можно, конечно, будет время, разберусь с установкой и автопуском cerbot.
Пока что быстрое и беспроблемное решение в принятом ответе, и оно запустилось. Единственно что там не очень удобно - раз в три месяца копию Wildcard сертификата с хоста на сервер перетаскивать. Прозевал - всё упало. Прямую ссылку на файлы сертификата хостер не даёт.