V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
shotego
V2EX  ›  NGINX

nginx 启用 https , 403 forbidden

  •  
  •   shotego · 2015-12-04 12:09:25 +08:00 · 9655 次点击
    这是一个创建于 3065 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 letsencrypt 弄了证书,然后准备配置 nginx 。
    配置文件如下,然后用 http 正常访问, https 出现 403 。网上爬帖子说权限问题,或者 index.php 问题。权限什么的应该没有问题啊。添加 index index.php 后,用 https 访问,浏览器直接把我的 index.php 下载下来了。。。
    建站新手,很多东西还在学,这个配置也是参照别人的。求解哪里不对了
    server
    {
    listen 80;
    #listen [::]:80;
    server_name www.forloop.top forloop.top;
    index index.html index.htm index.php default.html default.htm default.php;
    root /home/wwwroot/www.forloop.top;
    include wordpress.conf;
    #error_page 404 /404.html;
    location ~ [^/].php(/|$)
    {
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    #include pathinfo.conf;
    }
    location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    }
    location ~ .
    .(js|css)?$
    {
    expires 12h;
    }
    access_log off;
    }
    server{
    listen 443;
    root /home/wwwroot/www.forloop.top;
    server_name www.forloop.top;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/forloop.top/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/forloop.top/privkey.pem;
    }

    14 条回复    2015-12-04 19:46:49 +08:00
    xiaoz
        1
    xiaoz  
       2015-12-04 12:27:56 +08:00 via Android
    你这个配置是同时启用 http 和 https 吧,你把 ssl on;注释后重启下 nginx 试试。
    shotego
        2
    shotego  
    OP
       2015-12-04 12:35:03 +08:00
    @xiaoz 注释掉了,还是没有用
    fangdingjun
        3
    fangdingjun  
       2015-12-04 12:41:13 +08:00   ❤️ 1
    你把 http 部分的配置复制一遍,然后改端口,加 ssl 配置就行了
    现在的配置,只支持静态文件
    ooxxcc
        4
    ooxxcc  
       2015-12-04 12:42:07 +08:00
    你的 ssl 段根本就没启用 php 解析等东西啊……
    shotego
        5
    shotego  
    OP
       2015-12-04 12:51:25 +08:00
    @fangdingjun 谢谢,已经可以了。不过有一个新问题,为什么只有首页的锁是绿的?其他的是感叹号呢?
    squid157
        6
    squid157  
       2015-12-04 12:53:20 +08:00 via iPhone
    @shotego 静态资源非 https 你得改内容
    ryd994
        7
    ryd994  
       2015-12-04 12:59:46 +08:00
    @fangdingjun 不用复制
    原来的配置加个 listen 就好了
    listen 443 ssl;

    新手教程害人不浅, ssl on 都废弃了多久的选项了。。。
    bidu
        8
    bidu  
       2015-12-04 13:00:31 +08:00 via Android
    @shotego 看看引用的外部文件是不是 https
    shotego
        9
    shotego  
    OP
       2015-12-04 13:04:04 +08:00
    @bidu 懂了,谢谢
    shotego
        10
    shotego  
    OP
       2015-12-04 13:05:11 +08:00
    @ryd994 确实如你所说,谢谢。配置好了,并且换成了强制跳转 https
    ryd994
        11
    ryd994  
       2015-12-04 13:28:11 +08:00
    @shotego 非 https 引用可以把链接改成 //开头解决,比如 //a.com/b.js
    referblue
        12
    referblue  
       2015-12-04 16:14:51 +08:00
    真能折腾,都用上 Let's Encrypt 了,三个月一更新?
    Andy1999
        13
    Andy1999  
       2015-12-04 16:24:45 +08:00 via iPhone
    location ~ [^/].php(/|$)
    {
    # comment try_files $uri =404; to enable pathinfo
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    #include pathinfo.conf;
    }
    location ~ ..(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    }
    location ~ ..(js|css)?$
    {
    expires 12h;
    }
    access_log off;

    加在后面
    LEFT
        14
    LEFT  
       2015-12-04 19:46:49 +08:00 via iPhone
    @shotego http 301 到 https 就绿了,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1128 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:55 · PVG 06:55 · LAX 15:55 · JFK 18:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.