V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
luxinfl
V2EX  ›  程序员

spring 的 RestTemplate 是不是可以直接就能访问 https 接口的?

  •  
  •   luxinfl · 2020-06-05 10:52:27 +08:00 · 2527 次点击
    这是一个创建于 1634 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网上搜一堆,我看都是要先初始化 sslcontext,自定义 ClientHttpRequestFactory,然后 new RestTemplate(factory).exec(....)。但是我自己没有配置这些,直接注入 restTemplate 也能访问。。请问这个是有啥区别吗?

    11 条回复    2020-06-05 16:32:14 +08:00
    guyeu
        1
    guyeu  
       2020-06-05 10:59:17 +08:00
    私人自建的站点证书可能没有被签发,所以需要手动添加信任。
    chendy
        2
    chendy  
       2020-06-05 11:05:54 +08:00
    有时候不用配,有时候需要配,比如证书不是 java 默认信任的 ca 签发的,比如要配置客户端证书
    luxinfl
        3
    luxinfl  
    OP
       2020-06-05 11:11:49 +08:00
    @guyeu 所以我可能理解,这个初始化 sslcontext 只是用来加载证书的么。。。
    luxinfl
        4
    luxinfl  
    OP
       2020-06-05 11:12:21 +08:00
    @chendy 所以配置步骤单纯只是用来加载证书的是吧。。不需要证书的可以不用管
    guyeu
        5
    guyeu  
       2020-06-05 11:19:02 +08:00
    @luxinfl #3 https 一定要证书的
    luxinfl
        6
    luxinfl  
    OP
       2020-06-05 11:29:36 +08:00
    @guyeu 那我直接 new RestTemplate().getForEntity("https://www.baidu.com",String.class) 也可以访问啊
    guyeu
        7
    guyeu  
       2020-06-05 11:42:30 +08:00
    @luxinfl #6 那是因为 HTTP 可以从签发机构获取到证书。。。
    guyeu
        8
    guyeu  
       2020-06-05 11:43:00 +08:00
    @luxinfl #6 建议去了解一下 tsl 是怎么工作的
    chendy
        9
    chendy  
       2020-06-05 12:12:09 +08:00
    @luxinfl #4 不需要“额外”配置证书就不需要,主要的 ca 的证书都是默认配置好了的
    luxinfl
        10
    luxinfl  
    OP
       2020-06-05 13:56:01 +08:00
    @guyeu
    @chendy
    谢谢大佬,是我理解偏差了。。
    hantsy
        11
    hantsy  
       2020-06-05 16:32:14 +08:00
    运行环境的 jre 不能识别的要另外加载 crt 吧, 或者直接全局安装到运行 Jre 的证书目录下去。记不清了,以前弄过。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4406 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 01:02 · PVG 09:02 · LAX 17:02 · JFK 20:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.