Я искал в Google и до сих пор не нашел страницу, которая бы касалась моей ситуации, что странно, потому что я уверен, что это пытались тысячи, если не миллионы, раз прежде.
Я хочу размещать сайты разработки у себя дома, чтобы клиенты могли протестировать их, прежде чем мы развернем их в любом виде хостингового решения, которое они хотят для производства. Вот что я использую:
Все это отлично работает, но теперь я хочу использовать https для всех своих поддоменов, поэтому я купил подстановочный сертификат (хотите верьте, хотите нет, сертификат плюс динамический DNS работает на 36-41% дешевле. чем ежемесячная плата, которую мой интернет-провайдер взимает за один фиксированный IP-адрес), и я успешно установил его, используя соответствующие директивы SSLCertificate * в тегах VirtualHost.
Проблема в том, что браузер жалуется на ненадежное соединение, потому что, несмотря на так называемое «маскирование», он по-прежнему понимает, что оно перенаправляется через динамический домен DNS.
foobar.dnsalias.net:8081 uses an invalid security certificate.
The certificate is only valid for the following names:
*.mydomain.com , mydomain.com
(Error code: ssl_error_bad_cert_domain)
Я думал, что могу использовать некоторые директивы mod_rewrite, но либо я не нашел правильную комбинацию шаблонов и флагов RewriteCond и RewriteRule, либо я неправильно понимаю, что происходит с «пересылкой с маскированием».
RewriteEngine on
RewriteCond %{HTTP_HOST} foobar.dnsalias.net [NC]
RewriteRule ^(.*) https://dev1.mydomain.com:8081/$1 [P]
Может кто-нибудь объяснить, как это сделать?
Короче говоря, это не сработает.
Ваш динамический DNS-провайдер отвечает HTTP-перенаправлением с dev1.mydomain.com на адрес foobar.dnsalias.net:8081; это единственный способ перенаправления на основе заголовка HTTP Host и одновременного изменения номера порта.
Единственный способ, который я могу придумать, - это записать CNAME something.mydomain.com в foobar.dnsalias.net и настроить обратный прокси-сервер для трафика сервера с соответствующего сервера разработки.
Таким образом, когда ваш клиент (Acme Incorporated) запускает https://acme.mydomain.com, DNS преобразуется непосредственно в ваш динамический IP-адрес (через CNAME), и ваш обратный прокси-сервер будет видеть заголовок хоста как «acme.mydomain.com». Затем он может перейти на dev2.mydomain.com, чтобы получить соответствующий контент.