使用 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。如果你想防止这种情况,你应该设置一个重定向规则。
我的设置已经完成并且可以使用了。方法正确吗?
我有一个 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。如果你想防止这种情况,你应该设置一个重定向规则。