JMeter忽略SSL安全证书

时间:2018-09-23 16:59:27

标签: ssl jmeter

尝试连接到LDAP服务器时出现以下错误。 有没有一种方法可以忽略SSL安全证书。我可以使用其他工具连接到JMeter外部的服务器。

Thread Name: Thread Group 1-1
Sample Start: 2018-09-23 12:16:48 EDT
Load time: 154
Connect Time: 0
Latency: 0
Size in bytes: 555
Sent bytes:0
Headers size in bytes: 0
Body size in bytes: 555
Sample Count: 1
Error Count: 1
Data type ("text"|"bin"|""): text
Response code: 800
Response message: javax.naming.CommunicationException: x.x.x.x:1636 
[Root exception is javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to 
find valid certification path to requested target]

Response headers:


SampleResult fields:
ContentType: text/xml
DataEncoding: UTF-8

2 个答案:

答案 0 :(得分:1)

解决此问题的最佳方法(也是最常见的方法)是信任LDAPS服务器,即使用cacerts将服务器的证书添加到JRE的keytool文件中。有关如何执行此操作的答案已经存在(此处:Is there a java setting for disabling certificate validation?)-要点是(从此处获取)

cd %JRE_HOME%
keytool -alias REPLACE_TO_ANY_UNIQ_NAME -import -keystore ..\lib\security\cacerts -file your.crt

当您还没有公钥(证书文件)时,可以例如通过使用Apache Directory Studio(https://directory.apache.org/studio/)连接到LDAPS服务器来获取它,该服务器存储了您信任的LDAPS服务器的所有公共密钥。确切的例程已经在邮件列表中描述过了(这里:http://mail-archives.apache.org/mod_mbox/directory-users/201004.mbox/%3C4BBF6471.6040900@apache.org%3E),所以我只是给出要点(大部分也是从那里获取的)

find ~/.ApacheDirectoryStudio -name \*.jks # gives you the keystores managed by DirectoryStudio
keytool -list -keystore path/to/permanent.jks
keytool -exportcert -alias <aliasname> -keystore path/to/permanent.jks -file your.crt

答案 1 :(得分:0)

最有可能表明您的LDAP服务器SSL设置存在问题,即无法对照授权检查链中的证书之一。我建议使用

仔细检查证书链
  • OpenSSL tool,例如:openssl s_client -showcerts -connect yourhost:yourport
  • SSLPoke工具,例如:java -Djavax.net.debug=ssl SSLPoke yourhost yourport

您有2种方法:

  1. Add the certificate into the JVM truststore喜欢:

    keytool -import -file your_ldap_certificate -alias certificate -keystore trustStore.keystore 
    
  2. 创建一个custom class which will be trusting all the certificates并设置java.naming.ldap.factory.socket系统属性以指向该类(该类必须位于JMeter Classpath中)

如果您需要有关使用JMeter进行LDAP服务器性能测试的更多信息,请查看How to Load Test LDAP with Apache JMeter™文章。