Apache-2.2

將埠 5061 上的 http url 重定向到 apache 上的 https 相同埠 5061

  • January 6, 2022

我在我的 website.conf 的 apache 配置上設置了 https 為

<VirtualHost *:5061>
   <Directory/var/www/website.com>
   SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
   <Directory>
   ServerName website.com
   ServerAlias website

   SSLEngine on
   SSLCertificateKeyFile /etc/certs/website.key
   SSLCertificateFile /etc/certs/website.crt
   SSLCertificateChainFile /etc/certs/website.bundle
<virtualHost>

以上託管在 5061 埠上的是 REST API 服務,我希望任何嘗試通過 http 訪問 ServerName 的人都應該重定向到 https 而無需更改埠。

這可能嗎 ?

標準做法是將 HTTP 連接重定向到 HTTPS 埠。如上文 Gerald 和 Steffen 所述,如果沒有大量額外設置,您無法在同一伺服器上的同一埠上同時託管 HTTP 和 HTTPS。

為什麼要避免重定向到正確的埠?它是否破壞了您需要的特定實現?這是一個奇怪的場景,客戶端不知道需要 SSL,但需要使用它,並且只能通過單個埠訪問伺服器。當然,並不是說這種情況不存在。

Apache Virtualhost SSL 重定向範例:

NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
Redirect / https://secure.example.com/
</VirtualHost>

<VirtualHost _default_:443>
ServerName secure.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>

https://wiki.apache.org/httpd/RewriteHTTPToHTTPS

引用自:https://serverfault.com/questions/940996