Apache配置https协议,并强制跳转https
涉及到要修改的文件
1、httpd.conf
2、httpd-ssl.conf
3、httpd-vhosts.conf
httpd.conf
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-ssl.conf
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so (这个模块如果没有开启,也要开启。这个是强制跳转https时要用到的模块)
httpd-ssl.conf
1、DocumentRoot 改成自己项目的根目录
2、修改证书地址
SSLCertificateFile “C:/Apache/conf/yourcert.crt”
SSLCertificateKeyFile “C:/Apache/conf/yourcert.key”
3、客户端验证
SSLVerifyClient require
SSLVerifyDepth 1 (把10改为1)
4、Listen
默认为443,也可修改为其他端口号,但访问时需要加上修改的端口,例如 https://127.0.0.1:4433/。
使用443端口则不需要在地址栏写端口号。
httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "项目地址"
ServerName localhost
<Directory "项目地址">
AllowOverride All
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "项目地址"
ServerName localhost
SSLEngine on
SSLProxyEngine on
SSLCertificateFile "证书地址/yourcert.crt"
SSLCertificateKeyFile "证书地址/yourcert.key"
<Directory "项目地址">
AllowOverride All
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
http强制跳转https
方法1:修改conf/httpd.conf文件
# 文件最底部添加以下内容
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{REQUEST_URI} !^/tz.php
RewriteRule (.*) https://%{SERVER_NAME}$1 [R]
方法2:修改根目录.htaccess文件
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}