Сайт, который был разработан для клиента, должен жить на домене test.clientdomain.com
, очевидно, что я не контролирую этот домен.CNAME от внешнего домена до CloudFlare DNS с HTTPS
Я размещаю сайт на test.mydomain.com
, используя CloudFlare как DNS. На моем сервере у меня есть самоподписанный SSL-сертификат, и я использую параметр SSL Full SSL
на CloudFlare.
Поскольку IP-адрес производственного сервера может измениться, я не хочу давать клиенту IP-адрес этого сервера (чтобы он мог добавить A-запись в свой файл DNS). Я хочу, чтобы они добавили запись CNAME, указывающую test.clientdomain.com
на мой test.mydomain.com
. В этом случае, если IP-адрес изменится, я могу изменить его в своем DNS-файле, и клиент не должен беспокоиться. Чтобы выполнить эту работу, я также установил файл vhost, который выглядит так:
<VirtualHost *:80>
ServerName test.clientdomain.com
ServerAlias *.test.clientdomain.com
ServerAdmin [email protected]
DocumentRoot /var/www/html/test.mydomain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/test.mydomain.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Эта настройка отлично работает для HTTP. Когда я хочу добавить HTTPS создать запись виртуального хоста для порта 443, а также:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName test.clientdomain.com
ServerAlias *.test.clientdomain.com
DocumentRoot /var/www/html/test.mydomain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<Directory /var/www/html/test.mydomain.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Я перехожу на прокси CloudFlare поэтому все запросы проксируемых через CloudFlare, но по какой-то причине он дает мне следующую ошибку:
SSL connection error
ERR_SSL_PROTOCOL_ERROR
У меня есть пара других веб-приложений, работающих на этом Apache, все с файлом-vhost для HTTP и HTTPS, и они отлично работают (поэтому нет проблем с самозаверяющим сертификатом), единственная разница в том, что в этом случае запрос сначала переходит в полностью отдельный домен (test.clientdomain.com
) вместо непосредственно в мой собственный домен *.mydomain.com
.
Итак, подведем итог, DNS-файл для test.clientdomain.com
бы:
CNAME test.clientdomain.com -> test.mydomain.com
DNS файл для test.mydomain.com
бы:
CNAME test.mydomain.com -> production.mydomain.com
A production.mydomain.com -> 123.123.123.123 (IP address of my production server)
Мне нужно настроить что-то по-другому для этого случая использования ли?
Это действительно имеет смысл, поэтому я попытался добавить самозаверяющий сертификат для 'test.clientdomain.com', отредактировал конфигурационный файл vhost и перезапустил Apache, но ошибка осталась. – Mekswoll