Требования к перенаправлению между двумя доменами с https, имеющими разных владельцев

Требования к перенаправлению между двумя доменами с https, имеющими разных владельцев

Недавно я начал работать в качестве инженера системного оператора. Однако мне все еще не хватает некоторых основ, особенно в отношении сертификатов SSL/TLS и их связи с DNS.

Вот пример использования:

  • Компания, с которой мы имеем дело, имеет свой собственный веб-сайт и домены, с собственными сертификатами SSL. Мы назовем их домен, который я хочу использовать здесьданные.пример.com
  • Мы размещаем наш собственный веб-сайт и домены, с нашими собственными сертификатами SSL. Мы назовем наш домен Я хочу использовать здесьourdata.ourexample.com
  • Компания, с которой мы имеем дело, хочет, чтобы, когда вы идете кhttps://data.example.com, вы фактически получаете содержимоеhttps://ourdata.ourexample.com

Насколько я понимаю, для этого есть две возможности:

  1. (для меня это довольно очевидно) Создайте перенаправление на уровне веб-сервера либо через nginx/apache: это подразумевает, что у обоих доменов по-прежнему есть свои собственные SSL-сертификаты, но это всего лишь вопрос написания нескольких строк в файле конфигурации, не имеющем ничего общего с какой-либо конфигурацией DNS.
  2. (вот тут для меня все становится сложнее) Попросите компанию, с которой мы работаем, предоставить нам информацию о КСО (https://en.wikipedia.org/wiki/Запрос_на_подписание_сертификата) чтобы мы могли сгенерировать файл CSR... из закрытого ключа, который мы используем для генерации наших собственных сертификатов SSL...? Затем мы передаем CSR, и они платят за свой собственный сертификат SSL. Затем они могут создать новый CNAME, который будет перенаправлятьdata.example.com.кourdata.ourexample.com.. Мне сказали, что CSR — это своего рода открытый ключ, поэтому мы можем легко передать его кому-то другому. Но даже если это описание правильно описывает процесс, я честно говоря теряюсь в том, что происходит, где и почему это делается.

Наконец, я заметил, что в случае, когда CSR был сгенерирован с нашей стороны и была создана запись CNAME, когда мы переходим кhttps://data.example.com, мы видим содержаниеhttps://ourdata.ourexample.comи URL, отображаемый в браузере, остаетсяhttps://data.example.com. Я не уверен, связано ли это с какой-то конфигурацией веб-сервера или с «настройками» DNS.

Надеюсь, что то, что я описал, более-менее понятно. Если нет, дайте мне знать, и я постараюсь предоставить больше подробностей.

Примечание: я уже пытался найти ответы на эти вопросы, но, хотя я и понял кое-что, на 100% все еще не ясно.

Спасибо, SilentSib

решение1

Я предполагаю, data.example.comчто будет размещен натвойпомещения и example.comне хочет, чтобы их клиенты видели, что вы предоставляете услуги.

Если это так, то вам просто нужно два Apacheвиртуальные хостыили два nginxвиртуальные серверыкоторые настроены на обслуживание одного и того же контента.

А как насчет сертификатов? Это не очень сложно, если вы понимаете концепциикриптография с открытым ключом.

В принципе (в одном из наиболее используемых алгоритмов,ЮАР), у вас есть два ключа Aи B. Данные, зашифрованные с помощью, Aмогут быть расшифрованы только с помощью B( Aневозможно расшифровать их) и наоборот. Вы распространяете один из них и называете егооткрытый ключ, другой хранится в секрете и называетсязакрытый ключОткрытый ключ используется для шифрования данных, расшифровать которые можете только вы, закрытый ключ также можно использовать для подписи: зашифровав заранее согласованную последовательность байтов (например, хэш сообщения) закрытым ключом, все остальные смогут расшифровать ее и убедиться, что у вас есть закрытый ключ.

Остальные частиинфраструктура открытого ключаявляются:

  • сертификаты: файл, содержащий ваш открытый ключ, ваше доменное имя и некоторые другие данные, подписанные доверенным лицомзакрытый ключ(чей открытый ключ распространяется и пользуется доверием каждого браузера). Толькодоменное имянаходится в сертификате, а не какие-либо другие данные DNS(ну, вы можете попросить добавить свой IP-адрес в сертификат, если хотите), поэтому вам не придется менять их, если что-то изменится.
  • CSR: почти то же самое, что и сертификат. Он содержит ваш открытый ключ, ваше доменное имя и некоторые другие данные, подписанные вашимзакрытый ключ(чтобы показать, что у вас есть ключ). На практике центры сертификации используют только открытый ключ из CSR и иногда доменное имя (если они не берут его из HTML-формы).

Закрытые ключи стоят дёшево (пара секунд для генерации на загруженном сервере). Очень маловероятно, что ваш клиент использует один и тот же закрытый ключ для data.example.comи example.com(если только у них нет обоих имен в одном сертификате). Итак:

  • Если у вашего клиента уже есть сертификат для data.example.com, попросите его отправить вам сертификат и соответствующий ему закрытый ключ (безопасным способом). Он больше не будет их использовать,
  • Если у вашего клиента нет сертификата для data.example.com, сгенерируйтеновыйзакрытый ключ и сертифицируйте его.Неиспользуйте закрытый ключ для других доменов. Обычно генерируется новый закрытый ключ, даже при обновлении сертификата. Если вы поставите ourdata.example.netтот же сертификат, все будут видеть, кто предоставляет data.example.comуслуги.
  • Вы также можете использоватьДавайте зашифруемесли ваш клиент согласен с их условиями. Таким образом, вы можете получить действительный сертификат за считанные секунды и без дополнительных затрат.

Связанный контент