The web app running howsmyssl.com
Go HTML Other
Permalink
Failed to load latest commit information.
config bump to Go 1.8.2 (#170) May 23, 2017
gzip correctly gzip static files (#64) Apr 7, 2016
internal/cipherhw add tls18, the crypto/tls from Go 1.8 (#155) Feb 18, 2017
static add footer link to the subscription site (#200) Feb 10, 2018
templates add footer link to the subscription site (#200) Feb 10, 2018
tls18 allow meta cipher suites to come after Sweet32 suites (#186) Sep 14, 2017
vendor update chacha20poly1305 for Go 1.9 (#185) Sep 14, 2017
.dockerignore add .dockerignore and correct docker push script Apr 13, 2016
.gitignore adding initial web site and api Oct 27, 2013
.travis.yml bump Go to 1.9.4 in Travis CI, too (#199) Feb 10, 2018
Dockerfile bump to Go 1.9.4 (#198) Feb 10, 2018
LICENSE add MIT license Nov 2, 2013
README.md correct Go version in README (#166) Feb 19, 2017
all_suites.go allow meta cipher suites to come after Sweet32 suites (#186) Sep 14, 2017
allow.go remove accidentally added and unused log field (#183) Aug 27, 2017
allow_test.go make origin config file specify domains to block (#105) May 18, 2016
cbc_suites.go use tls18 (#158) Feb 18, 2017
client_info.go don't degrade to Improvable just for session tickets (#191) Oct 19, 2017
conn.go some linter fixes (#180) Aug 19, 2017
howsmyssl-gcloud-credentials.json.enc deploy to other cluster (#87) Apr 29, 2016
howsmyssl.go attempt to reload the TLS certificate every hour (#193) Oct 30, 2017
index_test.go Allow headless operation (#117) Oct 12, 2016
insecure_suites.go disallow Sweet32 ciphersuites out of order (#175) Jul 31, 2017
reloader.go attempt to reload the TLS certificate every hour (#193) Oct 30, 2017
stat_writer.go some linter fixes (#180) Aug 19, 2017
tls_test.go allow meta cipher suites to come after Sweet32 suites (#186) Sep 14, 2017
travis_docker_push.sh work harder to detect busted gcloud dirs (#147) Dec 2, 2016

README.md

howsmyssl

howsmyssl is the web app behind https://howsmyssl.com.

Orientation

This is a Go project.

The HTML code goes in templates/. Templates are generated with Go's html/template package. Determining the client's security is done in client_info.go.

This project requires Go 1.8 (or newer). go build will generate a static binary called howsmyssl. This repo is go get'able, of course.

It has a fork of the Go crypto/tls library at ./tls/ in order to add a ServerHandshake and expose the ClientHello struct.

It's been useful to me to use justrun to recompile the project while modifying the template. Typical use is simply:

justrun -c "go build && ./howsmyssl" -i howsmyssl . templates/

(Justrun has the benefit of controlling the lifecycle of a process, unlike most other file watch utilities.)