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

如何用Karate DSL判断HTTP请求的SSL/TLS版本及请求安全性?

在Karate中获取TLS版本与验证HTTPS请求安全性

一、快速判断是否为HTTPS请求

不用复杂操作,直接检查请求URL的协议前缀就行:

* def isHttps = karate.requestUrl.startsWith('https://')
* print '是否为HTTPS请求:', isHttps

返回true即为HTTPS请求,反之则是HTTP请求。

二、获取TLS版本(Karate无直接API,需自定义工具类)

Karate没有原生提供获取TLS版本的方法,但可以借助底层的Apache HttpClient实现:

  1. 新建Java工具类(放在项目src/test/java下对应包路径):
import org.apache.http.conn.ManagedHttpClientConnection;
import org.apache.http.conn.routing.HttpRoute;
import com.intuit.karate.http.HttpClient;
import com.intuit.karate.http.HttpRequest;

public class SslUtils {
    // 获取TLS协议版本
    public static String getTlsVersion(HttpClient client, HttpRequest request) {
        HttpRoute route = new HttpRoute(request.getUri());
        ManagedHttpClientConnection conn = (ManagedHttpClientConnection) client.getConnectionManager().getConnection(route, null);
        if (conn != null && conn.isOpen()) {
            return conn.getSSLSession().getProtocol();
        }
        return null;
    }
}
  1. 在Karate脚本中调用这个工具类:
* def SslUtils = Java.type('your.package.SslUtils') // 替换成你的实际包路径
* def tlsVersion = SslUtils.getTlsVersion(karate.httpClient, karate.prevRequest)
* print '当前使用的TLS版本:', tlsVersion

运行后会得到类似TLSv1.2或TLSv1.3的结果。

三、额外验证HTTPS安全性

你已经配置了* configure ssl = true,此时Karate会自动验证服务器证书有效性——如果证书过期、不被信任或域名不匹配,请求会直接报错,这本身就是一种安全校验。

如果需要手动查看证书信息,可扩展上面的SslUtils类:

// 在SslUtils类中新增方法
public static String getServerCertSubject(HttpClient client, HttpRequest request) {
    HttpRoute route = new HttpRoute(request.getUri());
    ManagedHttpClientConnection conn = (ManagedHttpClientConnection) client.getConnectionManager().getConnection(route, null);
    if (conn != null && conn.isOpen()) {
        return conn.getSSLSession().getPeerCertificates()[0].getSubjectDN().getName();
    }
    return null;
}

然后在Karate中调用:

* def certSubject = SslUtils.getServerCertSubject(karate.httpClient, karate.prevRequest)
* print '服务器证书主体信息:', certSubject

内容的提问来源于stack exchange,提问作者Rocio Vallejo Ramírez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 04:45:05