• This repository has been archived on 18/Oct/2020
  • Stars
    star
    208
  • Rank 185,028 (Top 4 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created almost 10 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Check if a website has weak SHA-1 TLS certificates.

SHAAAAAAAAAAAAA

Note: This project, and much of its documentation, was written in the fall of 2014, when SHA-1 was still very common and the transition was only beginning.

As of 2016, all CAs are required to only issue SHA-2, and SHA-1 was mostly removed from modern OSes and browsers in 2017.

This web service has been retired, but the code may still be useful for other purposes.

What this repo is

This repository contains the code for shaaaaaaaaaaaaa.com, a tool which was used to check whether your site's certificate is signed using SHA-1 or SHA-2.

SHA-1 is largely gone now, and so this tool is retired. You can read more about why I originally built this tool and why replacing SHA-1 was important.

This tool does not validate certificates, or test anything besides SHA-1 vs SHA-2. For that, please visit the magnificent SSL Labs for a far more comprehensive review of your SSL configuration.

No Longer depends on openssl to download certificates. See below for a command line version.

How do I update to SHA-2?

Now that it's 2016: just get a new certificate. As of January 1 2016, all publicly trusted CAs are required to issue only SHA-2 certificates.

To update your intermediate, check what your CA is currently offering as the default, or go through the issuance process again to see what they provide you.

If you somehow get a SHA-1 certificate, or are given a SHA-1 intermediate, open an issue and the folks on this repo will be happy to badger the CA or figure out what's going on.

How can I help?

Check out the issue tracker. The biggest things are:

Really, just making the site better all around.

Running the current website

The website at https://shaaaaaaaaaaaaa.com is now a static site, using a frozen snapshot of the HTML in the snapshot/ directory. So if you want to reproduce that, for some reason, just point a web server at the static files in that directory.

Running the old website

The dynamic version of the app requires Node. Then, install dependencies:

npm install

And run the app:

node app.js

For best results, make sure your system is using the latest version of openssl.

To run the tests:

npm test

Tests use faucet, which should have been installed during npm install above.

Command line version

To check a domain's certificate on the command line, use this repository's command line tool:

./bin/shaaaaaaaaaaaaa sha1-2017.badssl.com

This will exit with code 0, and output formatted JSON to STDOUT:

{
  "domain": "sha1-2017.badssl.com",
  "cert": {
    "algorithm": "sha1",
    "raw": "sha1WithRSAEncryption",
    "good": false,
    "root": false,
    "expires": "2017-01-05T12:00:00.000Z",
    "name": "*.badssl.com"
  },
  "intermediates": [
    {
      "algorithm": "sha1",
      "raw": "sha1WithRSAEncryption",
      "good": false,
      "root": false,
      "replacement": "http://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt",
      "expires": "2023-03-08T12:00:00.000Z",
      "name": "DigiCert Secure Server CA"
    }
  ],
  "diagnosis": "bad"
}

If there's an error, you'll get some JSON with an error flag of true, and the process will exit with code 1:

$ ./bin/shaaaaaaaaaaaaa bad-domain
{
  "error": true,
  "domain": "bad-domain",
  "message": "Couldn't lookup hostname."
}

Author

This is a tiny tool by Eric Mill. Released under an MIT License.

More Repositories

1

json

A free, in-browser JSON to CSV converter.
JavaScript
739
star
2

congress-android

Congress for Android, an app for tracking Congress.
Java
160
star
3

campyre

RETIRED: A Campfire client for Android.
Java
68
star
4

cdns-to-https

(Retired.) Testing HTTP->HTTPS redirects for CDNs.
HTML
54
star
5

debian

Debian on a Dell XPS 9350. Tutorials, notes, and suggestions.
52
star
6

fisacourt

Watching the FISA Court's public docket.
Ruby
40
star
7

bit.voyage

Allow anyone with a modern browser to stream a 1GB, 10GB, 100GB, or 1TB file over the Internet and into a happy home.
JavaScript
32
star
8

oversight.garden

Bringing together the oversight community's work.
JavaScript
26
star
9

jekyll-webfinger

Webfinger endpoint generator for Jekyll.
Ruby
21
star
10

unitedstates-documents-old

DEFUNCT. Process legal documents into integration-friendly HTML.
Ruby
21
star
11

privacy

Guides and support for communicating in private.
18
star
12

ubuntu

Ubuntu resources
16
star
13

basecamper

RETIRED: Command line interface to tracking time on Basecamp.
Ruby
14
star
14

justgrimes

Justin Grimes for Android
Java
8
star
15

email

Guides and support for owning your email address.
8
star
16

rubedo

RETIRED: A Ruby shoutcast client with a Camping-based frontend. For managing a shared radio station.
Ruby
7
star
17

slack-otr

A tool to manage an off-the-record (OTR) community Slack, on the free plan.
Python
6
star
18

jss

JSON Simple Syndication -- RSS rethought for JSON
6
star
19

unitedstates-sync-old

DEFUNCT. Syncing scripts for repos at @unitedstates
Python
5
star
20

ohnomymoney

RETIRED: Broadcasting my money since May of '08.
JavaScript
5
star
21

open-source-examples

Examples of open source in action.
3
star
22

sinatra-webfinger

Webfinger plugin for Sinatra.
Ruby
2
star
23

animation

Experiments in 2D and 3D web-based animation.
JavaScript
1
star
24

backbone-repair

HTML
1
star
25

hellgoworld

hello world but it's in Go
1
star
26

games

Info about games I like.
1
star
27

s3-multipart-tool

a simple command line tool to manage s3 multipart uploads
JavaScript
1
star
28

github-search-rss

Tiny app to make RSS feeds for Github code search results.
JavaScript
1
star
29

everyoneishereinthefuture

An archive of Everyone is Here in the Future, by _why
HTML
1
star