Linux
使用 apache 僅使用 IP 地址處理 http 和 https 流量
我在 ubuntu 16.04 上設置了 apache2.4.1 來處理埠 80 和 443 上的 http 和 https 流量。我可以毫無問題地瀏覽這兩個站點。
伺服器可以通過公共 ip 和私有 ip 訪問——遠端 api 服務使用它通過 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 發布請求時,我的日誌文件中出現了臭名昭著的 “\x16\x03\x01” 400 0 “-” “-"。
誰能指出我的配置可能做錯了什麼導致此錯誤。
我在您的配置中看不到任何會導致這種情況的東西。問題是客戶端正在向您的 HTTPS 虛擬主機發送 HTTP 。
這可能是由於在您的配置或應用程序中重定向到 ` http://example.com:443/ ’ 引起的,但其他情況不大。我在您的配置中看不到任何會導致這種情況的東西。從您到目前為止向我們展示的內容來看,問題很可能出在遠端服務上。
編輯:更正,正如下面@dave_thompson_085 所指出的,我把這個弄錯了。客戶端正在向 HTTP 虛擬主機發送 HTTPS。