Skip to content

Instantly share code, notes, and snippets.

@bhelx
Last active September 16, 2017 12:29
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhelx/b0d5a03478e500644bbc to your computer and use it in GitHub Desktop.
Save bhelx/b0d5a03478e500644bbc to your computer and use it in GitHub Desktop.
TLS Low Level Testing. You should expect to see it print TLS version 1.2.
<?php
// This example is for testing php with libcurl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.howsmyssl.com/a/check");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$response = curl_exec($ch);
curl_close($ch);
list($header, $body) = explode("\r\n\r\n", $response, 2);
$data = json_decode($body, true);
print "TLS Version Negotiated: " . $data['tls_version'] . "\n";
import httplib
import json
conn = httplib.HTTPSConnection('www.howsmyssl.com')
conn.request('GET', '/a/check')
data = json.load(conn.getresponse())
print "TLS Version Negotiated: %s" % data['tls_version']
require 'net/https'
require 'json'
uri = URI("https://www.howsmyssl.com/")
http = ::Net::HTTP.new uri.host, uri.port
http.use_ssl = true
data = JSON.parse(http.get('/a/check').body)
puts "TLS Version Negotiated: #{data['tls_version']}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment