请教一个可能是 ssl 证书的相关问题,但更像是网络基础的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yongSir
V2EX    程序员

请教一个可能是 ssl 证书的相关问题,但更像是网络基础的问题

  •  
  •   yongSir 2022-08-26 09:59:03 +08:00 2741 次点击
    这是一个创建于 1207 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的

    最近想做一个 iOS 团队的自动测试的分发网站,核心功能是完成测试团队人员管理和 app 信息等的展示,这涉及到苹果的 App Store Connect API 的调用

    过程

    已知 apple 的 api 访问使用 jwt 认证 也通过在本地分别通过 ruby 脚本+curl 和 postman 都完成了 token 和 api 的验证,都能顺利拿到自己想要的数据

    于是我认为问题不大了,就开始在本地起了一个 node 的 express 做 web 服务。先在自己电脑上试试,把网站布到本地的 node 上,但问题出现了,具体是 当通过使用 jsonwebtoken + axois 对 apple 相关 api 的调用总是 401

    分析

    开始猜测是 token 不对,但通过将 token 复制到 postman 发现 token 是对的,使用同样的 token 在 postman 是能够跑通的 api 的 后来思考是忽略了 apple 的 api 都需要 https ,而我本地起的 express 只是 http 的,所以卡在了这里

    疑问

    基本问题算是清楚了,但为啥呢?

    当使用 curl 或者 postman 都能正常成功,也没提示我 ssl 证书问题啊? 现在当本地起了一个 exepress 就开始不通过,我自己理解应该是这样的:

    2 过程应该可以跟 33 一致,express 服务在我理解中就是一个 node 版的 postman ,但很事实证明我是不对的,所以想象诸位请教一下:

    • 第一,使用 express 该如何能达到的目的呢?
    • 第二,已知 apple 的访问肯定是要 https 的,那我本地使用 postman/curl (实际上我们使用 curl 这样的命令行,也没有指明证书)等工具能通的话,默认使用的证书是什么?可以肯定的是有的,我理解对吗?

    拟解决方案

    我自己也找了一些,现在的拟解决方式有

    让网管给我个可以公网访问的正确的 https 证书的服务器,我将 exprss 布置到该服务器上,这样肯定是可以解决 但是,我还是觉得应该有其他的方案,特别是在测试的时候,比如有没有能实现上述 2 的过程 像大家请教 谢谢

    (原本发在问答节点,但好像大家更喜欢在这个节点讨论,就挪过来了,如果不合适请 Livid 处理)

    15 条回复    2022-08-26 17:03:01 +08:00
    Rache1
        1
    Rache1  
       2022-08-26 10:03:47 +08:00
    电脑装个 fiddler 之类的抓包工具(还需启用 https ),express 设置个代理到 fiddler 的端口,查看实际发出的包和 curl 、postman 发出的包有什么区别。
    yongSir
        2
    yongSir  
    OP
       2022-08-26 10:06:59 +08:00
    @Rache1 好的 我正在做,猜测肯定还是有区别的,否则没道理不一样
    kaedeair
        3
    kaedeair  
       2022-08-26 10:40:47 +08:00
    可能是 header 不一样?
    默认的证书一般是系统自带的,我只知道 curl 取决于编译期有没有用到 openssl 的依赖
    Daiwf
        4
    Daiwf  
       2022-08-26 11:09:05 +08:00
    如果你的猜想是对的,那么可能是因为你的程序不支持 TLS 。 你用 curl 和 postman 自带了支持。但是 401 我总觉得是格式问题,不太像是 tls 报错。
    Daiwf
        5
    Daiwf  
       2022-08-26 11:10:50 +08:00
    抓包的话 wireshark 直接能看到握手过程。fiddler 好像看不到。
    zhuisui
        6
    zhuisui  
       2022-08-26 11:24:49 +08:00
    是我搞错什么了吗,express 不是用来当作 web 服务器,而 curl 和 postman 是 web 请求客户端?
    你请求苹果的 api ,使用 node http 或某个客户端请求库做的吧,跟 express 无关
    zhuisui
        7
    zhuisui  
       2022-08-26 11:27:14 +08:00
    你如果是用 node http 模块发的请求,请改成用 https ,要么你就用第三方库 axois 、request 什么的
    chenjiangui998
        8
    chenjiangui998  
       2022-08-26 13:08:26 +08:00
    401 不是 ssl 问题, 直接用 postman 导出 axios 的代码到你的服务器试一下, 基本是参数问题
    wjfz
        9
    wjfz  
       2022-08-26 13:49:53 +08:00
    这么多天了还没解决?

    复制一下上一个帖子别人的评论:
    说明你调用的不对呗,express 发出的有问题,抓它的包跟 postman 发出的对照一下
    SanjinGG
        10
    SanjinGG  
       2022-08-26 13:57:58 +08:00
    401 不是没有授权吗?看后端日志是不是没拿到 token
    okakuyang
        11
    okakuyang  
       2022-08-26 14:03:16 +08:00
    与 expres 无关,你这个应该就是简单的请求头没写对。
    okakuyang
        12
    okakuyang  
       2022-08-26 14:07:21 +08:00
    如果你是从浏览器发出 token ,你需要检查是否有跨域。某些情况下浏览器不会发送 Authorization 头
    king888
        13
    king888  
       2022-08-26 14:16:01 +08:00
    No code says a maoxian \doge
    redford42
        14
    redford42  
       2022-08-26 15:10:58 +08:00
    检查一下证书的中间链,看是不是中间链缺失
    Distand
        15
    Distand  
       2022-08-26 17:03:01 +08:00
    既然 postman 能请求成功,那就点 postman 右边的代码图标,复制出对应的 node 代码
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     886 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 19:51 PVG 03:51 LAX 11:51 JFK 14:51
    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