SSL Toolkit Logo

SSL Benchmark

Benchmark SSL/TLS handshake performance

Results


        

About

The SSL/TLS Benchmark tool measures the performance of your server's SSL/TLS implementation by simulating multiple concurrent connections and measuring handshake time, throughput, and connection establishment speed. It provides detailed metrics including time-to-first-byte (TTFB), handshake latency, and sustained throughput under load.

This benchmarking is essential for optimizing TLS performance, comparing the impact of different cipher suites, and validating that performance meets your SLA requirements. The results include recommendations for performance improvements such as enabling session resumption, switching to faster cipher suites, or optimizing certificate chain length.

How to Use

  1. 1Enter the domain name you want to benchmark
  2. 2Configure the number of concurrent connections and test duration
  3. 3Click "Run Benchmark" to start the performance test
  4. 4Review the results including handshake time, throughput, and performance recommendations

Use Cases

  • •Performance Baseline: Establish TLS performance baselines before and after configuration changes to measure improvement
  • •Cipher Suite Comparison: Benchmark different cipher suites to find the optimal balance of security and performance for your hardware
  • •Hardware Evaluation: Compare TLS performance across different servers or cloud instances to optimize infrastructure costs
  • •CDN Validation: Verify that your CDN is delivering TLS performance improvements over direct connections
  • •SLA Compliance: Validate that TLS handshake performance meets your service level agreement requirements

What Is Timed

Repeated TLS handshakes against a host, timed end to end, so the cost of establishing a fresh connection is visible rather than inferred.

  1. 1Open a series of connections and time each from before the socket is created to after the handshake completes. Each connection is independent, which is the point: it measures what a first-time visitor pays rather than what a warm session costs.
  2. 2Keep handshake time and total time separately, so the TLS portion can be distinguished from DNS and connection establishment. That separation is what tells you whether a slow result is something your configuration can influence.
  3. 3Report the summary across runs rather than a single figure. Repeated measurement is what makes the number trustworthy, since any one handshake varies with network conditions.

This is a benchmark of connection establishment, not throughput. It says nothing about how the server behaves under concurrent load, which requires a generator sending traffic at a target rate rather than connecting one at a time.

Tips & Best Practices

  • •Run benchmarks during low-traffic periods to get consistent results
  • •Test with multiple connection counts to understand performance under different load levels
  • •Compare benchmarks before and after enabling TLS 1.3 to measure the performance improvement
  • •Use the results to justify hardware upgrades when TLS performance is a bottleneck

Technical Details

●Metrics: Handshake latency (ms), Time-to-first-byte (ms), Throughput (MB/s), Connections per second
●Load Profiles: Single connection, 10 concurrent, 50 concurrent, 100 concurrent
●Cipher Testing: Benchmark specific cipher suites to compare performance impact
●Protocol Comparison: Compare TLS 1.2 vs TLS 1.3 performance characteristics

Frequently Asked Questions

A good TLS handshake time is under 50ms for TLS 1.3 and under 100ms for TLS 1.2 on modern hardware. Handshake times above 200ms indicate potential optimization opportunities such as enabling session resumption, switching to faster cipher suites, or upgrading hardware. Mobile clients typically experience 2-3x higher latency due to network round trips.
TLS 1.3 reduces the handshake from 2 round trips (TLS 1.2) to 1 round trip, cutting handshake latency by approximately 50%. It also removes obsolete cipher suites and simplifies the handshake process. For repeated connections, TLS 1.3 supports 0-RTT resumption, potentially eliminating handshake latency entirely for returning clients.
Synthetic benchmarks (like this tool) provide consistent, repeatable results for comparing configurations. Real-user monitoring (RUM) captures actual performance in production. Use synthetic benchmarks for development and testing, and RUM for production monitoring. Both approaches are complementary and provide different insights.
How long a fresh TLS connection takes, repeated several times so the result is more than one sample. It does not measure throughput, concurrency limits or behaviour under load — connections are made one at a time. That makes it a latency benchmark for connection establishment, which is the number a first-time visitor experiences and the one most affected by protocol version and cipher choice.
Enough for the figure to mean something and few enough to stay quick. A handful gives a rough sense; a few dozen is enough for the spread to be informative. Remember that any connection failing waits out its full timeout, so testing a host you expect to be slow is best done with a modest count — otherwise most of the run is spent on one timeout.
Because every handshake crosses a network, and that network is not constant. Congestion, routing changes and resolver latency all move the figures, and the further the server the more variance. Compare the same host across time rather than across hosts, and treat a single run as one sample from a distribution rather than a measurement.
Usually yes, and it is one of the more reliable gains available: 1.3 completes in fewer round trips and supports resumption that removes most of the rest. On a low-latency link the absolute saving is small, while on a distant one it is the difference between a fast and a slow first visit. Because the saving is round trips, latency matters more than bandwidth in how much it helps.
Optimise this one only if it is clearly out of line; handshake cost is a small fraction of typical page load once a connection is established. Session resumption gives most of the available saving with no configuration risk, and enabling 1.3 is the other change worth making. Beyond that, response time and payload size move user-visible performance far more than the handshake does.