当前位置: 首页 > news >正文

windows系统使用phpstudy安装ssl证书

一、证书准备与上传

获取证书文件‌

免费证书(如阿里云、Let's Encrypt):下载包含.crt(证书)、.key(私钥)、chain.crt(证书链)的文件包
自签名证书(测试用):通过OpenSSL生成:
bash
Copy Code
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt
```:ml-citation{ref="2" data="citationList"}  

证书文件命名建议:避免中文和空格,如domain.crt、domain.key

上传证书到服务器‌

在Apache配置目录下创建专用文件夹(如C:\phpstudy\Apache\conf\ssl),存放上述三个文件
二、Apache配置调整

启用SSL模块‌

编辑Apache主配置文件httpd.conf(路径如C:\phpstudy\Apache\conf\httpd.conf):
apache
Copy Code
LoadModule ssl_module modules/mod_ssl.so          # 取消行首注释
Include conf/extra/httpd-ssl.conf                 # 取消行首注释

若配置文件无httpd-ssl.conf引用,手动添加Include conf/extra/httpd-ssl.conf

修改SSL虚拟主机配置‌

编辑extra/httpd-ssl.conf,设置证书路径和域名:
apache
Copy Code
<VirtualHost _default_:443>
    SSLEngine on
    SSLCertificateFile "C:/phpstudy/Apache/conf/ssl/domain.crt"
    SSLCertificateKeyFile "C:/phpstudy/Apache/conf/ssl/domain.key"
    SSLCertificateChainFile "C:/phpstudy/Apache/conf/ssl/chain.crt"
    DocumentRoot "C:/phpstudy/WWW"                # 网站根目录
    ServerName yourdomain.com:443                 # 绑定域名
</VirtualHost>

路径分隔符使用正斜杠/,避免转义问题
三、PHP环境与端口设置

启用OpenSSL扩展‌

在phpStudy面板中进入‌PHP扩展及设置‌ → ‌php扩展‌ → 勾选php_openssl

开放443端口‌

Windows防火墙放行443端口:
powershell
Copy Code
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

云服务器(如阿里云)还需在安全组中添加443端口入站规则
四、服务重启与验证

重启Apache服务‌

在phpStudy面板中依次点击‌停止服务‌ → ‌启动服务‌,确保无报错

HTTPS访问测试‌

浏览器输入https://yourdomain.com,地址栏显示锁标志即为成功
使用命令行验证证书链:
bash
Copy Code
openssl s_client -connect yourdomain.com:443 -showcerts

检查输出中证书链完整性

异常排查‌:

证书路径错误‌:检查httpd-ssl.conf路径与实际是否一致,确保文件权限可读
端口冲突‌:执行netstat -ano | findstr :443确认端口未被其他进程占用
模块未加载‌:确认mod_ssl.so存在于Apache/modules目录且配置已启用

配置流程总结‌:

证书获取(CA或自签) → 2. 上传至SSL目录 → 3. 启用模块并修改配置文件 → 4. 开放端口 → 5. 重启服务并验证

http://www.xdnf.cn/news/406657.html

相关文章:

  • 机器学习驱动的智能化电池管理技术与应用
  • 腾讯怎样基于DeepSeek搭建企业应用?怎样私有化部署满血版DS?直播:腾讯云X DeepSeek!
  • 解决 CJSON 浮点数精度问题:从 `cJSON_AddNumberToObject` 到 `cJSON_AddRawToObject`
  • IoTDB 分段查询语句深度剖析:GROUP BY 与时序语义的完美结合
  • 2024年北理工Python123第六章编程题整理
  • 【愚公系列】《Manus极简入门》034-跨文化交流顾问:“文化桥梁使者”
  • TCPIP详解 卷1协议 七 防火墙和网络地址转换
  • vLLM部署多模态大模型Qwen2.5-VL-3B-Instruct
  • 基于React的高德地图api教程002:自定义地图样式
  • AI边缘网关_5G/4G边缘计算网关厂家_计讯物联
  • 面试题 - Kafka、RabbitMQ、RocketMQ如何选型?
  • LInux系统文件与目录管理(二)
  • 如何选择合适的服务器操作系统
  • 学习日志04 java
  • MyBatis-Plus使用 wrapper.apply() 添加自定义 SQL 片段
  • 马铃薯土豆幼苗与杂草检测数据集VOC+YOLO格式3051张2类别
  • winreg查询Windows注册表的一些基本用法
  • python标准库--heapq - 堆队列算法(优先队列)在算法比赛的应用
  • 算法题(145):货仓选址
  • 服务器多JAR程序运行与管理指南
  • ZeRO与3D并行之间的关系
  • 可灵 AI:开启 AI 视频创作新时代
  • GBK与UTF-8编码问题(1)
  • DeepSeek-R1-Distill-Qwen-1.5B代表什么含义?
  • 集成学习——Bagging,Boosting
  • 一个极简单的 VUE3 + Element-Plus 查询表单展开收起功能组件
  • android studio开发aar插件,并用uniapp开发APP使用这个aar
  • Java面试全记录:Spring Cloud+Kafka+Redis实战解析
  • 关于groom毛发attributes
  • 防火墙安全策略基础配置