Jmeter:"找不到别名的证书"



我在尝试使用 Jmeter 加载客户端证书时遇到问题。我相信我遵循了本教程,但在运行测试时出现错误。

据我所知,我的密钥库文件似乎设置正确。如果我运行keytool -list -v -keystore <mykeystore>我会得到:

Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: client
Creation date: Jul 31, 2017
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
<certificate body>

当我运行测试时,事情似乎从一开始就运行良好

Total of 1 aliases loaded OK from keystore

但是,在结果输出中,我看到错误消息:

java.lang.IllegalArgumentException: No certificate found for alias:'client'

什么可能导致 Jmeter 无法读取证书?

对于非心灵感应的JMeter专家来说,在不知道您的确切配置步骤的情况下很难提供答案,因此我将提出一个绝对有效的解决方案:

  1. 还原所有配置更改(或只是从下载页面获取干净的JMeter(

  2. 将下一行添加到system.properties文件中(位于 JMeter 安装的 "bin" 文件夹中(

    javax.net.ssl.keyStoreType=pkcs12 or jks  
    javax.net.ssl.keyStore=/path/to/your/jks keystore or .p12 certificate
    javax.net.ssl.keyStorePassword=your certificate or keystore password 
    
  3. 重新启动 JMeter 以选取属性(如果您通过 -D 命令行参数(如jmeter -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=secret.p12 ...(传递属性 - 则不需要重新启动(

就是这样,现在您的传出HTTP请求将使用提供的证书进行加密。

更多信息:

  • 如何将 JMeter 负载测试设置为使用客户端证书
  • 使用 javax.net.ssl.keyStore 系统属性指定证书的密钥库

最新更新