如何在 Apache 2.2 上禁用非 ssl 连接

use*_*954 11 apache2

我在 12.04 上使用 Apache 2.2。我已经使用自签名证书激活了ssl连接,该证书工作正常,但现在我想禁用任何非 ssl连接。

我使用了 a2dissite默认值,但80即使在重新启动服务器后,服务器仍然可以通过端口访问。

请帮我解决这个问题。

use*_*954 13

我终于让它工作了:

除了禁用默认页面: a2dissite default,我编辑/etc/apache2/ports.conf并评论了以下几行:

NameVirtualHost *:80  
Listen 80
Run Code Online (Sandbox Code Playgroud)


pa4*_*080 11

一个更好的主意是保持“非 ssl 连接”(http),但永久重定向到您的 SSL 虚拟主机 (https)。在这种情况下,.conf文件可能如下所示:

<VirtualHost *:80>

        ServerName www.example.com
        ServerAdmin admin@example.com

        # Redirect Requests to SSL
        Redirect permanent "/" "https://www.example.com/"
            
        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

</VirtualHost>


<IfModule mod_ssl.c>

        <VirtualHost _default_:443>
                
                ServerName www.example.com
                ServerAdmin admin@example.com

                DocumentRoot /var/www/html/www.example.com

                ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
                CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined

                SSLEngine on

                # other configuration directives...
        
        </VirtualHost>

</IfModule>
Run Code Online (Sandbox Code Playgroud)

相关话题:

  • @MarcoMarsala,在大多数情况下,当 HTTP(端口 80)被禁用并且您在浏览器中输入 `http://your.domain.com`(或只是 `your.domain.com`)时,您将收到“页面不找到” - 除非你输入 `https://your.domain.com` ... (5认同)