2015-10-08 1 views
2

Сайт, который был разработан для клиента, должен жить на домене 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) 

Мне нужно настроить что-то по-другому для этого случая использования ли?

ответ

1

Как я понимаю из вашего вопроса, вы используете тот же сертификат для различных веб-приложений, работающих в этом Apache. Поэтому это должен быть сертификат для test.mydomain.com, production.mydomain.com или *.mydomain.com.

Но для этого доступа вам нужен сертификат для test.clientdomain.com. В противном случае имя сертификата не будет совпадать с именем в URL-адресе, поэтому его невозможно будет продолжить. Я не знаю прокси CloudFlare, поэтому я не могу сказать, действительно ли эта ошибка имеет смысл с несоответствием в именах или у вас есть еще одна проблема.

Я должен был попросить дополнительную информацию об этом, но у меня недостаточно репутации для комментария. Надеюсь это поможет.

+0

Это действительно имеет смысл, поэтому я попытался добавить самозаверяющий сертификат для 'test.clientdomain.com', отредактировал конфигурационный файл vhost и перезапустил Apache, но ошибка осталась. – Mekswoll