HTTP 无法跳转到 HTTPS 的问题
1、配置 HTTPS 证书
- 本机实际ssl的路径,一些证书公钥、私钥都在此目录下。
c:\phpstudy_pro_Extensions\Apache2.4.39\conf\ssl目录下的文件
localhost.crt #公钥或证书文件 存放cntworld.cn.crt内容
localhost.key #私钥文件 存放cntworld.cn.key内容
localhostchain.crt #证书链接文件,存放root_bundle.crt内容
2、确认 Apache 配置文件路径
c:\phpstudy_pro_Extensions\Apache2.4.39\conf目录下主要配置文件
httpd.conf
- 打开httpd.conf文件,找到以下行,确保没有被注释。这两行确保Apache加载了SSL模块并监听443端口。
LoadModule ssl_module modules/mod_ssl.so
Listen 127.0.0.1:443
- 打开httpd.conf文件,找到类似以下的行,确保没有被注释掉,这行指令会引入httpd-ssl.conf文件,后者包含了SSL证书相关配置。
Include conf/extra/httpd-ssl.conf
- 编辑httpd-ssl.conf,打开
phpstudy\Apache2.4.39\conf\extra\httpd-ssl.conf
文件,配置 SSL 证书。确保有类似以下内容:这个配置确保 Apache 在 443 端口上监听 HTTPS 请求,并且正确加载了证书和私钥文件。
<VirtualHost _default_:443>
DocumentRoot "C:/phpstudy_pro/WWW"
ServerName localhost:443
SSLEngine on
SSLCertificateFile "c:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/localhost.crt"
SSLCertificateKeyFile "c:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/localhost.key"
SSLCertificateChainFile "C:/phpstudy/Apache2.4.39/conf/ssl/server.crt"
<Directory "C:/phpstudy_pro/WWW">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
- 编辑
.htaccess
文件以实现 HTTP 到 HTTPS 的重定向,在你的网站根目录(例如C:/phpstudy_pro/WWW
)中,确保存在一个.htaccess
文件。 如果没有,可以手动创建一个文件,文件内容如下
RewriteEngine On
RewriteCond %{HTTPS} off #检查是否是HTTP请求
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]#如果是 HTTP 请求,则将其重定向到 HTTPS。
- 重启Apache服务,如果没有生效,清除浏览器缓存,确保新的配置生效。
- 注:以后要更换证书只需要将
c:\phpstudy_pro_Extensions\Apache2.4.39\conf\ssl
目录下的文件替换掉就可以了。能解决https带小锁的问题