Несоответствие сертификата SSL, веб-сайт от нескольких поставщиков
У меня есть веб-сайт, размещенный на
*.mydomain.com
, мой веб-сервер Apache в сочетании с PHP будет возвращать / отображать некоторый простой текст на основе предоставленного поддомена.
*.mydomain.com
защищен SSL-сертификатом с подстановочным знаком.
Мне нужно разрешить пользователям перенаправлять запросы из своего домена в мой домен, например:
demo.theirdomain.com
к
demo.mydomain.com
Я сделал это с помощью HTTP, используя записи CNAME, однако я читал, что это не идеально. И мне нужно, чтобы мой веб-сайт обслуживался по HTTPS. Когда я пытаюсь подключиться к сайту на
https://demo.theirdomain.com
через HTTPS я получаю сообщение об ошибке несоответствия сертификата.
Как лучше всего разрешить другим поддоменам безопасно перенаправлять свои запросы в мой домен? ПРИМЕЧАНИЕ. Я НЕ хочу, чтобы пользователи создавали свои собственные сертификаты.
2 ответа
К сожалению, CNAME в этом случае работать не будет. Как вы сказали, ваш сертификат действителен только для
*.mydomain.com
и не будет работать для других доменов. Использование CNAME из
demo.theirdomain.com
к
mydomain.com
приведет к ошибке несоответствия сертификата, потому что клиент был убежден, что он подключается к
demo.theirdomain.com
но сервер (mydomain.com
) предоставляет сертификат на
*.mydomain.com
Вам нужно будет переосмыслить способ, которым вы пытаетесь это сделать. Я бы посоветовал изложить более подробную информацию о том, почему вы это делаете, чтобы мы могли избежать проблемы XY, но я дам вам два возможных решения:
- Другой домен должен использовать переадресацию, например HTTP 302. Веб-сервер будет располагаться по адресу
demo.theirdomain.com
и передать HTTP-ответ 302, чтобы перенаправить клиента наmydomain.com
. Это позволит клиенту понять, что текущий сервер являетсяmydomain.com
сервер и что*.mydomain.com
сертификат действителен для него. Если это не идеально, потому что вы хотитеdemo.theirdomain.com
чтобы быть единственным видимым доменом, попробуйте №2. Однако это перенаправление, вероятно, является лучшим решением для вас. - Обратный прокси-сервер может находиться на
demo.theirdomain.com
и обеспечить сквозной / бэкэнд наmydomain.com
. Преимущество этого заключается в том, что обратный прокси-сервер будет обрабатывать переходы сертификатов, поскольку соединение завершается вdemo.mydomain.com
и поэтому сертификат там (надеюсь, настроен правильно) действителен. Новое соединение инициируется на обратном прокси-сервере дляmydomain.com
и считается действительным. Вы сказали, что не хотите, чтобы пользователи создавали свои собственные сертификаты, поэтому это решение, вероятно, не идеально для вас, тем более что оно также включает настройку обратного прокси (хотя они могут настроить запись DNS дляdemo.theirdomain.com
чтобы указать IP-адрес на обратном прокси-сервере).
Вы могли бы иметь сертификаты на своей стороне для их доменов, но похоже, что это было бы невозможно для вас. Я бы посоветовал не использовать сертификаты с подстановочными знаками везде, где это возможно, поскольку они не являются хорошей практикой безопасности.
Если ваш пользователь хочет перенаправить свой домен
https://demo.example.net
в ваш домен
https://demo.example.com
возможны только две конфигурации:
- Они запускают веб-сервер TLS с действующим сертификатом, который перенаправляет (используя перенаправления HTTP) все на
demo.example.com
, - Вы управляете
VirtualHost
названныйdemo.example.net
с действующим сертификатом. В этом случае вы можете избавиться от перенаправления и напрямую обслуживать контент.
В любом случае они должны получить действующий сертификат для
demo.example.com
, но все становится проще, если вы используете сертификаты Let's Encrypt. В этом случае:
- клиенту просто нужно разрешить вам использовать
demo.example.net
домен в соответствии с условиями использования Let's Encrypt, в частности, вы должны выполнить условие:Вы гарантируете ISRG и широкой общественности, что являетесь законным регистрантом доменного имени в Интернете, которое является или будет являться субъектом вашего сертификата, или что вы являетесь должным образом уполномоченным агентом такого регистранта.
- для получения такого сертификата вам достаточно
demo.example.net
указать на ваш адрес (что уже сделано) и использовать клиент ACME, например certbot, для получения и обновления сертификатов.