Я видел несколько похожих постов, но это не помогло мне в моей конкретной проблеме. Поэтому я использую Ubuntu 12.04 на сервере с apache2 на нем. Есть около 5 сайтов, которые работают на Virtualhost и Namebased (используя один и тот же порт). Теперь мне нужна другая страница, которая требует SSL-сертификат. Можно ли запустить только одну страницу под ssl или я автоматически загружаю в нее все, когда настраиваю SSL?
Я знаю, что мне нужно поместить сервер SSL под порт 443 следующим образом:
[ 110]Кто-нибудь знает и хочет мне объяснить, как настроить ssl только для одной страницы?
При установке Apache он создает шаблон для виртуального хоста по умолчанию, но у него также есть виртуальный хост по умолчанию ssl. Скопируйте этот файл и переименуйте его my_secure_site
или что-то еще. Затем просто измените имя домена, корень документа, каталог, а также ключ и сертификат ssl на правильные значения для вашего сайта.
Также убедитесь, что у вас включен модуль ssl в Apache a2enmod mod-ssl
. ports.conf
должен иметь оператор, который заставит Apache прослушивать 443, если виртуальный домен использует ssl, но если у вас есть проблема, вы прослушиваете 443.
У меня была проблема, когда все мои хосты были определил <virtualhost 123.123.123.132>
и когда я попытался определить сайт ssl как <virtualhost 123.123.123.132:443>
. Я получил ошибку, подобную следующей.
[Wed Oct 21 16:37:26 2009] [error] VirtualHost *:80 -- mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results
Чтобы избежать этого, все ваши виртуальные хосты должны явно определить порт <virtualhost 123.123.112.132:80>
решен.
прежде всего проверьте ваше имя хоста, введя
hostname (you will need it later)
enable ssl-mod
sudo a2enmod ssl
руководство с нуля:
Создайте папку для сертификата и ключа ssl
sudo mkdir /etc/apache2/ssl
создать файл .key и .crt и после этого загрузить оба apache2 ...
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
Когда вы вводите все данные для сертификата, убедитесь, что у вас совпадает общее имя с вашим именем хоста, в противном случае вы получите предупреждение в журнале apache2 за отсутствие правильного имени хоста. (не обязательно, но лучше этого избежать)
ваш ssl будет работать только через порт 443, поэтому вам нужно поместить слушатель 443 - ports.conf
в ваш каталог apache, добавив Listen 443
чем создать свою страницу ssl в sites-available
sudo nano / etc / apache2 / sites-available / ssl
<virtualhost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
DocumentRoot /var/www/yourlink
</virtualhost>
загрузить страницу с помощью sudo a2ensite ssl
sudo service apache2 reload
[ 1121] теперь он будет защищать только мою папку yourlink
с помощью SSL.