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

Ограничить прямой IP-доступ к сайту - SSL

У меня есть CentOS 6 VPS с 5 сайтами и Let's Encrypt установлен и работает на всех сайтах. Когда я получаю доступ https: // vps-ip, он всегда указывает на первый сайт, настроенный в vhosts-ssl-letsencrypt.conf (я изменил конфигурацию и поместил другой сайт в начало конфигурации, чтобы проверить его). Я пытался добавить:

<VirtualHost ip:443>
    ServerName ip
    Redirect 403 /
    ErrorDocument 403 "No"
    DocumentRoot /usr/local/apache/htdocs
    UseCanonicalName Off
    UserDir disabled
</VirtualHost>

но сайты недоступны через ssl

or <VirtualHost *:443>... 

дает мне эту ошибку: [error] Сервер должен поддерживать SSL, но не имеет настроенного сертификата [Подсказка: SSLCertificateFile] ((null): 0)

<VirtualHost *>...

без изменений

http: // vps-ip указывает на правую страницу приветствия vps. Любые идеи?

Простой ответ: вы не включили SSL для своего *:443 vhost в вопросе выше. Apache не начинает внезапно использовать SSL для виртуального хоста только потому, что вы помещаете его на порт 443, это требует настройки.

Также эта директива не делает ничего разумного:

 Redirect 403 /

И вы не должны использовать

<VirtualHost *>

Это вызовет всевозможные проблемы. Использовать IP:port или *:port и ничего больше. Также не смешивайте эти два типа аргументов, если вы точно не знаете, что делаете.

РЕДАКТИРОВАТЬ: В ответ на первый комментарий: Добавить default Виртуальный хост SSL. Он должен быть первым в списке для порта 443 в выводе apachectl -S и добавьте IP-адрес в качестве ServerName или ServerAlias

EDIT2: в ответ на дальнейшие комментарии. Кажется, у вас не включен SSL. Для включения SSL на вашем виртуальном хосте необходимы как минимум три директивы SSL, они подробно описаны здесь: http://httpd.apache.org/docs/current/ssl/ssl_howto.html