У меня есть сервер под управлением Apache с сайтом HTTPS, работающим на www.example.com
и example.com
. Я пытаюсь добавить новый сайт, который будет пересылать newsite.example.com
на другой порт на том же сервере (контейнер Docker прослушивает этот другой порт).
Мои сайты Apache настроены следующим образом:
www.example.com.conf:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
Redirect permanent / https://www.example.com/
</VirtualHost>
<VirtualHost *:443>
ServerName www.example.com
ServerAlias example.com
ServerAdmin support@example.com
DocumentRoot /home/webadmin/www.example.com/
<Directory /home/webadmin/www.example.com/>
Order allow,deny
Allow from all
Require all granted
Allowoverride All
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
SSLCACertificateFile /etc/apache2/ssl/example.com.ca.crt
Header always set Strict-Transport-Security "max-age=15768000"
</VirtualHost>
newsite.example.com.conf:
<VirtualHost *:443>
ServerName newsite.example.com
ServerAlias newsite.example.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / https://localhost:3000
ProxyPassReverse / https://localhost:3000
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
</VirtualHost>
Сертификат SSL для newsite.example.com обрабатывается приложением docker.
После sudo a2ensite newsite.example.com.conf && sudo service apache2 reload
попытка получить доступ к любому из сайтов не удастся с ERR_SSL_PROTOCOL_ERROR
.
Есть идеи, почему?
У тебя нет SSLEngine On
в определении виртуального хоста "newsite", поэтому он отвечает только на простой HTML-код порта 443. Вам необходимо указать директивы SSL для каждого виртуального хоста, который должен использовать SSL.
Вы можете указать следующие директивы для новостного сайта:
SSLProxyEngine On
SSLProxyCheckPeerName Off
Первое необходимо для проксирования SSL, второе необходимо только в том случае, если сертификат не выдается для localhost
.
Кроме того, вы можете удалить <Proxy>
раздел, так как он нужен только для прямых прокси.