0

0

php本地环境如何开启openssl_ssl证书配置与https访问设置【技巧】

絕刀狂花

絕刀狂花

发布时间:2026-01-04 21:12:49

|

716人浏览过

|

来源于php中文网

原创

需启用php openssl扩展并为web服务器配置自签名ssl证书:一、确认php.ini启用extension=openssl且phpinfo显示enabled;二、apache需启用mod_ssl,用openssl生成localhost.crt/.key并配置virtualhost;三、nginx需在server块中指定ssl_certificate与ssl_certificate_key;四、php内置服务器须通过nginx反向代理实现https;五、为解决浏览器拦截,应生成含san的证书并导入系统根证书库。

php本地环境如何开启openssl_ssl证书配置与https访问设置【技巧】

如果您在本地开发PHP项目时需要模拟HTTPS环境,但Apache或Nginx未启用OpenSSL模块或SSL证书未正确配置,则无法通过https://localhost访问服务。以下是实现本地HTTPS访问的具体操作步骤:

一、确认PHP已启用OpenSSL扩展

PHP必须加载openssl扩展,否则无法处理SSL/TLS相关函数(如file_get_contents访问HTTPS资源、cURL启用SSL验证等)。需检查php.ini中是否启用该模块,并验证扩展是否实际加载。

1、打开PHP安装目录下的php.ini文件。

2、查找extension=openssl这一行,确保其未被分号注释;若为;extension=openssl,则删除开头的分号。

立即学习PHP免费学习笔记(深入)”;

3、保存php.ini后,重启Web服务器(如Apache或Nginx)。

4、创建一个test.php文件,内容为<?php phpinfo(); ?>,在浏览器中访问,搜索“openssl”,确认“OpenSSL Support”显示为enabled。

二、为Apache生成并配置自签名SSL证书

Apache需使用mod_ssl模块及配套证书文件才能响应HTTPS请求。自签名证书适用于本地调试,无需第三方CA签发。

1、确认Apache已启用mod_ssl模块:在httpd.conf或apache2.conf中取消LoadModule ssl_module modules/mod_ssl.so前的注释。

2、使用OpenSSL命令行生成私钥与证书文件:
执行openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt,按提示输入国家、组织、域名(Common Name填localhost)等信息。

3、将生成的localhost.crt和localhost.key复制到Apache配置目录(如conf/ssl/)。

4、在httpd-ssl.conf或虚拟主机配置中添加:

<VirtualHost *:443><br>  DocumentRoot "C:/xampp/htdocs"<br>  ServerName localhost<br>  SSLEngine on<br>  SSLCertificateFile "conf/ssl/localhost.crt"<br>  SSLCertificateKeyFile "conf/ssl/localhost.key"<br></VirtualHost>

5、重启Apache服务,访问https://localhost,浏览器将提示证书不安全,可手动接受继续访问。

三、为Nginx生成并配置自签名SSL证书

Nginx需通过ssl_certificate和ssl_certificate_key指令指定证书路径,并监听443端口,才能响应HTTPS请求。

1、使用OpenSSL生成证书与密钥:
执行openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout nginx.key -out nginx.crt,Common Name填写localhost。

超能文献
超能文献

超能文献是一款革命性的AI驱动医学文献搜索引擎。

下载

2、将nginx.crt和nginx.key放入Nginx配置目录(如conf/cert/)。

3、编辑nginx.conf,在server块中添加或修改以下配置:

server {<br>  listen 443 ssl;<br>  server_name localhost;<br>  ssl_certificate conf/cert/nginx.crt;<br>  ssl_certificate_key conf/cert/nginx.key;<br>  root C:/nginx/html;<br>  index index.php;<br>}

4、确保Nginx已加载ssl模块(通常默认启用),执行nginx -t验证配置语法,再执行nginx -s reload重载配置。

5、访问https://localhost,忽略浏览器安全警告后即可加载页面。

四、配置PHP内置服务器支持HTTPS(需配合外部代理)

PHP内置开发服务器(php -S)原生不支持HTTPS,但可通过反向代理方式实现本地HTTPS访问,例如用Nginx代理到PHP内置服务的HTTP端口。

1、启动PHP内置服务器:执行php -S localhost:8000 router.php,其中router.php为路由脚本。

2、在Nginx配置中新增一个HTTPS server块,将443端口请求代理至localhost:8000:

location / {<br>  proxy_pass http://localhost:8000;<br>  proxy_set_header Host $host;<br>  proxy_set_header X-Real-IP $remote_addr;<br>}

3、确保该server块已配置ssl_certificate与ssl_certificate_key(可复用前述自签名证书)。

4、重启Nginx,访问https://localhost,请求将被转发至PHP内置服务器处理。

五、解决Chrome/Firefox拒绝自签名证书的问题

现代浏览器对自签名证书限制严格,即使本地信任也可能因缺少Subject Alternative Name(SAN)字段而报错。需重新生成含SAN的证书以绕过部分拦截。

1、创建openssl.cnf配置文件,加入以下内容:

[req]<br>req_extensions = req_ext<br>[req_ext]<br>subjectAltName = @alt_names<br>[alt_names]<br>DNS.1 = localhost

2、执行命令生成新证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost-san.key -out localhost-san.crt -config openssl.cnf -extensions req_ext

3、将新证书替换原SSL配置中的.crt文件,重启Web服务器。

4、首次访问时,在Chrome中点击地址栏锁图标→“证书”→“详细信息”→“复制到文件”,导出为BASE64格式,双击导入系统根证书存储区并设为“受信任的根证书颁发机构”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

519

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

588

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

244

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

629

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3613

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

53

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

67

2026.01.13

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

48

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 12.8万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.3万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号