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