轻松全站 HTTPS,还没用上 https (可申请泛域名证书)的朋友可以操练起来了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
getaobj
V2EX    程序员

轻松全站 HTTPS,还没用上 https (可申请泛域名证书)的朋友可以操练起来了

  •  4
     
  •   getaobj 2018-11-07 11:03:59 +08:00 6121 次点击
    这是一个创建于 2601 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前几天刚搭了博客:《双 11 买服务器的朋友一定有要搭博客的吧? Docker+Ghost 快速搭建教程请拿走》

    写了点文章手机上看,发现竟然被运营商劫持投广告了。这不能忍,只是连夜上 https 了。

    原文图文链接: https://www.jianshu.com/p/57e5bb1277ce

    为什么要上 HTTPS

    安全:你与用户之间的消息加密传输,防止中间人攻击(就是我遇到的问题)

    其它优点:当你在国内使用域名时,需要备案。有时你想测试一下你的站,用上未备案的域名,怎么办呢? https 可以帮你暂时绕过阿里云弹的未备案页(强烈建议去备案你的域名,一来你应当守法,二来未备案国内 cdn、网站收录什么的都需要备案的域名),其它暂时没想到有什么优点。

    准备

    • 域名(自备)
    • acme.sh acme.sh 是一个自动申请 https 证书的脚本,使用方便,功能也非常强大。

    安装: curl https://get.acme.sh | sh

    或者

    wget -O - https://get.acme.sh | sh

    这样你已经把 acme.sh 这个小工具安装到你本地的 ~/.acme.sh/中了,而不会在你系统的其它地方装些乱七八糟的东西。

    极速开始

    阿里云购买域名的朋友可以走这个极速通道,因为阿里云有接口可以直接操作域名控制台,这个接口已经被整合到了 acme.sh 这个工具里面。只要设置一下 Ali_Key 和 Ali_Secret, 从哪里获得?

    1. 在你的命令行中执行如下命令: export Ali_Key="换成你的 AccessKey ID" export Ali_Secret="换成你的 Access Key Secret"

    2. 开始申请证书 acme.sh --issue --dns dns_ali -d 2td.cc -d '*.2td.cc' 2td.cc 是我的域名,这里需要换成你的。 参数解释: acme.sh :表示使用你刚安装好的 acme.sh

    --issue :申请证书

    --dns dns_ali:使用阿里云的 dns 服务,在阿里云买的域名,在没有修改默认 dns 的前提下,都可以使用这个参数来申请 https 证书。

    -d 2td.cc-d表示 domain,后面跟你要申请域名。

    -d '*.2td.cc':这里的-d 与上方一样,-d 参数可以带多个,这里的'*.2td.cc'中的 * 表示泛域名,只要申请了这个证书像( www.2td.ccmail.2td.cch5.2td.cc ...)这类的二级域名都可以使用此证书来实现 https。注意 2td.cc这个域名不在这条规则里,所以上面又加了一条-d 2td.cc,这样你的主域名、二级子域名均可以使用此证书。

    1. 等待执行完成,期间会有 120 秒的倒计时,结束后如果显示成功,则证书申请成功。

    2. 应用到 nginx 修改你 nginx 的配置,配置 https

    server { listen 443 ssl; # 有了 https 可以尝试开启 http2,加速你的网站 # http2 需要你 nginx 加载了 http2 模块,用如下配置开启。 # listen 443 ssl http2; server_name 2td.cc; ssl_certificate /root/.acme.sh/2td.cc/fullchain.cer; ssl_certificate_key /root/.acme.sh/2td.cc/2td.cc.key; # charset koi8-r; access_log /var/log/nginx/host.access.log main; # 下面写你之前的配置 } 
    26 条回复    2018-11-08 22:34:45 +08:00
    find456789
        1
    find456789  
       2018-11-07 11:09:57 +08:00   4
    用啥 nginx, 用 caddy 一秒钟就能上 https
    getaobj
        2
    getaobj  
    OP
       2018-11-07 11:22:38 +08:00
    @find456789 这也是个好方案

    nginx 重度用户,切起来不好切啊
    dmhs
        3
    dmhs  
       2018-11-07 13:11:34 +08:00
    域名证书怎么注销呢?
    wlchn
        4
    wlchn  
       2018-11-07 13:15:45 +08:00 via iPhone   1
    如果对响应速度不敏感,比如一些个人博客,可以直接 cloudflare 上 https。
    getaobj
        5
    getaobj  
    OP
       2018-11-07 13:31:53 +08:00   1
    @dmhs
    acme.sh --remove -d example.com
    getaobj
        6
    getaobj  
    OP
       2018-11-07 13:33:42 +08:00
    @wlchn 感谢提供其它方式的解决方案,手动点赞。
    cwang22
        7
    cwang22  
       2018-11-07 13:36:57 +08:00
    @wlchn Cloudflare 对响应速度有影响么?
    getaobj
        8
    getaobj  
    OP
       2018-11-07 13:41:49 +08:00
    @cwang22 个人感觉,国外的可能稍稍慢一点。
    mytry
        9
    mytry  
       2018-11-07 13:45:03 +08:00   1
    cloudflare + workbox
    getaobj
        10
    getaobj  
    OP
       2018-11-07 13:51:50 +08:00
    @mytry 手动感谢,以示尊敬
    soulzz
        11
    soulzz  
       2018-11-07 13:58:18 +08:00 via Android
    所以我觉得挺麻烦的,直接在 cdn 上 https,服务器就不用配置了
    getaobj
        12
    getaobj  
    OP
       2018-11-07 14:14:58 +08:00
    @soulzz 用 cdn 的土豪啊,不过这配置的真的不麻烦啊
    byfar
        13
    byfar  
       2018-11-07 14:44:25 +08:00
    不错,已收藏
    calpamomo
        14
    calpamomo  
       2018-11-07 15:21:49 +08:00   1
    Netlify 秒上 HTTPS。。。
    ilaipi
        15
    ilaipi  
       2018-11-07 15:39:57 +08:00
    大佬,用这种方式,能不能在哪里看到我都申请了多少个域名证书?
    getaobj
        16
    getaobj  
    OP
       2018-11-07 16:09:11 +08:00
    @calpamomo 赞,已收藏
    getaobj
        17
    getaobj  
    OP
       2018-11-07 16:10:19 +08:00
    @ilaipi 他这个是调用接口去 let's encrypt 申请的证书,具体能不能查就不清楚了。

    不过我感觉你都没有账号密码,用什么去查呢,用域名吗?
    ilaipi
        18
    ilaipi  
       2018-11-07 16:19:23 +08:00
    @getaobj #17 是的,没有用户名密码,没法查。。只能自己记录了。。之前第一次搞不是很懂,乱七八糟的,自动更新都失效了,最近过期了,现在重新搞搞。。规范一点,再自己记录一下。参考参考这篇文章,感谢!
    getaobj
        19
    getaobj  
    OP
       2018-11-07 16:25:13 +08:00
    @ilaipi 是用的同一个工具吗?用这个工具会自动加一条自动重新申请的 crontab,不需要手动去更新
    ilaipi
        20
    ilaipi  
       2018-11-07 16:30:55 +08:00
    @getaobj 嗯嗯,是这个工具,可能自动任务失败了,之前的证书失效了。我现在再生成一次,看 3 个月后怎么样
    ilaipi
        21
    ilaipi  
       2018-11-07 16:47:49 +08:00
    [Wed Nov 7 16:44:40 CST 2018] Your cert is in /root/.acme.sh/*.xxxxx.com/*.xxxxx.com.cer
    [Wed Nov 7 16:44:40 CST 2018] Your cert key is in /root/.acme.sh/*.xxxxx.com/*.xxxxx.com.key
    [Wed Nov 7 16:44:40 CST 2018] The intermediate CA cert is in /root/.acme.sh/*.xxxxx.com/ca.cer
    [Wed Nov 7 16:44:40 CST 2018] And the full chain certs is there: /root/.acme.sh/*.xxxxx.com/fullchain.cer

    @getaobj 我想问下,*.xxxxx.com.cer 和 fullchain.cer 有什么区别?还有那个 ca.cer ?
    getaobj
        22
    getaobj  
    OP
       2018-11-07 17:37:28 +08:00
    @ilaipi 好问题!

    *.xxxxx.com.cer 这个应该是你根证书,是真正的证书。

    fullchain.cer 是校验证书用的

    以上个人看法,可参考 https://support.dnsimple.com/articles/what-is-ssl-certificate-chain/
    dif
        23
    dif  
       2018-11-07 18:28:24 +08:00   1
    CloudFlare + 源站, 全程 SSL。
    getaobj
        24
    getaobj  
    OP
       2018-11-07 19:03:45 +08:00
    @dif 赞,手动感谢
    hanguofu
        25
    hanguofu  
       2018-11-08 13:38:09 +08:00 via Android
    这个科普贴写得好,同感谢!
    getaobj
        26
    getaobj  
    OP
       2018-11-08 22:34:45 +08:00
    @hanguofu 哈哈,希望对你有帮助
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2478 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 05:57 PVG 13:57 LAX 21:57 JFK 00:57
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86