V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qw7692336
V2EX  ›  问与答

开放出去给人用的 API,使用 HTTPS,并且打算使用 startssl,靠谱吗?

  •  
  •   qw7692336 · 2015-07-15 03:55:15 +08:00 · 2590 次点击
    这是一个创建于 3422 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是restful的API

    给每个用户提供一个私有的key,用户在使用的时候,需要附带上这个key,用HTTPS的目的是为了使key不被抓包抓到。

    部署在Apache的话,有没有什么需要注意的。

    21 条回复    2015-07-15 20:53:16 +08:00
    Septembers
        1
    Septembers  
       2015-07-15 04:31:21 +08:00
    这 都 是 必 须 做 的 基 本 工 作

    另外建议使用nginx做"API网关"
    chinalion
        2
    chinalion  
       2015-07-15 06:58:50 +08:00
    自签名的SSL不行么?
    imlonghao
        3
    imlonghao  
       2015-07-15 07:54:10 +08:00 via Android
    @chinalion 各种弹不信任,要多加代码不验证证书,可能会被中间人攻击
    你以为你是12306
    coolcfan
        4
    coolcfan  
       2015-07-15 08:03:54 +08:00
    貌似一般都是靠https来保护……
    有没有可能在http下,构建出即使被抓包也不会遭到用户身份盗用的restful api……
    chinalion
        5
    chinalion  
       2015-07-15 08:35:52 +08:00
    @imlonghao 用浏览器访问的?
    wy315700
        6
    wy315700  
       2015-07-15 08:42:22 +08:00
    @coolcfan 端对端加密,,,,
    imlonghao
        7
    imlonghao  
       2015-07-15 08:56:03 +08:00 via Android
    @chinalion 不是
    chinalion
        8
    chinalion  
       2015-07-15 09:11:38 +08:00
    @imlonghao 那好像可以用自签名证书
    imlonghao
        9
    imlonghao  
       2015-07-15 09:14:16 +08:00 via Android
    @chinalion 那你用https的初衷就没有了
    wesley
        10
    wesley  
       2015-07-15 09:18:07 +08:00
    startssl的免费证书不能用于商业目的
    wy315700
        11
    wy315700  
       2015-07-15 09:26:25 +08:00
    @imlonghao 自签名证书不是这么用的
    应该是把自己的证书指纹加到代码里而不是不验证证书,理论上这样子更安全
    chinalion
        12
    chinalion  
       2015-07-15 09:31:19 +08:00 via Android
    @imlonghao 自签名证书难道不能加密么
    66450146
        13
    66450146  
       2015-07-15 10:22:47 +08:00
    @wy315700 写到代码里面,那证书过期了咋整。。。
    wy315700
        14
    wy315700  
       2015-07-15 10:23:49 +08:00
    @66450146
    弄一个20年的证书,不怕过期。
    66450146
        15
    66450146  
       2015-07-15 11:50:42 +08:00
    @wy315700 服务器被入侵私钥被拿到了咋整?怎么 revoke?这些都解决以后其实还不如买别人的了
    wy315700
        16
    wy315700  
       2015-07-15 12:04:36 +08:00
    @66450146
    依赖系统内置根证书就容易出现系统里被植入一个根证书以后就完蛋了

    服务器毕竟是可控的,客户端是不可控的
    smileawei
        17
    smileawei  
       2015-07-15 15:32:33 +08:00
    额 也不贵吧 ,也就是9刀。如果还嫌贵就坑vmbox.co的3刀证书
    finian
        18
    finian  
       2015-07-15 15:56:02 +08:00
    这个 key 还是会泄露的,比如反编译客户端,或者中间人攻击嗅探 HTTPS
    qw7692336
        19
    qw7692336  
    OP
       2015-07-15 16:24:05 +08:00
    @chinalion
    @imlonghao
    不是用浏览器访问
    用户curl命令访问的话,同样会验证证书的授权情况。但不排除某种访问方式会跳过验证过程。
    我只是希望可以给用户简单安全地使用。如果用户不进行授权验证的话,就有可能受到中间人攻击。

    @coolcfan
    http下就要靠更复杂的机制来保证安全性了

    @wy315700
    你说得很有道理,但是这种方法会增加使用复杂性,得考虑一下。
    本来有想过用类似公众号的授权方式,但是用户用起来会比较麻烦。


    @smileawei
    如果免费实在不靠谱的话,可以考虑收费的。


    @finian
    这个key提供给用户后,用户部署在他们自己的服务器
    finian
        20
    finian  
       2015-07-15 16:27:45 +08:00
    @qw7692336 用户是通过他们的服务器访问你们的 API 是么?如果是这样,你们的方案已经比较靠谱了
    sun1534
        21
    sun1534  
       2015-07-15 20:53:16 +08:00
    ip绑定
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:58 · PVG 05:58 · LAX 13:58 · JFK 16:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.