2008-10-10 6 views
22

Lorsque j'utilise ApacheBench pour tester https, l'erreur est renvoyée, "ssl handshake failed".Comment réparer "ssl handshake failed" avec ApacheBench?

Comment puis-je utiliser ApacheBench pour tester https?

+0

Remplacement de la balise 'apachebench' par' apache-bench', pour faire correspondre des balises similaires. –

+0

Cela semble provenir d'un mauvais certificat. AB utilise automatiquement SSL. – naugtur

Répondre

7

ApacheBench ne semble pas être en mesure d'ignorer les problèmes de certificat (au moins certains d'entre eux) donc je l'ai écrit ce script:

#!/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 

Ce n'est pas aussi précis que AB, mais donne l'idée. Fait bien en comparaison des tests.

+0

La deuxième date sera exécutée avant la fin des wgets, ce qui est inutile. –

+1

Vous avez raison. Je n'ai pas supprimé le '&' à la fin de la ligne. Corrigé cela. – naugtur

4

httperf est également un seul thread, mais à partir d'aujourd'hui (31 août 2012), il gère correctement SSL et a même quelques fonctionnalités supplémentaires utiles SSL entourant:

--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. 
1

je devais test contre un site qui a des certificats auto-signés, et aucun des outils ci-dessus n'a aidé. Dans ma recherche de la meilleure alternative, je suis tombé sur vegeta qui est écrit en golang. C'est joli, tu peux aussi faire des complots et des trucs. De plus, il a un support pour une utilisation non sécurisée. Vous pouvez télécharger les binaires here