我正在尝试使用HTTP Request Sampler和SOAP Message Signer插件发送SOAP请求(已签名)。请求适用于SOAPUI。如果我使用相同的参数(对于SOAP消息签名者),它似乎通过JMeter失败。
作为SOAP Request的一部分,Header需要签名。签名时我收到以下错误。谁能告诉我失败的原因?
n.c.b.j.m.AbstractWSSecurityPreProcessor:构建WSS标头 o.a.w.d.m.WSSecSignature:开始签名......错误 n.c.b.j.m.AbstractWSSecurityPreProcessor: org.apache.wss4j.common.ext.WSSecurityException:没有证书 找到用户“cert_alias”进行签名
答案 0 :(得分:1)
您是否在jmeter密钥库中添加了别名 cert_alias 下的证书?
这就是消息的说法:
未找到签名用户“cert_alias”的证书
密钥库位于jmeter / bin文件夹
您可能想尝试这个插件:
答案 1 :(得分:1)
最后,我能够使用插件发送成功的请求。 我使用Signed Header作为SOAP请求的一部分。 插件配置: 密钥库文件:.jks文件的路径 密钥库密码:密码 证书别名 - cert_alias 证书密码 - 证书密码
从SOAP请求中删除签名头后,它工作正常。谢谢你。
答案 2 :(得分:0)
如果您的SOAP端点期望使用客户端证书加密消息,您可以通过将下一行添加到 system.properties 文件来配置JMeter以使用它:
javax.net.ssl.keyStoreType=pkcs12 or jks
javax.net.ssl.keyStore=/path/to/your/jsk keystore or .p12 certificate
javax.net.ssl.keyStorePassword=your certificate or keystore password
需要JMeter重启才能选择属性。
您也可以通过-D命令行参数传递它们,如:
jmeter -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStore=your-certificate.p12 -Djavax.net.ssl.keyStorePassword=secret
更多信息: