instalar example benchmark aws apache https apachebench

example - ¿Cómo soluciono el error "ssl handshake failed" con ApacheBench?



apache benchmark windows (3)

Cuando uso ApacheBench para probar https, se devuelve el error, "falló el protocolo de enlace ssl".

¿Cómo puedo usar ApacheBench para probar https?


ApacheBench no parece ser capaz de ignorar los problemas de certificados (al menos algunos de ellos), así que escribí este 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

No es tan preciso como AB, pero da la idea. Lo hace bien en las pruebas de comparación.


httperf también tiene un único subproceso, pero a partir de hoy (31 de agosto de 2012), maneja correctamente SSL e incluso tiene algunas características adicionales útiles alrededor de 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.


Tuve que probar en un sitio que tiene certificados autofirmados, y ninguna de las herramientas anteriores me ayudó. En mi búsqueda de la mejor alternativa, tropecé con vegeta que está escrito en golang. Es bastante limpio, también puedes hacer tramas y cosas así. Además, tiene soporte para un uso inseguro. Puedes descargar los binarios aquí