使用 SSL - httpd-vhosts.conf 、主机 table 和 .htaccess 的 Apache 多站点配置

Apache Multi-Site configuration with SSL - httpd-vhosts.conf , hosts table and .htaccess

我的设置已经完成并且可以使用了。方法正确吗?

我有一个 Windows 服务器,我在上面安装了 XAMPP。不同的域会指向服务器的不同IP地址。此外,每个站点都在此服务器上运行 https。我浏览了很多教程并为每个站点设置了自签名证书。 然后,我使用以下设置配置了服务器。

这些配置有效,但我不确定它是否足够安全。我怕我错过了一些重要的事情。 我需要可以通过以下方式访问该站点 URL:

http://sitea.com(将重定向到 https://sitea.com

http://www.sitea.com(也将重定向到 https://sitea.com

https://sitea.com(太棒了)

https://www.sitea.com(由于程序需要,将强制使用非 www 版本- https://sitea.com

我的配置如下。请问是不是还好还是漏了什么?

C:\xampp\apache\conf\extra\httpd-vhosts.conf:

<VirtualHost 192.168.242.121:80>
    ServerName sitea.com
    ServerAlias www.sitea.com
    Redirect permanent / https://sitea.com/
</VirtualHost>

<VirtualHost 192.168.242.121:443>
    DocumentRoot "S:/websites/sitea/"
    ServerName sitea.com
   RewriteEngine On
   RewriteCond %{HTTP_HOST} ^(www\.)(.*) [NC]
   RewriteRule (.*) https://%2%{REQUEST_URI} [L,R=301]
   SSLEngine on
   SSLCertificateFile "ssl/sitea.com/server.crt"
   SSLCertificateKeyFile "ssl/sitea.com/server.key"
    AccessFileName .htaccess
    ErrorLog "S:/websites/sitea/logs/error.log"
    CustomLog "S:/websites/sitea/logs/access.log" common

    <Directory S:/websites/sitea/>  
       Options FollowSymLinks
        AllowOverride All
        Require all granted  
    </Directory>
</VirtualHost>

<VirtualHost 192.168.242.120:80>
    ServerName siteb.com
   ServerAlias www.siteb.com
    Redirect permanent / https://siteb.com/
</VirtualHost>

<VirtualHost 192.168.242.120:443>
    DocumentRoot "S:/websites/siteb/"
    ServerName siteb.com
   RewriteEngine On
   RewriteCond %{HTTP_HOST} ^(www\.)(.*) [NC]
  RewriteRule (.*) https://%2%{REQUEST_URI} [L,R=301]
   SSLEngine on
   SSLCertificateFile "ssl/siteb.com/server.crt"
   SSLCertificateKeyFile "ssl/siteb.com/server.key"
    AccessFileName .htaccess
    ErrorLog "S:/websites/siteb/logs/error.log"
    CustomLog "S:/websites/siteb/logs/access.log" common

    <Directory S:/websites/siteb/>  
       Options FollowSymLinks
        AllowOverride All
        Require all granted  
    </Directory>
</VirtualHost>

C:\Windows\System32\drivers\etc\hosts:

192.168.242.121 sitea.com www.sitea.com
192.168.242.120 siteb.com www.siteb.com

谢谢!

在网站上启用 HTTPS 并不能阻止网站漏洞,它只能保护在网站服务器和客户端之间传输的数据,即有人无法窃听服务器和客户端之间的对话。如果网站存在漏洞,人们仍然可以利用它。

在您的 Apache 配置中,您的某些 Apache 配置似乎可以通过直接访问您的网站来绕过,即将其 IP 地址输入网络浏览器。例如,这将允许某人绕过您强制要求的 HTTPS。如果你想防止这种情况,你应该设置一个重定向规则。