Skip to content
🔒 Memorable site for testing clients against bad SSL configs.
HTML Makefile CSS JavaScript Shell Ruby Dockerfile
Branch: master
Clone or download
christhompson Add page with 🔒 in title (#388)
Adds a new subdomain that loads a page with a lock emoji in the title.
Latest commit 875c58e Jul 12, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_layouts
_plugins Add support for an extended validation certificate Feb 14, 2018
certs Explicitly send the self-signed root for untrusted-root (#397) Jul 10, 2019
common [web-payment] Print API return values and exceptions in the footer. (#… Jun 21, 2019
domains-local-only/cert Move sha384 and sha512 to public domains. Closes #274. Mar 18, 2017
domains Add page with 🔒 in title (#388) Jul 12, 2019
nginx-includes Add `tls-v1-2` subdomain. Addresses #332. (#345) May 16, 2018
.gitignore Fix the jekyll templating for all human beings that don't own badssl.com Nov 12, 2015
AUTHORS Create Authors Apr 29, 2016
Dockerfile Add libffi-dev to the required packages in Docker Feb 12, 2018
LICENSE Create LICENSE Apr 29, 2016
Makefile Export environment variables in the Makefile (#355) Jul 13, 2018
README.md Update README.md: (#342) Apr 27, 2018
_config.yml Ignore certs/sets/prod for development convenience. Jul 7, 2016
badssl.png Compress PNG files. Nov 4, 2017
fallback-common.conf Use individual fallbacks for each protocol port. Fixes #187. Aug 5, 2016
fallback.conf Use individual fallbacks for each protocol port. Fixes #187. Aug 5, 2016
nginx.conf Move local-only domains into a separate folder for easier separation … Jul 7, 2016

README.md

Visit badssl.com for a list of test subdomains, including:

Server Setup

Stock Ubuntu VM, DNS A records for badssl.com. and *.badssl.com. pointing to the VM.

Testing and development

  1. Follow the instructions to install Docker.

  2. Clone into the badssl repo by running git clone https://github.com/chromium/badssl.com && cd badssl.com.

  3. In order to access the various badssl subdomains locally you will need to add them to your system hosts file. Run make list-hosts and copy and paste the output into /etc/hosts.

  4. Start Docker by running make serve.

  5. You can now navigate to badssl.test in your browser, and you should see a certificate error.

  6. The badssl root certificate is at certs/sets/test/gen/crt/ca-root.crt. In order to get the rest of the badssl subdomains working, you will need to add this to your machine's list of trusted certificates.

    • On macOS, drag certs/sets/test/gen/crt/ca-root.crt into the login section of the program Keychain Access. A BadSSL Root Certificate Authority entry should appear in the list. Double-click on this entry and select "Always Trust" from the drop-down menu next to "Secure Sockets Layer (SSL)." Close the window to save your changes.

      If you are already familiar with this process, you can instead run this command:

      security add-trusted-cert -r trustRoot -p ssl \
        -k "$HOME/Library/Keychains/login.keychain" certs/sets/test/gen/crt/ca-root.crt
  7. In order to preserve the client and root certificates even after running make clean, run:

cd certs/sets/test
mkdir -p pregen/crt pregen/key
cp gen/crt/ca-root.crt pregen/crt/ca-root.crt
cp gen/crt/client.crt pregen/crt/client.crt
cp gen/crt/client-ca-root.crt pregen/crt/client-ca-root.crt
cp gen/key/ca-root.key pregen/key/ca-root.key
cp gen/key/client.key pregen/key/client.key
cp gen/key/client-ca-root.key pregen/key/client-ca-root.key

Acknowledgments

badssl.com is hosted on Google Cloud infrastructure and co-maintained by:

Several public badssl.com certificates required special issuance processes. Most certificates were graciously issued for free, thanks to help from:

Various subdomains and test pages are also implemented by external contributors.

Disclaimer

badssl.com is meant for manual testing of security UI in web clients.

Most subdomains are likely to have stable functionality, but anything could change without notice. If you would like a documented guarantee for a particular use case, please file an issue. (Alternatively, you could make a fork and host your own copy.)

badssl.com is not an official Google product. It is offered "AS-IS" and without any warranties.

You can’t perform that action at this time.