V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
jsjcjsjc
V2EX  ›  NGINX

Let's Encrypt 使用 webroot 方式签发证书一直失败?

  •  
  •   jsjcjsjc · Oct 24, 2016 · 9945 views
    This topic created in 3474 days ago, the information mentioned may be changed or developed.

    ./certbot-auto certonly --webroot -w /usr/share/nginx/html -d cl.getpocket.net

    ./certbot-auto certonly --webroot -w /var/www/html -d cl.getpocket.net

    这 2 条命令为什么总是提示 Could not connect to cl.getpocket.net ?尝试一下 standalone 是可以的,所以应该是 nginx 的 root 位置我搞错了?

    主要是想把 50 个域名的证书都放在一个地方,所以才想用 webroot 。。。。

    42 replies    2016-11-29 11:27:31 +08:00
    msg7086
        1
    msg7086  
       Oct 24, 2016
    Could not connect 是你 Nginx 没起来吧?
    (另外也可以试试 acme.sh
    jkmmmm
        2
    jkmmmm  
       Oct 25, 2016
    你是不是占着 80 端口呢?得先把 nginx 停了吧!
    jsjcjsjc
        3
    jsjcjsjc  
    OP
       Oct 25, 2016
    @jkmmmm webroot 是不需要停用端口的,而且我停用了也没用~~
    只有 standalone 是可以的
    qyz0123321
        4
    qyz0123321  
       Oct 25, 2016
    这个网站是什么鬼,上班的时候不要打开啊。。。
    w99wen
        5
    w99wen  
       Oct 25, 2016
    楼主过分了。这网站什么鬼。
    zhenjiachen
        6
    zhenjiachen  
       Oct 25, 2016
    老司机
    bobylive
        7
    bobylive  
       Oct 25, 2016 via Android
    https://github.com/diafygi/acme-tiny 签发即可,完全不需要关站
    b1eberg0n
        8
    b1eberg0n  
       Oct 25, 2016 via iPhone
    新的开车方式么…
    jsjcjsjc
        9
    jsjcjsjc  
    OP
       Oct 25, 2016
    大家不要转移注意力
    jsjcjsjc
        10
    jsjcjsjc  
    OP
       Oct 25, 2016
    我就是想把多个域名的证书放在一起文件下,后面新增的也在更新到同一个文件里~
    w99wen
        11
    w99wen  
       Oct 25, 2016
    能给个 nginx 反代规则不。 thx
    jsjcjsjc
        12
    jsjcjsjc  
    OP
       Oct 25, 2016
    @w99wen
    vi /etc/nginx/sites-enabled/cl.getpocket.net.conf
    server {
    server_name cl.getpocket.net;
    listen 80;

    location / {
    proxy_pass http://t66y.com/; #需要反代的域名
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
    w99wen
        13
    w99wen  
       Oct 25, 2016
    你看下这个地方。把你那个网站加个用户名密码吧。 http://www.oschina.net/question/733503_146265
    jsjcjsjc
        14
    jsjcjsjc  
    OP
       Oct 25, 2016
    @w99wen 我关键是怕墙的检测~~
    lslqtz
        15
    lslqtz  
       Oct 25, 2016
    @jsjcjsjc 有用户名和密码不怕检测
    jsjcjsjc
        16
    jsjcjsjc  
    OP
       Oct 25, 2016
    @lslqtz 墙是通过路由器的关键词检测的吧?你只是访问的时候需要密码,信息传输经过墙的时候还是明文吧?比如谷歌搜索关键词
    lightening
        17
    lightening  
       Oct 25, 2016
    @jsjcjsjc 你 Nginx 里关于 webroot 的配置我怎么没看到?
    fangdingjun
        18
    fangdingjun  
       Oct 25, 2016
    在你的 webroot 下放一下 html 文件,你自己测试一下用域名能不能访问
    w99wen
        19
    w99wen  
       Oct 25, 2016
    @lightening 反向代理不需要 webroot 吧,我感觉不需要
    我现在已经申请好了 ssl 证书,也弄好了 http->https 的跳转。然而,跳转至后就会出现 css 文件不能加载的问题。
    你可以在 cl.w99wen.tk 上看,账号密码是 whyme 123456
    w99wen
        20
    w99wen  
       Oct 25, 2016
    你申请 ssl 证书的时候。不要开着重定向。就把 webroot 放在常用的 html 目录。吧 index 设置下。等 ssl 证书申请下来了你在吧重定向加上去。
    iA7489
        21
    iA7489  
       Oct 25, 2016 via iPhone
    无责任推荐 acme.sh 签发证书
    w99wen
        22
    w99wen  
       Oct 25, 2016 via iPhone
    @iA7489 警察叔叔,就是他
    chunchu
        23
    chunchu  
       Oct 25, 2016
    @w99wen
    有 http 的连接,在 https 下会出现 css 文件不能加载,你需要将 http 部分也代理一下
    lightening
        24
    lightening  
       Oct 25, 2016
    @w99wen 看了前面留言,等我回家再看……

    CSS 不能加载,我猜是从 HTTP url load 的?反代的所有 headers 都加上了吗?
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    类似这样
    lslqtz
        25
    lslqtz  
       Oct 25, 2016
    @jsjcjsjc 你知道 https 吗。。
    lslqtz
        26
    lslqtz  
       Oct 25, 2016
    @jsjcjsjc 不对,当我没说。。
    你申请 ssl 的时候,要改成用地址,不能挂反代
    yidinghe
        27
    yidinghe  
       Oct 25, 2016 via Android
    用 root 运行吧,在这之前确保 nginx 配置文件配置好了相应的域名,如果有 alias 的话每个域名都要配置到。
    jsjcjsjc
        28
    jsjcjsjc  
    OP
       Oct 25, 2016
    @fangdingjun @lightening @lslqtz @yidinghe
    估计知道原因了~~~
    我的域名虽然指向了 ip ,但是在 nginx 的配置文件里面没有为所有的域名设置 root/www 的路径,所以用 webroot 的话不能验证。。。

    因为我只想做一下 https 的 301 转发。。。。。想这样的,不需要指定 root 的路径。。
    由于域名比较多想把证书都放在一起,以后新加的证书也放在一一个文件下。。。大家有办法吗?

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

    server {
    server_name airtranst.com;
    listen 443;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/airtranat.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/airtranat.com/privkey.pem;

    return 301 http://artransat.com$request_uri;
    }
    lightening
        29
    lightening  
       Oct 25, 2016
    https://github.com/Neilpang/acme.sh 会把所有证书放在 ~/.acme.sh 下吧
    jsjcjsjc
        30
    jsjcjsjc  
    OP
       Oct 25, 2016
    @lightening 这么牛~~~我去试试看
    wangxiaodong
        31
    wangxiaodong  
       Oct 25, 2016
    楼上各位,都忘了 Let's Encrypt 是支持 DNS 验证的,根本不需要 webroot 方式。

    服务器什么都不用做,直接到域名商获取 API KEY ,通过 https://github.com/xenolf/lego 开源项目直接 DNS 进行 HTTPS 认证即可。

    lego 的 Docker 容器是: docker pull xenolf/lego

    我网站的所有域名都是通过 lego 的 dns 方式签发的, 大家可以点开我网站的 https 证书进行查看

    最后贴下我的网站 https://congci.com
    jsjcjsjc
        32
    jsjcjsjc  
    OP
       Oct 25, 2016
    @wangxiaodong 一个比一个牛~~~
    lightening
        33
    lightening  
       Oct 26, 2016
    @wangxiaodong 用 DNS 方式签发时自动 renew 时需要新 token 吧?需要每三个月手工 update DNS ?
    lightening
        34
    lightening  
       Oct 26, 2016
    @wangxiaodong 哦,做了各大 DNS 运营商的 api 啊,不错。
    lslqtz
        35
    lslqtz  
       Oct 26, 2016
    @jsjcjsjc 求给草榴的代理密码
    jsjcjsjc
        36
    jsjcjsjc  
    OP
       Oct 26, 2016
    @lslqtz 啥叫代理密码?
    lslqtz
        37
    lslqtz  
       Oct 26, 2016
    @jsjcjsjc 用户名密码
    zhfish
        38
    zhfish  
       Oct 26, 2016
    jsjcjsjc
        39
    jsjcjsjc  
    OP
       Oct 26, 2016
    @lslqtz 我没有设置啊...
    liyangyijie
        40
    liyangyijie  
       Oct 27, 2016
    @w99wen
    server {
    listen 80;
    listen 443 ssl http2;
    add_header Strict-Transport-Security "max-age=63072000; preload";
    server_name xx.ml;
    ssl_certificate /etc/nginx/xx.ml.crt;
    ssl_certificate_key /etc/nginx/xx.ml.key;
    location / {
    proxy_cache cache_one;
    proxy_cache_valid 200 304 3d;
    proxy_cache_key $host$uri$is_args$args;
    proxy_set_header Host www.t66y.com;
    proxy_set_header Accept-Encoding "";
    #insu
    #proxy_pass http://45.64.64.102/;
    #cloudf
    proxy_pass http://104.27.120.116/;
    subs_filter_types text/css text/xml text/javascript;
    subs_filter http://www.viidii.info https://xx.ml/css;
    subs_filter www.t66y.com xx.ml;
    #替换 dmm 图片
    subs_filter http://p.dmm.co.jp http://202.6.244.170;
    subs_filter http://pics.dmm.co.jp http://202.6.244.170;
    subs_filter http://image.news.dmm.co.jp http://103.254.144.37;
    sub_filter_once off;
    proxy_redirect http://www.t66y.com/ /;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
    location /css {
    proxy_pass http://www.viidii.info/;
    proxy_set_header Accept-Encoding "";
    }
    }

    可登录 css 完整
    violet007
        41
    violet007  
       Nov 28, 2016
    我们域名 www.XX.com 做了 CDN 加速了,申请过证书之后, https://www.XX.com 不能访问, https://XX.com 是可以正常访问的,为什么? CDN 加速会影响到这个证书吗?测试的着急用,在线等,各位大哥,帮帮忙
    violet007
        42
    violet007  
       Nov 29, 2016
    已经解决,被 CDN 厂商拦截,要收费的。没事了
    @violet007
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1344 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 17:18 · PVG 01:18 · LAX 10:18 · JFK 13:18
    ♥ Do have faith in what you're doing.