簡體   English   中英

如何使用 ApacheBench 修復“ssl 握手失敗”?

[英]How do I fix “ssl handshake failed” with ApacheBench?

當我使用 ApacheBench 測試 https 時,返回錯誤,“ssl 握手失敗”。

如何使用 ApacheBench 測試 https?

ApacheBench 似乎無法忽略證書問題(至少其中一些),所以我寫了這個腳本:

#!/bin/bash
K=200;    
HTTPSA='https://192.168.1.103:443/'    
date +%M-%S-%N>wgetres.txt
for (( c=1; c<=$K; c++ ))
do
    wget --no-check-certificate --secure-protocol=SSLv3 --spider $HTTPSA
done
date +%M-%S-%N>>wgetres.txt

它不像AB那樣精確,但給出了想法。 在對比測試中表現良好。

httperf也是單線程的,但截至今天(2012 年 8 月 31 日),它可以正確處理 SSL,甚至還有一些圍繞 SSL 的有用附加功能:

 --ssl Specifies that all communication between httperf and the server should utilize the Secure Sockets Layer (SSL) protocol. This option is available only if httperf was compiled with SSL sup†port enabled. --ssl-ciphers=L This option is only meaningful if SSL is in use (see --ssl option). This option specifies the list L of cipher suites that httperf may use in negotiating a secure connection with the server. If the list contains more than one cipher suite, the ciphers must be separated by a colon. If the server does not accept any of the listed cipher suites, the connection estab†lishment will fail and httperf will exit immediately. If this option is not specified when the --ssl option is present then httperf will use all of the SSLv3 cipher suites provided by the underlying SSL library. --ssl-no-reuse This option is only meaningful if SSL and sessions are in use (see --ssl, --wsess, --wsesslog). When an SSL connection is established the client receives a session identifier (session id) from the server. On subsequent SSL connections, the client normally reuses this session id in order to avoid the expense of repeating the (slow) SSL handshake to establish a new SSL ses†sion and obtain another session id (even if the client attempts to re-use a session id, the server may force the client to rene†gotiate a session). By default httperf reuses the session id across all connections in a session. If the --ssl-no-reuse option is in effect, then httperf will not reuse the session id, and the entire SSL handshake will be performed for each new con†nection in a session.

我最近遇到了這個問題。 作為一種解決方法,我使用了 loadtest npm 包,它具有與 ab 類似的選項:

https://www.npmjs.com/package/loadtest

暫無
暫無

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

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