This package contains documentation on how to configure a broad array of technologies to perform mutual TLS. It is part of the Hello mTLS project, designed to raise developer awareness about public key infrastructure as a potential solution to common security problems.
If you notice any outdated, missing, or errant docs, pull requests are strongly encouraged!
Documentation for each technology lives in its corresponding directory in the docs/ folder.
To get rolling on local development, clone this repository and start the local dev server:
$ yarn install
$ yarn start
You will be able to preview all changes at http://localhost:3000.
If you are adding a new technology, your best bet is to refer to existing configurations in this repository, but here is a high-level breakdown of each directory's contents.
This file configures basic information like the technology name and external links to documentation.
This is a 256 x 256px transparent PNG of the technology's logo. If missing, a standard placeholder will be used.
Several optional markdown files provide prose describing how to perform different aspects of mTLS using the technology:
server_auth.md
— Server TLS authenticationclient_auth.md
— Client TLS authenticationclient.md
— Client requests using TLSrenewal.md
— TLS cetificate renewal
Properties with corresponding names in the topics
object in config.yaml
also accept a links
array for any relevant external resources.
If your documentation makes use of the name of a certificate's identity, its certificate filename, its private key filename, or the root certificate filename, please use these template tokens. They will be interpolated with the appropriate values at build time in different contexts:
{{ server_name }}
— Name of the identity likeserver.internal.net
{{ server_cert }}
— Filename of the server's certificate likeserver.crt
{{ server_key }}
— Filename of the server's private key likeserver.key
{{ server_port }}
— Port number that that the server binds in the server auth docs{{ client_name }}
— Name of the identity likeclientuser
{{ client_cert }}
— Filename of the client's certificate likeclient.crt
{{ client_key }}
— Filename of the client's private key likeclient.key
{{ ca_cert }}
— Filename of the root CA certificate likeca.crt
Do not use markdown headlines.
Run yarn test
locally to test that your changes are valid before opening a pull request.
Code in this repository is licensed under Apache License, Version 2.0.
All documentation content is licensed under Creative Commons Attribution 4.0 International License.
Please don't hesitate to reach out on our Discord with any questions.