我已经能够使用makecert制作自签名证书,该证书目前在C:// XAMPP / htdocs
中的所有目录上启用HTTPS我有两个目录,我希望与众不同,
c:/XAMPP/htdocs/PLACEHOLDER1
c:/XAMPP/htdocs/PLACEHOLDER2
我想知道是否可以将SSL范围限制在一个目录中,例如在这种情况下'placeholder1'。
这是我第一次使用SSL,对任何混淆感到抱歉。
答案 0 :(得分:5)
http://robsnotebook.com/xampp-ssl-encrypt-passwords提供了一些有关如何仅通过SSL加密访问文件夹的良好信息。它具体涵盖了这两个项目,这不是直接引用,而是回答您问题的本质摘录:
仅使用SSL加密设置文件夹
首先,我们需要通知Apache,您要加密的文件夹应始终使用加密(并且永远不会明确)。这是通过在配置文件中的每个所需<Directory>
列表中放置一个SSLRequireSSL指令来完成的(可以将它放在最后,就在</Directory>
之前)。
Alias /web_folder_name "C:/xampp/foldername"
<Directory "C:/xampp/foldername">
...
...
SSLRequireSSL
</Directory>
某些文件夹的“http”重定向为“https”
下一个可选步骤是将“http”请求重定向到我们想要保护的页面的“https”请求。这更加用户友好,并允许您在键入地址时仍然使用http(并自动切换到https://和加密)。如果您不这样做,并且您使用了SSLRequireSSL,则只能通过键入https://来访问这些页面。这很好,可能更安全一点,但不是那么用户友好。要完成重定向,我们将使用mod_rewrite,以便我们不必在配置文件的这一部分中使用服务器名称。这有助于减少配置文件中写入服务器名称的位置数量(使配置文件更易于维护)。
首先,我们需要确保启用mod_rewrite。要执行此操作,请修改c:\xampp\apache\conf\httpd.conf
并删除此行中的注释(#
字符):
#LoadModule rewrite_module modules/mod_rewrite.so
使它看起来像这样:
LoadModule rewrite_module modules/mod_rewrite.so
现在,将以下文字粘贴到c:\xampp\apache\conf\extra\httpd-xampp.conf
的顶部:
<IfModule mod_rewrite.c>
RewriteEngine On
# Redirect /xampp folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} xampp
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
# Redirect /phpMyAdmin folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} phpmyadmin
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
# Redirect /security folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} security
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
# Redirect /webalizer folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} webalizer
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
</IfModule>
如果您要将其他文件夹重定向到https://,请在下方添加通用文字(但替换您的文件夹名称):
# Redirect /folder_name folder to https
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} folder_name
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]