apache mod_proxy, https, local ip

Автор morphay, 12 марта 2019, 17:47:13

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

morphay

Всем привет!

Помогите пожалуйста )
такая ситуация:
есть две виртуальные машины за натом
первая - ispmanager(192.168.0.118, https://itmaster.ltd:1500) она же веб сервер
вторая - billmanager(192.168.0.119) она же панель для биллинга, https://192.68.0.119 - в локалке открывается

добавляю в конфиг созданный ispmanager нижние две области virtual host:
<VirtualHost 192.168.0.118:80>
ServerName domain.ltd
DocumentRoot /var/www/domain.ltd/data/www/domain.ltd
ServerAdmin webmaster@domain.ltd
AddDefaultCharset off
AssignUserID domain.ltd domain.ltd
CustomLog /var/www/httpd-logs/domain.ltd.access.log combined
ErrorLog /var/www/httpd-logs/domain.ltd.error.log
ScriptAlias /cgi-bin/ /var/www/domain.ltd/data/www/domain.ltd/cgi-bin/
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
<IfModule php7_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
ServerAlias www.domain.ltd
DirectoryIndex index.php index.html
ServerAlias www.domain.ltd
ServerAlias www.domain.ltd
</VirtualHost>
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
<IfModule php7_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
<Directory /var/www/domain.ltd/data/www/domain.ltd>
Options +Includes +ExecCGI
<IfModule php5_module>
php_admin_flag engine on
</IfModule>
<IfModule php7_module>
php_admin_flag engine on
</IfModule>
</Directory>
<VirtualHost 192.168.0.118:443>
ServerName domain.ltd
DocumentRoot /var/www/domain.ltd/data/www/domain.ltd
ServerAdmin webmaster@domain.ltd
AddDefaultCharset off
SSLEngine on
SSLCertificateFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.crt"
SSLCertificateKeyFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.key"
SSLHonorCipherOrder on
SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2
SSLCipherSuite EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4
<IfModule headers_module>
Header always set Strict-Transport-Security "max-age=31536000; preload"
</IfModule>
AssignUserID domain.ltd domain.ltd
CustomLog /var/www/httpd-logs/domain.ltd.access.log combined
ErrorLog /var/www/httpd-logs/domain.ltd.error.log
ScriptAlias /cgi-bin/ /var/www/domain.ltd/data/www/domain.ltd/cgi-bin/
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
<IfModule php5_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
<IfModule php7_module>
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@domain.ltd"
php_admin_value upload_tmp_dir "/var/www/domain.ltd/data/mod-tmp"
php_admin_value session.save_path "/var/www/domain.ltd/data/mod-tmp"
php_admin_value open_basedir "/var/www/domain.ltd/data:."
</IfModule>
SSLCertificateChainFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.ca"
</VirtualHost>
<VirtualHost 192.168.0.118:443>
        ServerName isp.domain.ltd
        ServerAdmin root@domain.tld

        SSLEngine On
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
        SSLCertificateFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.crt"
        SSLCertificateKeyFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.key"

        SSLProxyEngine on
        SSLProxyCACertificateFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.crt"

        ProxyRequests On
        ProxyPreserveHost On
        ProxyVia full

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPass / https://itmaster.ltd:1500/
        ProxyPassReverse / https://itmaster.ltd:1500/

        CustomLog /var/www/httpd-logs/domain.ltd.access.log combined
    ErrorLog /var/www/httpd-logs/domain.ltd.error.log
</VirtualHost>
<VirtualHost 192.168.0.118:443>
        ServerName bill.domain.ltd
        ServerAdmin root@domain.tld

        SSLEngine On
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
        SSLCertificateFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.crt"
        SSLCertificateKeyFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.key"

        SSLProxyEngine on
        SSLProxyCACertificateFile "/var/www/httpd-cert/domain.ltd/domain.ltd_le2.crt"

        ProxyRequests On
        ProxyPreserveHost On
        ProxyVia full

        <Proxy *>
                Order deny,allow
                Allow from all
        </Proxy>

        ProxyPass / https://192.168.0.119/
        ProxyPassReverse / https://192.168.0.119/

        CustomLog /var/www/httpd-logs/domain.ltd.access.log combined
    ErrorLog /var/www/httpd-logs/domain.ltd.error.log
</VirtualHost>


в результате чего получаю следующую ситуацию из внешки:

isp.domain.ltd - открывается
bill.domain.ltd - The proxy server received an invalid response from an upstream server....


endru

Ну и что в логах апача? А там скорее всего ошибка, о том что не возможно проверить сертификат для ресурса 192.168.0.119. Зачем для локальной сети https?

morphay

"зачем https" - панель работает только по https
я думаю в логах апача не будет ошибки сертификата, так как в правилах написано - SSLProxyCheckPeerCN off, SSLProxyCheckPeerName off, SSLProxyCheckPeerExpire off

вот логи:
[Wed Mar 13 08:19:05.954154 2019] [proxy_http:error] [pid 22036] (103)Software caused connection abort: [client 178.62.102.23:40446] AH01102: error reading status line from remote server 192.168.0.119:443
[Wed Mar 13 08:19:05.954214 2019] [proxy:error] [pid 22036] [client 178.62.102.23:40446] AH00898: Error reading from remote server returned by /

morphay

на машине с биллингом(192.168.0.119) в логах ничего нет
если захожу с локалки, то логи есть...

endru

Цитата: morphay от 13 марта 2019, 09:25:14так как в правилах написано - SSLProxyCheckPeerCN off, SSLProxyCheckPeerName off, SSLProxyCheckPeerExpire off
это апач, он в любом случае проверяет и не пускает.
Цитата: morphay от 13 марта 2019, 09:25:14[proxy_http:error] [pid 22036] (103)Software caused connection abort: [client 178.62.102.23:40446] AH01102: error reading status line from remote server 192.168.0.119:443
вот и подтверждение.

нужен валидный сертификат для этого адреса, или попробовать добавить на проксирующем сервере сертификаты 0.119 в доверительные. Но не есть подозрение что не сработает.
Проще и быстрее в таком случае развернуть nginx и проблем не будет.

morphay

вопрос закрыт, проблема была в том, что ip адрес биллинга ранее добавлялся в ispmanager, после чего был удален с помощью панели, но в конфиге так и остался...
так, что вышеприведенный конфиг полностью рабочий.
всем спасибо.