【问题标题】:Apache Multi-Site configuration with SSL - httpd-vhosts.conf , hosts table and .htaccess具有 SSL 的 Apache 多站点配置 - httpd-vhosts.conf 、主机表和 .htaccess
【发布时间】:2021-12-14 03:49:55
【问题描述】:

我的设置已完成并且可以正常工作。方法对吗?

我有一个 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

谢谢!

【问题讨论】:

  • 我投票结束这个问题,因为它是关于配置 wordpress,而不是开发(参见help center)。它更适合wordpress.stackexchange.com。如果它是关于 Apache httpd,它也不是关于编程 - 检查 apache 标签描述。
  • 这个问题当然与 WordPress 本身没有任何关系,并且很快就会在 WordPress SE 上被标记为离题。任何涉及 .htaccess 的内容都被视为非 WordPress。 WordPress SE 站点仅处理 WordPress 开发。 @OlafKock
  • wordpress.stackexchange.com 的页面顶部写着:“WordPress Development Stack Exchange 是一个面向 WordPress 开发人员和管理员的问答网站。它只需一分钟即可注册。” 虽然 stackoverflow 的 help center 明确将开发列为重点并排除了管理。 @MrWhite - 但apache 标签列出了其他选项,这肯定与 apache 相关的编程无关。
  • 另外,wordpress.stackexchange.com/help/on-topic 在“我可以在这里询问哪些主题?”下明确列出 “WordPress 的服务器配置”

标签: windows apache .htaccess https virtualhost


【解决方案1】:

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

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

【讨论】:

  • 谢谢@MikeMoy!这是我错过并想知道的一点!谢谢!
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 2014-06-06
  • 2018-06-01
  • 1970-01-01
  • 2017-07-28
  • 2018-12-13
  • 2013-01-27
  • 2015-09-23
相关资源
最近更新 更多