上一篇
phpstudy安装ssl证书教程,详细步骤与常见问题解答
- 虚拟主机
- 2025-12-18
- 4
在本地开发环境中使用PHPStudy配置SSL证书,可以模拟HTTPS环境进行调试和测试,确保网站在生产环境中的安全性,以下是详细的配置步骤,包括证书生成、安装、PHPStudy环境配置以及常见问题解决方法。
SSL证书类型选择
在本地环境中,通常使用自签名证书或开发证书,无需购买正式证书,自签名证书由用户自己生成,浏览器会提示“不安全”,但本地开发不影响使用,开发工具如mkcert可生成受信任的本地证书,避免浏览器警告。
生成自签名证书
-
使用OpenSSL生成证书

- 打开PHPStudy安装目录,进入Apache或Nginx的conf目录。
- 创建一个ssl文件夹,用于存放证书文件。
- 打开命令行,切换到ssl目录,执行以下命令生成私钥和证书: openssl genrsa out server.key 2048
openssl req new x509 key server.key out server.crt days 365 subj "/C=CN/ST=Local/L=Local/O=Dev/CN=localhost"
- server.key:私钥文件
- server.crt:证书文件
- CN=localhost:证书中的域名,需与本地访问地址一致。
-
使用mkcert生成受信任证书(推荐)

- 安装mkcert:choco install mkcert(Windows)或brew install mkcert(macOS)。
- 执行mkcert install安装本地CA根证书。
- 在PHPStudy的ssl目录下生成证书: mkcert localhost 127.0.0.1 ::1
生成localhost+1.pem(证书)和localhost+1key.pem(私钥),浏览器不会报错。
- 打开PHPStudy的Apache/conf/extra/httpdssl.conf文件(若不存在,需从httpd.conf中启用SSL模块)。
- 修改以下配置: Listen 443 <VirtualHost *:443> DocumentRoot "D:/phpstudy_pro/WWW" # 项目根目录 ServerName localhost:443 SSLEngine on SSLCertificateFile "D:/phpstudy_pro/Apache/conf/ssl/server.crt" # 证书路径 SSLCertificateKeyFile "D:/phpstudy_pro/Apache/conf/ssl/server.key" # 私钥路径 </VirtualHost>
- 确保httpd.conf中加载了SSL模块: LoadModule ssl_module modules/mod_ssl.so Include conf/extra/httpdssl.conf
- 打开PHPStudy的Nginx/conf/nginx.conf或vhost.conf文件。
- 添加以下配置: server { listen 443 ssl; server_name localhost; root "D:/phpstudy_pro/WWW"; # 项目根目录 ssl_certificate "D:/phpstudy_pro/Nginx/conf/ssl/server.crt"; # 证书路径 ssl_certificate_key "D:/phpstudy_pro/Nginx/conf/ssl/server.key"; # 私钥路径 }
- 确保nginx.conf中包含vhost.conf:include vhost.conf;
- 开启SSL模块
- 在PHPStudy控制面板中,点击“设置” > “PHP扩展”,勾选openssl(默认已开启)。
- 配置伪静态规则
- Apache:确保.htaccess中支持HTTPS(如RewriteCond %{HTTPS} off)。
- Nginx:在vhost.conf中添加if ($scheme = http) { return 301 https://$host$request_uri; }强制跳转。
- 启动PHPStudy服务,确保Apache或Nginx的443端口已开启。
- 浏览器访问https://localhost,若使用自签名证书会显示警告,点击“高级” > “继续访问”;若使用mkcert证书,可直接访问。
- 检查项目是否正常加载,可通过var_dump($_SERVER['HTTPS'])验证是否为on。
PHPStudy环境配置
Apache配置
Nginx配置
PHPStudy全局配置
测试与验证
常见问题与解决方案
问题现象 可能原因 解决方法 访问https显示连接不安全 自签名证书不受信任 使用mkcert生成证书,或忽略警告继续访问 443端口被占用 其他程序占用端口 更改PHPStudy的端口(如8443),或关闭占用端口的程序 项目无法加载HTTPS资源 (HTTP和HTTPS混合) 检查代码中的HTTP链接,改为HTTPS或相对路径 Nginx启动失败 证书路径错误或权限问题 检查ssl_certificate和ssl_certificate_key路径是否正确 相关问答FAQs
Q1: 为什么本地配置SSL证书后,浏览器仍提示“不安全”?
A1: 这是因为自签名证书没有受信任的CA机构签名,本地开发可忽略警告,或使用mkcert工具生成受信任的本地证书,避免浏览器提示,mkcert会自动安装本地CA,使生成的证书被浏览器信任。
Q2: 如何在PHPStudy中同时支持HTTP和HTTPS访问?
A2: 在Apache的httpd.conf中配置两个VirtualHost,一个监听80端口(HTTP),一个监听443端口(HTTPS),Nginx可在vhost.conf中添加两个server块,分别监听80和443端口,确保两个配置的DocumentRoot指向同一项目目录即可。
