目录
回复内容:
首页 后端开发 php教程 nginx - 小白申请的ssl,肿么结合PHP程序来使用

nginx - 小白申请的ssl,肿么结合PHP程序来使用

Jun 06, 2016 pm 08:50 PM
nginx openssl php

由于站点需要用到https的方式来进行用户的注册
小白从startssl申请到的证书,不知道肿么和php程序结合来用
先说下小白程序的运行环境吧,希望能得到大伙的帮助
1)nginx代理内网的apache工作方式处理PHP脚本
2)网站程序使用的是MVC方式 3)在配置nginx虚拟主机的时候也十分吃力
(虚拟主机配置文件一共只有2个,domain.conf跟ssl.domain.conf)
小白贴出配置,不知道是否配置正确
domain.conf的配置如下

<code>server {
    listen 80 default;
    server_name www.domain.cn;
    root /path/public;
    index index.php;
    location ~ .(php|phtml)?$ {
        proxy_pass http://apache;
    }
    include proxy.conf;
}
</code>
登录后复制
登录后复制

另外一个是配置https的文件

<code>server {
    listen 443;
    server_name ssl.domain.cn;
    root 这里的路径跟domain.conf里的路径一致;
    index index.php;
    ssl on;
    ssl_certificate ssl.crt;
    ssl_certificate_key ssl.key;
    location ~ .(php|phtml)?$ {
        proxy_pass http://apache;
    }
}
</code>
登录后复制
登录后复制

配置完成也都能工作,要是能把这2个配置文件合并为一个就好了
好,说一下要实现的功能是这个样子滴
1)用户点击注册 http://domain.cn/signin
它会自动转为 https://domain.cn/signin
跳转的动作是程序去控制,还是在nginx配置文件中控制呢
2)采用https的方式打开网页,页面的css,js都无法正常工作,页面不能渲染出该有的样式
以上就是小白在配置ssl,增加https功能遇到的问题,希望能得到大神的帮助
要是那位大神路过,有时间,也愿意分享经验的话,天下的小白都最愿意看到,哈哈

回复内容:

由于站点需要用到https的方式来进行用户的注册
小白从startssl申请到的证书,不知道肿么和php程序结合来用
先说下小白程序的运行环境吧,希望能得到大伙的帮助
1)nginx代理内网的apache工作方式处理PHP脚本
2)网站程序使用的是MVC方式 3)在配置nginx虚拟主机的时候也十分吃力
(虚拟主机配置文件一共只有2个,domain.conf跟ssl.domain.conf)
小白贴出配置,不知道是否配置正确
domain.conf的配置如下

<code>server {
    listen 80 default;
    server_name www.domain.cn;
    root /path/public;
    index index.php;
    location ~ .(php|phtml)?$ {
        proxy_pass http://apache;
    }
    include proxy.conf;
}
</code>
登录后复制
登录后复制

另外一个是配置https的文件

<code>server {
    listen 443;
    server_name ssl.domain.cn;
    root 这里的路径跟domain.conf里的路径一致;
    index index.php;
    ssl on;
    ssl_certificate ssl.crt;
    ssl_certificate_key ssl.key;
    location ~ .(php|phtml)?$ {
        proxy_pass http://apache;
    }
}
</code>
登录后复制
登录后复制

配置完成也都能工作,要是能把这2个配置文件合并为一个就好了
好,说一下要实现的功能是这个样子滴
1)用户点击注册 http://domain.cn/signin
它会自动转为 https://domain.cn/signin
跳转的动作是程序去控制,还是在nginx配置文件中控制呢
2)采用https的方式打开网页,页面的css,js都无法正常工作,页面不能渲染出该有的样式
以上就是小白在配置ssl,增加https功能遇到的问题,希望能得到大神的帮助
要是那位大神路过,有时间,也愿意分享经验的话,天下的小白都最愿意看到,哈哈

这个问题和PHP没有任何关系

你只需要往server段里面加如下代码:

<code>#监听SSL的端口
listen 443;

#打开SSL并指定证书
ssl on;
ssl_certificate ssl.crt;
ssl_certificate_key ssl.key;
</code>
登录后复制

就可以, 和其他的设置没有关系.

如果不行的话,去看nginx的日志


关于把两个配置文件合并, 请参见这个回答:
http://segmentfault.com/q/1010000000128892


关于跳转逻辑的建议:建议把网站程序写成域名无关的, 在程序中用类似 /user.php 这样的相对地址来跳转, 然后在Nginx中来做从http到https的跳转.
但如此一来,你还是需要写两个server, 在80的那个server中,跳转到https协议:

<code>server {
    listen 80;
    server_name xxoo.com;
    location / {
        rewrite ^/(.*) https://xxoo.com/$1 permanent;
    }
}
</code>
登录后复制

新版本的浏览器的安全策略决定了,https协议中,加载来自http协议的资源(CSS/JS)会有警告, 不可能让所有用户都忽略警告,所以你需要让所有资源都通过https来传输.

如果我记得没错的话。可以这样

<code>listen 80;
listen 443;
</code>
登录后复制

你的443接口只是针对php|phtml 没有对CSS和JS文件做支持。所以用不了~~我是这样认为的

18 location ~ ..(gif|jpg|jpeg|png|bmp|swf)$ { 19 expires 1d; 20 } 21 location ~ ..(js|css|html|htm)?$ { 22 expires 12h; 23 }

加入以上看看

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP:处理数据库和服务器端逻辑 PHP:处理数据库和服务器端逻辑 Apr 15, 2025 am 12:15 AM

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

怎么查看nginx是否启动 怎么查看nginx是否启动 Apr 14, 2025 pm 01:03 PM

确认 Nginx 是否启动的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 检查端口 80 是否开放;3. 查看系统日志中 Nginx 启动消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

PHP的目的:构建动态网站 PHP的目的:构建动态网站 Apr 15, 2025 am 12:18 AM

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

nginx在windows中怎么配置 nginx在windows中怎么配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安装 Nginx 并创建虚拟主机配置。修改主配置文件并包含虚拟主机配置。启动或重新加载 Nginx。测试配置并查看网站。选择性启用 SSL 并配置 SSL 证书。选择性设置防火墙允许 80 和 443 端口流量。

PHP和Python:代码示例和比较 PHP和Python:代码示例和比较 Apr 15, 2025 am 12:07 AM

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

linux怎么查看nginx是否启动 linux怎么查看nginx是否启动 Apr 14, 2025 pm 12:48 PM

在 Linux 中,使用以下命令检查 Nginx 是否已启动:systemctl status nginx根据命令输出进行判断:如果显示 "Active: active (running)",则 Nginx 已启动。如果显示 "Active: inactive (dead)",则 Nginx 已停止。

linux怎么启动nginx linux怎么启动nginx Apr 14, 2025 pm 12:51 PM

在 Linux 中启动 Nginx 的步骤:检查 Nginx 是否已安装。使用 systemctl start nginx 启动 Nginx 服务。使用 systemctl enable nginx 启用在系统启动时自动启动 Nginx。使用 systemctl status nginx 验证启动是否成功。在 Web 浏览器中访问 http://localhost 查看默认欢迎页面。

nginx怎么查看运行状态 nginx怎么查看运行状态 Apr 14, 2025 am 11:48 AM

查看 Nginx 运行状态的方法有:使用 ps 命令查看进程状态;查看 Nginx 配置文件 /etc/nginx/nginx.conf;使用 Nginx 状态模块启用状态端点;使用 Prometheus、Zabbix 或 Nagios 等监控工具。

See all articles