使用 apache 仅通过 IP 地址处理 http 和 https 流量

使用 apache 仅通过 IP 地址处理 http 和 https 流量

我已经在 ubuntu 16.04 上设置了 apache2.4.1,以处理端口 80 和 443 上的 http 和 https 流量。我可以毫无问题地浏览这两个网站。

该服务器可通过公共 IP 和私有 IP 访问,远程 API 服务使用公共 IP 通过 VPN 向我的服务器发送流量。

这是我的 apachectl -S 结果

*:80                   APPSERVER.example.com (/etc/apache2/sites-enabled/000-default.conf:1)          
*:443                  is a NameVirtualHost                                                                     
     default server APPSERVER.example.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2)     
     port 443 namevhost APPSERVER.example.com (/etc/apache2/sites-enabled/000-default-ssl.conf:2) 
     port 443 namevhost APPSERVER.example.com (/etc/apache2/sites-   enabled/default-ssl.conf:2)     
ServerRoot: "/etc/apache2"                                                                                      
Main DocumentRoot: "/var/www/html"                                                                              
Main ErrorLog: "/var/log/apache2/error.log"                                                                     
Mutex rewrite-map: using_defaults                                                                               
Mutex ssl-stapling-refresh: using_defaults                                                                      
Mutex ssl-stapling: using_defaults                                                                              
Mutex ssl-cache: using_defaults                                                                                 
Mutex default: dir="/var/lock/apache2" mechanism=fcntl                                                          
Mutex mpm-accept: using_defaults                                                                                
Mutex watchdog-callback: using_defaults                                                                         
PidFile: "/var/run/apache2/apache2.pid"                                                                         
Define: DUMP_VHOSTS                                                                                             
Define: DUMP_RUN_CFG                                                                                            
User: name="www-data" id=33                                                                                     
Group: name="www-data" id=33

这是我的 000-default.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

这是 000-default-ssl.conf

 <IfModule mod_ssl.c>
  <VirtualHost *:443>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html
    <Directory /var/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on

    SSLCertificateFile  /etc/apache2/ssl/certificate_bundle.cer
    SSLCertificateKeyFile /etc/apache2/ssl/appserver.key

    SSLCertificateChainFile /etc/apache2/ssl/intermediateCA.cer

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
    </Directory>

 </VirtualHost>
</IfModule>

问题是,当远程 api 服务尝试使用 https 发送 xml post 请求时,我的日志文件中出现了臭名昭著的“\x16\x03\x01”400 0“-”“-”。

有人能指出我配置中可能做错了什么才导致这个错误吗?

答案1

我看不出您的配置中存在任何会导致此问题的原因。问题客户端正在通过 HTTP 与您的 HTTPS 虚拟主机通信。

这可能是由于重定向到`http://example.com:443/' 在您的配置或应用程序中,但其他方面则不然。我没有看到任何会导致此问题的配置。从您目前向我们展示的内容来看,问题更可能出在远程服务上。

编辑:更正,正如@dave_thompson_085 在下面指出的那样,我搞错了。客户端正在使用 HTTPS 与 HTTP 虚拟主机通信。

相关内容