Apache-2.2
將埠 5061 上的 http url 重定向到 apache 上的 https 相同埠 5061
我在我的 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>