gpt4 book ai didi

java - JMeter - 根据应用环境设置javax.net.ssl.keyStore和javax.net.ssl.keyStorePassword

转载 作者:行者123 更新时间:2023-11-29 07:34:17 25 4
gpt4 key购买 nike

我们有 2 个环境,每个环境都有一个证书 PFX 文件。我尝试导入这 2 个证书以制作一个 JKS/P12 文件,并尝试根据别名访问证书。虽然我可以使用命令看到 2 个条目keytool -list -v -keystore "C:/yyyyy/xxxx.jks"-storepass "kdjfkdjfkdjf"> "C:/KeyStoreContents.txt",我无法访问任何证书并看到错误“找不到别名”。

有没有办法根据应用环境设置javax.net.ssl.keyStorejavax.net.ssl.keyStorePassword的值?

我尝试在 beanshell 预处理器中设置它们:

System.setProperty("javax.net.ssl.keyStore","C:/yyyyy/" + pOneTwoName + ".p12");
System.setProperty("javax.net.ssl.keyStorePassword", pOneTwoPwd);

效果不佳。

我还尝试了 ${__P(javax.net.ssl.keyStore, C:/yyyyyy/QA.p12)}${__setProperty(javax.net.ssl.keyStore , C:/yyyyyy/QA.p12)} 以上均无效。

有没有办法在 Keystore Configuration 元素执行之前动态加载这些值?

最佳答案

我可以通过以下步骤解决这个问题:

  1. 获取应用程序环境的所有证书(pfx)
  2. 可选:将文件的扩展名更改为 p12
  3. 使用以下命令为这些证书设置有意义的别名:

    keytool -changealias -alias "ExistingAliasName"-destalias "AppName_Environment"-keystore "C:\JKS\AppName_environment.p12"-storepass "StorePassword"

    第三步注意事项:

    一个。它可能会要求输入keypass,我们可以输入store pass

    即使我们在别名中提供大写字母,文本也会被转换为小写字母并设置为别名

    这里我遵循了这个别名命名约定:JMeter中提到的应用程序名称_环境名称

  4. 将证书导入 JKS 文件,我们可以为 JKS 设置任何密码,无需与证书相同。请参阅以下命令:

    keytool -importkeystore -srckeystore "C:\JKS\AppName _ Environment.p12"-srcstoretype pkcs12 -srcstorepass "SourceStorePasword"-destkeystore "C:\HomesiteJKS\BungalowFinal.jks"-deststoretype JKS -storepass "JKSPassword""

  5. 通过更改所需的参数值对所有剩余的证书重复上述步骤
  6. 一旦我们有了最终的 JKS,我们就可以开始更改 JKS 中每个证书的密码,并使其与 JKS( keystore )密码相同。请参阅以下命令:

    keytool -keypasswd -alias "AppName_Environment"-keystore “C:\JKS\Final.jks”

    第 6 步注意事项:它会要求您输入 keystore 密码、现有证书密码、新密码和重复新密码

  7. 对 JKS 文件的所有证书条目重复此步骤,以获得所有证书的 JKS 密码
  8. 现在我们可以使用这个文件并在 JMeter 的 system.properties 中添加以下条目:javax.net.ssl.keyStore=C:/JKS/Final.jks

    javax.net.ssl.keyStorePassword=JKSPassword

  9. 在 JMeter 的 user.properties 或 jmeter.properties 中添加以下条目,这将允许我们使用 JKS 文件中的多个证书:

    https.use.cached.ssl.context=false

  10. 将 Http 请求实现更改为 HttpClient4
  11. 使用以下值将 Keystore 配置元素添加到 JMeter 测试:

    一个。预加载:真

    变量名持有证书别名:CertAlias

    别名开始索引:0

    别名结束索引:10000

  12. JMeter 用户定义的变量必须具有带有所需别名的 CertAlias
  13. 一切就绪,我们应该能够通过加载具有别名的特定证书在不同的应用程序环境中运行脚本

关于java - JMeter - 根据应用环境设置javax.net.ssl.keyStore和javax.net.ssl.keyStorePassword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37953441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com