Назад | Перейти на главную страницу

Как настроить SSL для виртуального хоста

У меня проблемы с настройкой SSL на виртуальных хостах. Настройка отлично работает на незащищенных сайтах. И я хочу, чтобы он работал с сайтами SSLEnabled.

Мой httpd-vhosts.conf находится ниже:

NameVirtualHost 127.0.0.1
<IfModule mod_rewrite.c>
    RewriteEngine On

    # Redirect /binDebug folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} binDebug
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</IfModule>

        <VirtualHost localhost>
            ServerName localhost
            DocumentRoot "C:\xampp\htdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\xampp\htdocs">            
                AllowOverride All
            </Directory>
        </VirtualHost>


        <VirtualHost virtual.c7beta.com>
            ServerName virtual.c7beta.com
            DocumentRoot "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug"
            DirectoryIndex index.php index.html
             Alias /binDebug "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug/"
            <Directory "C:\Users\zee\Documents\Flex Builder 3\CLOUD\bin-debug">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

        <VirtualHost virtual.app.c7beta.com>
            ServerName virtual.app.c7beta.com
            DocumentRoot "C:\development\app_server\httpdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\development\app_server\httpdocs">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

        <VirtualHost virtual.s1.c7beta.com>
            ServerName virtual.s1.c7beta.com
            DocumentRoot "C:\development\storage_server\httpdocs"
            DirectoryIndex index.php index.html

            <Directory "C:\development\storage_server\httpdocs">
                Options Indexes FollowSymLinks Includes ExecCGI
                AllowOverride All
                Order allow,deny
                Allow from all
    #   SSLRequireSSL

            </Directory>
        </VirtualHost>

Прямо сейчас SSLRequiesSSL прокомментирован. Может ли кто-нибудь проверить это и сказать мне, какие изменения я должен внести, чтобы использовать https, так же, как http работал.

Я внес изменения в конфигурацию, как было предложено: http://robsnotebook.com/xampp-ssl-encrypt-passwords и вроде нормально работает. Но все же, когда я ввожу свой servername.com, он перенаправляется на servername.com/xampp

Пожалуйста, помогите Зишану

Сертификат SSL представляется браузеру во время согласования SSL, которое происходит до запуска уровня протокола HTTP и отправки заголовка Host: на сервер, в котором указывается, какой сайт требуется.

У вас есть два варианта:

  1. Используйте сертификат, действительный для нескольких хостов, через псевдонимы subjectAltName (или подстановочный знак).
  2. Используйте TLS ServerNameIndication, чтобы также отправить желаемое имя хоста сервера во время настройки SSL / TLS

1 легко, если вы можете иметь дело с ЦС, чтобы получить такой сертификат. 2 требует, чтобы и клиент, и сервер поддерживали TLS, чтобы клиент поддерживал SNI (что означает очень современный браузер) и чтобы сервер поддерживал его, что для Apache означает, что необходимы исправления. Видеть https://sni.velox.ch/ для патчей.

Убедитесь, что вы указали номера портов после строки VirtualHost foo.bar, т.е.

<VirtualHost Virtual.app.c7beta.com:443>
...
</VirtualHost>

<VirtualHost Virtual1.app.c7beta.com:80>
....
</VirtualHost>

Это соответствует документации конфигурации apache для настройки виртуальных серверов SSL.