V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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 · 2016-10-24 21:54:57 +08:00 · 8850 次点击
    这是一个创建于 2739 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ./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 条回复    2016-11-29 11:27:31 +08:00
    msg7086
        1
    msg7086  
       2016-10-24 23:48:44 +08:00
    Could not connect 是你 Nginx 没起来吧?
    (另外也可以试试 acme.sh
    jkmmmm
        2
    jkmmmm  
       2016-10-25 08:32:22 +08:00
    你是不是占着 80 端口呢?得先把 nginx 停了吧!
    jsjcjsjc
        3
    jsjcjsjc  
    OP
       2016-10-25 09:06:57 +08:00
    @jkmmmm webroot 是不需要停用端口的,而且我停用了也没用~~
    只有 standalone 是可以的
    qyz0123321
        4
    qyz0123321  
       2016-10-25 09:32:10 +08:00
    这个网站是什么鬼,上班的时候不要打开啊。。。
    w99wen
        5
    w99wen  
       2016-10-25 09:51:03 +08:00
    楼主过分了。这网站什么鬼。
    zhenjiachen
        6
    zhenjiachen  
       2016-10-25 10:11:13 +08:00
    老司机
    bobylive
        7
    bobylive  
       2016-10-25 11:10:20 +08:00 via Android
    https://github.com/diafygi/acme-tiny 签发即可,完全不需要关站
    b1eberg0n
        8
    b1eberg0n  
       2016-10-25 11:22:00 +08:00 via iPhone
    新的开车方式么…
    jsjcjsjc
        9
    jsjcjsjc  
    OP
       2016-10-25 12:25:39 +08:00
    大家不要转移注意力
    jsjcjsjc
        10
    jsjcjsjc  
    OP
       2016-10-25 12:31:18 +08:00
    我就是想把多个域名的证书放在一起文件下,后面新增的也在更新到同一个文件里~
    w99wen
        11
    w99wen  
       2016-10-25 12:31:41 +08:00
    能给个 nginx 反代规则不。 thx
    jsjcjsjc
        12
    jsjcjsjc  
    OP
       2016-10-25 13:15:15 +08:00
    @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  
       2016-10-25 13:47:37 +08:00
    你看下这个地方。把你那个网站加个用户名密码吧。 http://www.oschina.net/question/733503_146265
    jsjcjsjc
        14
    jsjcjsjc  
    OP
       2016-10-25 15:06:47 +08:00
    @w99wen 我关键是怕墙的检测~~
    lslqtz
        15
    lslqtz  
       2016-10-25 15:18:17 +08:00
    @jsjcjsjc 有用户名和密码不怕检测
    jsjcjsjc
        16
    jsjcjsjc  
    OP
       2016-10-25 16:53:56 +08:00
    @lslqtz 墙是通过路由器的关键词检测的吧?你只是访问的时候需要密码,信息传输经过墙的时候还是明文吧?比如谷歌搜索关键词
    lightening
        17
    lightening  
       2016-10-25 16:58:15 +08:00
    @jsjcjsjc 你 Nginx 里关于 webroot 的配置我怎么没看到?
    fangdingjun
        18
    fangdingjun  
       2016-10-25 17:11:52 +08:00
    在你的 webroot 下放一下 html 文件,你自己测试一下用域名能不能访问
    w99wen
        19
    w99wen  
       2016-10-25 17:29:43 +08:00
    @lightening 反向代理不需要 webroot 吧,我感觉不需要
    我现在已经申请好了 ssl 证书,也弄好了 http->https 的跳转。然而,跳转至后就会出现 css 文件不能加载的问题。
    你可以在 cl.w99wen.tk 上看,账号密码是 whyme 123456
    w99wen
        20
    w99wen  
       2016-10-25 17:31:15 +08:00
    你申请 ssl 证书的时候。不要开着重定向。就把 webroot 放在常用的 html 目录。吧 index 设置下。等 ssl 证书申请下来了你在吧重定向加上去。
    iA7489
        21
    iA7489  
       2016-10-25 17:35:07 +08:00 via iPhone
    无责任推荐 acme.sh 签发证书
    w99wen
        22
    w99wen  
       2016-10-25 17:37:24 +08:00 via iPhone
    @iA7489 警察叔叔,就是他
    chunchu
        23
    chunchu  
       2016-10-25 17:52:18 +08:00
    @w99wen
    有 http 的连接,在 https 下会出现 css 文件不能加载,你需要将 http 部分也代理一下
    lightening
        24
    lightening  
       2016-10-25 17:52:57 +08:00
    @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  
       2016-10-25 18:36:12 +08:00
    @jsjcjsjc 你知道 https 吗。。
    lslqtz
        26
    lslqtz  
       2016-10-25 18:36:46 +08:00
    @jsjcjsjc 不对,当我没说。。
    你申请 ssl 的时候,要改成用地址,不能挂反代
    yidinghe
        27
    yidinghe  
       2016-10-25 18:43:33 +08:00 via Android
    用 root 运行吧,在这之前确保 nginx 配置文件配置好了相应的域名,如果有 alias 的话每个域名都要配置到。
    jsjcjsjc
        28
    jsjcjsjc  
    OP
       2016-10-25 19:04:35 +08:00
    @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  
       2016-10-25 19:49:29 +08:00
    https://github.com/Neilpang/acme.sh 会把所有证书放在 ~/.acme.sh 下吧
    jsjcjsjc
        30
    jsjcjsjc  
    OP
       2016-10-25 20:37:50 +08:00
    @lightening 这么牛~~~我去试试看
    wangxiaodong
        31
    wangxiaodong  
       2016-10-25 22:04:08 +08:00
    楼上各位,都忘了 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
       2016-10-25 22:46:05 +08:00
    @wangxiaodong 一个比一个牛~~~
    lightening
        33
    lightening  
       2016-10-26 00:59:34 +08:00
    @wangxiaodong 用 DNS 方式签发时自动 renew 时需要新 token 吧?需要每三个月手工 update DNS ?
    lightening
        34
    lightening  
       2016-10-26 01:01:58 +08:00
    @wangxiaodong 哦,做了各大 DNS 运营商的 api 啊,不错。
    lslqtz
        35
    lslqtz  
       2016-10-26 10:38:44 +08:00
    @jsjcjsjc 求给草榴的代理密码
    jsjcjsjc
        36
    jsjcjsjc  
    OP
       2016-10-26 11:56:43 +08:00
    @lslqtz 啥叫代理密码?
    lslqtz
        37
    lslqtz  
       2016-10-26 13:47:47 +08:00
    @jsjcjsjc 用户名密码
    zhfish
        38
    zhfish  
       2016-10-26 17:45:27 +08:00
    jsjcjsjc
        39
    jsjcjsjc  
    OP
       2016-10-26 19:06:25 +08:00
    @lslqtz 我没有设置啊...
    liyangyijie
        40
    liyangyijie  
       2016-10-27 09:23:53 +08:00
    @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  
       2016-11-28 18:07:40 +08:00
    我们域名 www.XX.com 做了 CDN 加速了,申请过证书之后, https://www.XX.com 不能访问, https://XX.com 是可以正常访问的,为什么? CDN 加速会影响到这个证书吗?测试的着急用,在线等,各位大哥,帮帮忙
    violet007
        42
    violet007  
       2016-11-29 11:27:31 +08:00
    已经解决,被 CDN 厂商拦截,要收费的。没事了
    @violet007
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5264 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:16 · PVG 09:16 · LAX 18:16 · JFK 21:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.