• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-25) 24次浏览 已收录 0个评论
文章目录[隐藏]

由于站点需要用到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><a style="color:transparent">来@源gao*daima.com搞@代#码网</a><strong>搞gaodaima代码</strong>

你的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 }

加入以上看看


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:nginx – 小白申请的ssl,肿么结合PHP程序来使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址