我已经在 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 虚拟主机通信。