2015-11-23 4 views
0

У меня есть сайт, для которого я создал VHost. Мне нужны HTTP и HTTPS. Хотя HTTP, похоже, работает нормально, всякий раз, когда я обращаюсь к функциям HTTPS, я получаю сообщение «Safari Can not Open The Server». Я подозреваю, что проблема связана с файлом http_vhosts.conf. Ниже приведены записи для данного сайта. Что может быть не так?Виртуальные хосты для HTTPS на Mac Apache 2

<Virtualhost *:80> 
    VirtualDocumentRoot "/Users/xxx/www/sites/xxxxxx" 
    ServerName http://xxxxxx.dev 
    ServerAlias xxxxxx.dev 
    UseCanonicalName on 
    <Directory "/Users/xxx/www/sites/xxxxxx"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
    </Virtualhost> 

    <Virtualhost *:443> 
    VirtualDocumentRoot "/Users/xxx/www/sites/xxxxxx" 
    ServerName https://xxxxxx.dev 
    ServerAlias https://xxxxxx.dev 
    UseCanonicalName off 
    <Directory "/Users/xxx/www/sites/xxxxxx"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
    </Virtualhost> 
+0

Вам нужно включить SSLEngine, а также Provi открытый сертификат и закрытый ключ для использования https. –

+0

Нужны ли мне сертификаты даже для локального развития? – ArtforLife

+0

Да, если вы хотите использовать https. В противном случае, как браузер узнает, является ли он локальным или нет? Вы можете создавать собственные сертификаты самостоятельно и устанавливать их в своем браузере, чтобы избежать покупки реальных, или просто игнорировать ошибки из-за самоподписанных сертификатов. –

ответ

0

Вы должны добавить сертификат:

<Virtualhost *:443> 
    VirtualDocumentRoot "/Users/xxx/www/sites/xxxxxx" 
    ServerName https://xxxxxx.dev 
    ServerAlias https://xxxxxx.dev 
    UseCanonicalName off 
    <Directory "/Users/xxx/www/sites/xxxxxx"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 

    SSLEngine on 
    SSLCertificateFile /etc/apache2/ssl/apache.crt 
    SSLCertificateKeyFile /etc/apache2/ssl/apache.key 

    </Virtualhost> 

Для создания собственного сертификата можно использовать команду:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt 

Кстати, если ваш SeverAlias ​​так же, как ваше ServerName, вы можете удалить ServerAlias, он не требуется