You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何记录和查看AWS Java SDK发送的HTTP(S)请求

监测AWS Java SDK与服务端交互协议的方案

1. 启用SDK内置HTTP日志直接校验

这是最便捷的方案,不需要额外工具,直接通过Spring Boot日志配置就能看到完整请求信息:

  • 如果你使用AWS Java SDK V2版本,在application.properties/application.yml中添加如下配置:
    # 开启SDK核心HTTP请求日志
    logging.level.software.amazon.awssdk.http = DEBUG
    # 如果你用的是Apache同步HTTP客户端,加这行打印请求明细
    logging.level.org.apache.http = DEBUG
    # 如果你用的是Netty异步HTTP客户端,加这行打印请求明细
    logging.level.io.netty.handler.codec.http = DEBUG
    
  • 如果你使用AWS Java SDK V1版本,添加如下配置:
    logging.level.com.amazonaws.http = DEBUG
    logging.level.org.apache.http.wire = DEBUG
    

开启后日志会打印完整的请求URL、协议、端口信息,你可以直接确认请求前缀是否为https://、目标端口是否为443,就能验证S3等操作是否全程走HTTPS。

2. 全局强制SDK仅使用HTTPS(主动规避HTTP风险)

除了被动校验,你可以直接在客户端配置层面强制所有请求走HTTPS,从根源避免HTTP请求产生:

  • V2版本SDK客户端配置示例:
    S3Client s3Client = S3Client.builder()
            .region(Region.of("你的区域ID,比如cn-north-1"))
            // 强制指定HTTPS协议的端点
            .endpointOverride(URI.create("https://s3.cn-north-1.amazonaws.com.cn"))
            .build();
    
  • V1版本SDK客户端配置示例:
    ClientConfiguration clientConfig = new ClientConfiguration();
    // 全局强制使用HTTPS协议
    clientConfig.setProtocol(Protocol.HTTPS);
    AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
            .withRegion("你的区域ID")
            .withClientConfiguration(clientConfig)
            .build();
    

3. 抓包做终极校验

如果需要更直观的链路验证,可以用抓包工具确认流量情况:

  • 用Wireshark设置过滤规则tcp.port == 443 and host 你的AWS服务端点域名,就能看到应用和AWS服务之间的所有流量,确认没有80端口的HTTP流量产生。
  • 也可以在Java启动参数中配置代理,把请求转发到Charles/Fiddler这类代理工具中,查看完整的请求链路协议。

补充说明:AWS Java SDK 1.11.x及以上版本、所有2.x版本默认访问所有AWS服务都会走HTTPS,只要你没有主动配置HTTP开头的自定义端点,默认不会产生HTTP请求。

内容的提问来源于stack exchange,提问作者Davis Ward

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:54:07