开发者社区> 问答> 正文

申请的ssl,如何结合php来使用?

由于站点需要用到https的方式来进行用户的注册
小白从startssl申请到的证书,不知道肿么和php程序结合来用
先说下小白程序的运行环境吧,希望能得到大伙的帮助
1)nginx代理内网的apache工作方式处理PHP脚本
2)网站程序使用的是MVC方式 3)在配置nginx虚拟主机的时候也十分吃力
(虚拟主机配置文件一共只有2个,domain.conf跟ssl.domain.conf)
小白贴出配置,不知道是否配置正确
domain.conf的配置如下 screenshot
另外一个是配置https的文件 screenshot
配置完成也都能工作,要是能把这2个配置文件合并为一个就好了
好,说一下要实现的功能是这个样子滴
1)用户点击注册 http://domain.cn/signin
它会自动转为 https://domain.cn/signin
跳转的动作是程序去控制,还是在nginx配置文件中控制呢
2)采用https的方式打开网页,页面的css,js都无法正常工作,页面不能渲染出该有的样式
以上就是小白在配置ssl,增加https功能遇到的问题,希望能得到大神的帮助

展开
收起
落地花开啦 2016-06-14 11:40:09 2622 0
2 条回答
写回答
取消 提交回答
  • 阿里云ping https://ping.gaomeluo.com/aliyun/

    我ecs的成功了,参考一下我这里https://bbs.aliyun.com/read/303413.html

    2019-07-17 19:37:08
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    这个问题和PHP没有任何关系
    你只需要往server段里面加如下代码:

    #监听SSL的端口
    listen 443;
    
    #打开SSL并指定证书
    ssl on;
    ssl_certificate ssl.crt;
    ssl_certificate_key ssl.key;

    就可以, 和其他的设置没有关系.
    如果不行的话,去看nginx的日志

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

    server {
        listen 80;
        server_name xxoo.com;
        location / {
            rewrite ^/(.*) https://xxoo.com/$1 permanent;
        }
    }

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

    2019-07-17 19:37:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载