簡體   English   中英

將過期的SSL證書導入Java密鑰庫

[英]Import expired SSL certificate into Java keystore

我需要將JMeter指向具有過期SSL證書的測試服務器(這需要一些時間才能更新它)。 JMeter在嘗試連接時正確拋出了異常:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
    at sun.security.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
    at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:640)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:284)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1075)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1064)
    at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:426)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:255)
    at java.lang.Thread.run(Unknown Source)

有誰知道我可以將所述證書導入密鑰庫並在此過程中更改到期日期的任何方式(這是否會有所幫助,或者服務器證書已過期的事實仍然會引發此異常)?

我嘗試將有效性設置為導入的一部分,但這被忽略:

keytool -import ... -validity 100

PS-我知道我可以實現自己的TrustManager來忽略這些檢查,但是我的手指不允許我編寫這樣的惡意代碼,因此,我寧願找到一種無需修改JMeter就可以在服務器上安裝的解決方案!

謝謝你的時間。

JMeter不驗證證書,因此這不是造成您問題的原因。

您使用java,HC3或HC4哪種實現?

您的問題可能來自套接字版本協商中的錯誤。 嘗試在user.properties中進行設置:

  • https.socket.protocols = SSLv2您好SSLv3 TLSv1

您可能需要根據服務器配置來使用它們,例如僅設置以下內容:

  • https.socket.protocols =的SSLv3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM