Мы решили запустить безопасный веб-прокси через Apache. мы присвоили серверу доменное имя, а затем купили SSL-сертификат для этого домена, а затем применили его в Ubuntu 12.04 (точнее) с Apache/2.2.22.
Когда я запускал сервер по умолчанию на сайте (HTTP), то есть только с IP в качестве виртуального хоста, прокси работал нормально.
Тогда я решил сделать SSL для этого прокси-сервера, так как SSL для IP-адреса не разрешен, мы выбрали домен и поэтому пошли дальше.
Также я включил mod_rewrite, чтобы все HTTP-запросы проходили через сайт SSL
Вот мой HTTP виртуальный хост и конфигурация виртуального хоста SSL соответственно,
<VirtualHost 12.12.12.12:80>
ServerAdmin webmaster@localhost
ServerName example.net
ServerAlias www.example.net
ProxyRequests On
ProxyVia On
<Proxy *>
Order allow,deny
Deny from all
Allow from 104.12
</Proxy>
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
Конфигурация SSL
<IfModule mod_ssl.c>
<VirtualHost 12.12.12.12:443>
ServerAdmin webmaster@localhost
ServerName example.net
ServerAlias www.example.net
ProxyVia On
ProxyPass / https://127.0.0.1:443/
ProxyPreserveHost On
SSLProxyCheckPeerCN off
#ProxyPreserveHost on
ProxyRequests On
SSLEngine on
SSLProxyEngine On
SSLCertificateFile /etc/ssl/ssl_proxy/example_net.crt
SSLCertificateKeyFile /etc/ssl/ssl_proxy/example.net.key
SSLProxyVerify require
SSLProxyVerifyDepth 10
SSLProxyMachineCertificateFile /etc/ssl/ssl_proxy/example.net.csr
SSLProxyCACertificateFile /etc/ssl/ssl_proxy/example_net.ca-bundle
SSLStrictSNIVHostCheck on
DocumentRoot /var/www
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
<Proxy *>
Order allow,deny
Deny from all
Allow from 104.12
</Proxy>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Я перепробовал все вышеизложенные варианты, но ни один из них не сработал. Поэтому, когда я захожу на сайт, я получаю сообщение об ошибке
Hostname example.net provided via SNI and hostname yahoo.com provided via HTTP are different.
Есть идеи, что я делаю не так?
Спасибо, Сай