【问题标题】:JMeter and optional SSL client certificateJMeter 和可选的 SSL 客户端证书
【发布时间】:2013-01-30 15:42:01
【问题描述】:

我正在使用涉及 SSL 客户端证书的 JMeter 2.8 设置测试计划。测试计划大致包括对 server1 和 server2 的两次 https 调用。

棘手的部分是对 server1 的调用不应使用 SSL 客户端身份验证(尽管服务器正在请求),而对 server2 的调用必须使用 SSL 客户端身份验证。

目前,只要我将密钥库提供给 JMeter,所有 https 调用都会发送 SSL 证书,这会导致对 server1 的调用失败。

我目前尝试了两种方法:

  1. 我从 JMeter 命令行中删除了 -Djava.net.ssl.keyStore=xxx,并使用 BeanShell 或 BSH 预处理器在调用 server2 之前对其进行设置,但它不起作用并且调用 server 2 失败,就好像没有指定密钥库一样.
  2. 我尝试使用 Keystore 管理配置器在调用 server1 之前指定一个不存在的密钥,但是当我将开始和结束索引放在存储区中的最后一个证书之后时,JMeter 仍然发送存储区中的第一个证书。

【问题讨论】:

    标签: ssl-certificate jmeter


    【解决方案1】:

    您可以执行以下操作:

    • 将以下 JVM 属性添加到 jmeter:

      -Djavax.net.ssl.keyStore=<path to folder containing keystore>/keystore.jks       
      
      -Djavax.net.ssl.keyStorePassword=password if any
      
    • 使用Keystore Configuration

    • 在 user.properties 中设置:

      https.use.cached.ssl.context=false
      
    • 对必须发送客户端证书的采样器使用 HC4Impl

    • 对不能发送的使用JavaImpl(这是一种技巧,我必须说我不明白为什么如果服务器请求它就不能发送客户端证书)

      李>

    【讨论】:

    • 不错的把戏。对于为什么这里是一个快速的解释:我在测试期间连接到几台服务器。第二个需要客户端证书身份验证。第一个可以使用证书进行身份验证,如果没有提供证书,则可以回退到用户名/密码表单。由于我必须首先使用表单身份验证,因此在没有技巧的情况下设置客户端证书将阻止我的测试工作。
    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 2017-06-01
    • 2012-07-19
    • 1970-01-01
    • 2017-04-28
    • 2013-06-20
    • 2013-08-04
    • 2012-02-15
    相关资源
    最近更新 更多