phpStudy配置SSL证书完整教程:本地Windows环境部署HTTPS
phpStudy配置SSL证书完整教程:本地Windows环境部署HTTPS
phpStudy是国内最流行的Windows本地PHP开发环境集成包,本地开发时经常需要测试HTTPS功能。phpStudy配置SSL证书有两种方式:图形界面配置和手动修改配置文件。这篇把两种方式都讲清楚。
适用场景
- •本地开发环境测试HTTPS功能
- •微信小程序本地调试(要求HTTPS)
- •本地测试OAuth登录回调
- •本地测试PWA、Service Worker等功能
- •学习和研究SSL/TLS协议
注意:phpStudy配置SSL证书主要用于本地开发测试,生产环境建议使用Linux + Nginx或Apache。
准备工作
第一步:安装phpStudy
从phpStudy官网下载并安装最新版本(推荐V8.x)。
支持的Web服务器:
- •Apache(推荐,配置简单)
- •Nginx(需要手动配置)
第二步:申请SSL证书
本地开发推荐两种方式:
方式一:申请真实的免费SSL证书
如果有一个真实域名解析到本地(通过修改hosts文件),可以申请真实的SSL证书:
- 在 sslmianfei.com 申请ZeroSSL免费证书
- 下载Nginx格式的证书文件(
fullchain.crt和private.key)
方式二:生成自签名测试证书
如果没有真实域名,可以用 在线测试证书生成工具 生成自签名证书:
- 访问 在线测试证书生成工具
- CN填写
localhost或127.0.0.1 - SAN字段填写
localhost,127.0.0.1 - 点击”生成CSR和私钥”
- 下载证书和私钥
自签名证书的注意:
- •浏览器会报警告”证书不受信任”
- •需要手动把证书导入到浏览器的受信任根证书库
- •只能用于本地测试,不能用于生产环境
第三步:修改hosts文件(可选)
如果使用真实域名,需要修改hosts文件让域名指向本地:
Windows hosts文件位置:C:\Windows\System32\drivers\etc\hosts
用记事本以管理员身份打开,添加:
127.0.0.1 yourdomain.com
127.0.0.1 www.yourdomain.com
保存后,访问 yourdomain.com 会指向本地127.0.0.1。
方式一:phpStudy图形界面配置SSL(Apache)
这是最简单的方式,适合phpStudy V8.x版本。
第一步:启动Apache
- 打开phpStudy
- 启动Apache(如果使用Nginx,请参考方式二)
第二步:放置证书文件
把证书文件放到phpStudy的Apache配置目录:
C:\phpstudy_pro\Extensions\Apache2.4.39\conf\ssl\
如果没有ssl目录,手动创建。
需要的文件:
- •
server.crt(证书文件,包含fullchain) - •
server.key(私钥文件)
注意:如果是sslmianfei.com下载的证书,把 fullchain.crt 重命名为 server.crt,private.key 重命名为 server.key。
第三步:通过phpStudy界面配置
- 打开phpStudy
- 点击”网站” → 找到目标网站 → “管理” → “修改”
- 在”网站配置”中:
- •协议:选择”HTTPS” 或勾选”启用SSL”
- •SSL证书:浏览选择
server.crt - •SSL私钥:浏览选择
server.key - •端口:443
- 点击”确认”或”保存”
- phpStudy会自动重启Apache
第四步:验证HTTPS
- 浏览器访问
https://localhost或https://yourdomain.com - 检查地址栏是否显示小锁(真实证书)或警告(自签名证书)
- 如果是自签名证书,点击”高级” → “继续前往”
方式二:手动修改Apache配置文件
如果图形界面配置不生效,或需要更精细的控制,手动修改配置文件。
第一步:编辑httpd-ssl.conf
文件位置:
C:\phpstudy_pro\Extensions\Apache2.4.39\conf\extra\httpd-ssl.conf
用记事本或VSCode打开,找到或添加以下配置:
Listen 443
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:C:/phpstudy_pro/Extensions/Apache2.4.39/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
<VirtualHost _default_:443>
DocumentRoot "C:/phpstudy_pro/WWW/yourdomain"
ServerName yourdomain.com:443
ServerAdmin admin@yourdomain.com
SSLEngine on
SSLCertificateFile "C:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/server.crt"
SSLCertificateKeyFile "C:/phpstudy_pro/Extensions/Apache2.4.39/conf/ssl/server.key"
<Directory "C:/phpstudy_pro/WWW/yourdomain">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
关键参数说明:
- •
DocumentRoot:网站根目录 - •
ServerName:网站域名 - •
SSLCertificateFile:证书文件路径 - •
SSLCertificateKeyFile:私钥文件路径
第二步:确保加载SSL模块
编辑httpd.conf:
C:\phpstudy_pro\Extensions\Apache2.4.39\conf\httpd.conf
确认以下模块已加载(去掉前面的#):
LoadModule ssl_module modules/mod_ssl.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so
# 引入SSL配置
Include conf/extra/httpd-ssl.conf
第三步:配置HTTP跳转HTTPS
在httpd-vhosts.conf中添加80端口的跳转:
C:\phpstudy_pro\Extensions\Apache2.4.39\conf\extra\httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "C:/phpstudy_pro/WWW/yourdomain"
ServerName yourdomain.com
RewriteEngine on
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
第四步:重启Apache
- 回到phpStudy主界面
- 点击”重启” → 选择”重启Apache”
- 或在命令行执行:
httpd -k restart
第五步:验证配置
# 验证Apache配置语法
httpd -t
# 测试HTTPS访问
curl -k https://localhost/
方式三:phpStudy + Nginx配置SSL
如果phpStudy使用Nginx作为Web服务器,需要手动修改Nginx配置。
第一步:编辑Nginx配置文件
文件位置:
C:\phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts\yourdomain.conf
添加HTTPS配置:
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate "C:/phpstudy_pro/Extensions/Nginx1.15.11/conf/ssl/server.crt";
ssl_certificate_key "C:/phpstudy_pro/Extensions/Nginx1.15.11/conf/ssl/server.key";
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384;
root "C:/phpstudy_pro/WWW/yourdomain";
index index.html index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# HTTP 301跳转到HTTPS
server {
listen 80;
server_name yourdomain.com;
return 301 https://$server_name$request_uri;
}
第二步:放置证书文件
把证书文件放到:
C:\phpstudy_pro\Extensions\Nginx1.15.11\conf\ssl\
如果没有ssl目录,手动创建。
第三步:重启Nginx
- 回到phpStudy主界面
- 点击”重启” → 选择”重启Nginx”
或在命令行:
cd C:\phpstudy_pro\Extensions\Nginx1.15.11
nginx -s reload
处理自签名证书警告
使用自签名证书时,浏览器会报”证书不受信任”。要让浏览器信任自签名证书,需要导入证书到系统受信任根证书库。
Windows系统导入证书
- 双击
server.crt文件 - 点击”安装证书”
- 选择”本地计算机”(需要管理员权限)
- 选择”将所有的证书放入下列存储”
- 点击”浏览” → 选择”受信任的根证书颁发机构”
- 点击”确定” → “下一步” → “完成”
Chrome浏览器导入证书
- 打开Chrome → 设置 → 隐私和安全 → 安全 → 管理设备证书
- 选择”受信任的根证书颁发机构” → “导入”
- 选择
server.crt文件 → 完成
Firefox浏览器导入证书
Firefox使用独立的证书库,需要单独导入:
- 打开Firefox → 设置 → 隐私与安全 → 证书 → 查看证书
- 选择”证书颁发机构” → “导入”
- 选择
server.crt文件 - 勾选”信任此CA以识别网站” → 确定
常见问题排查
问题一:Apache启动失败
原因:SSL配置语法错误,或证书文件路径不对。
解决:
# 检查Apache配置语法
cd C:\phpstudy_pro\Extensions\Apache2.4.39\bin
httpd -t
# 查看错误日志
type C:\phpstudy_pro\Extensions\Apache2.4.39\logs\error.log
常见错误:
- •证书文件路径错误(注意Windows用反斜杠或正斜杠)
- •SSL模块未加载
- •443端口被占用
问题二:443端口被占用
原因:其他程序占用了443端口。
解决:
# 查看占用443端口的程序
netstat -ano | findstr :443
# 杀掉占用进程(记下PID)
taskkill /PID <PID> /F
常见占用443的程序:
- •VMware
- •Skype
- •其他Web服务器(IIS、Tomcat)
问题三:浏览器报”证书不受信任”
原因:使用自签名证书,未导入到受信任根证书库。
解决:
- •按照上文”处理自签名证书警告”导入证书
- •或使用真实域名申请免费证书
问题四:HTTPS访问空白页
原因:DocumentRoot路径错误,或PHP解析失败。
解决:
- •检查DocumentRoot路径是否正确
- •检查PHP模块是否加载
- •查看Apache错误日志
问题五:HTTP跳转HTTPS不生效
原因:rewrite模块未加载,或rewrite规则错误。
解决:
- •确认
LoadModule rewrite_module modules/mod_rewrite.so已加载 - •检查
AllowOverride All是否设置 - •清除浏览器缓存
问题六:phpStudy界面配置SSL后Apache无法启动
原因:phpStudy V8的界面配置有时会生成错误的配置。
解决:
- •改用方式二手动修改配置文件
- •或在phpStudy界面中取消SSL配置,重新配置
生产环境建议
phpStudy主要用于本地开发,生产环境建议:
- •Linux + Nginx:性能最好,配置灵活
- •Linux + Apache:稳定性好,配置简单
- •Windows Server + IIS:Windows环境下的选择
如果要把本地配置迁移到生产环境:
- 在 sslmianfei.com 申请真实的免费SSL证书
- 配置Nginx或Apache的HTTPS
- 用 SSL证书配置检测工具 验证配置
总结
phpStudy配置SSL证书的3种方式:
- •方式一:图形界面配置(最简单,适合Apache)
- •方式二:手动修改Apache配置文件(更灵活)
- •方式三:手动修改Nginx配置文件(适合Nginx用户)
核心步骤:
- 申请或生成SSL证书(推荐 sslmianfei.com 免费申请)
- 放置证书文件到phpStudy对应目录
- 配置Web服务器的SSL
- 配置HTTP跳转HTTPS
- 重启Web服务器
- 浏览器访问验证
关键提醒:
- •本地开发可以用自签名证书,但浏览器会报警告
- •生产环境必须用受信任CA签发的证书
- •自签名证书可以用 在线测试证书生成工具 生成
- •真实域名证书建议在 sslmianfei.com 免费申请