All Projects → samrocketman → My_internal_ca

samrocketman / My_internal_ca

Licence: mit
A set of basic scripts for managing an internal certificate authority.

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to My internal ca

Certificates
🛡️ A private certificate authority (X.509 & SSH) & ACME server for secure automated certificate management, so you can use TLS everywhere & SSO for SSH.
Stars: ✭ 3,693 (+28307.69%)
Mutual labels:  tls, certificate-authority
Mutual Tls Ssl
🔐 Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC examples are included
Stars: ✭ 163 (+1153.85%)
Mutual labels:  tls, certificate-authority
Certstrap
Tools to bootstrap CAs, certificate requests, and signed certificates.
Stars: ✭ 1,689 (+12892.31%)
Mutual labels:  tls, certificate-authority
labca
A private Certificate Authority for internal (lab) use, based on the open source ACME Automated Certificate Management Environment implementation from Let's Encrypt (tm).
Stars: ✭ 126 (+869.23%)
Mutual labels:  tls, certificate-authority
diyca
Do-It-Yourself Certificate Authority
Stars: ✭ 18 (+38.46%)
Mutual labels:  tls, certificate-authority
openssl-ca
Shell scripts to manage a private Certificate Authority using OpenSSL
Stars: ✭ 38 (+192.31%)
Mutual labels:  tls, certificate-authority
win-ca
Get Windows System Root certificates
Stars: ✭ 78 (+500%)
Mutual labels:  tls, certificate-authority
openssl-certificate-authority-guide
Bu kılavuz, OpenSSL komut satırı araçlarını kullanarak kendi sertifika yetkilinizi (CA) kurup nasıl kullanacağınızı gösterir.
Stars: ✭ 17 (+30.77%)
Mutual labels:  tls, certificate-authority
Boulder
An ACME-based certificate authority, written in Go.
Stars: ✭ 4,091 (+31369.23%)
Mutual labels:  tls, certificate-authority
Cashier
A self-service CA for OpenSSH
Stars: ✭ 590 (+4438.46%)
Mutual labels:  certificate-authority
Netcoreserver
Ultra fast and low latency asynchronous socket server & client C# .NET Core library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 799 (+6046.15%)
Mutual labels:  tls
Xca
X Certificate and Key management
Stars: ✭ 574 (+4315.38%)
Mutual labels:  certificate-authority
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go.
Stars: ✭ 5,373 (+41230.77%)
Mutual labels:  tls
Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (+6069.23%)
Mutual labels:  tls
Blinksocks
A framework for building composable proxy protocol stack.
Stars: ✭ 587 (+4415.38%)
Mutual labels:  tls
Detect bluekeep.py
Python script to detect bluekeep vulnerability (CVE-2019-0708) with TLS/SSL and x509 support
Stars: ✭ 19 (+46.15%)
Mutual labels:  tls
Athenz
Open source platform for X.509 certificate based service authentication and fine grained access control in dynamic infrastructures. Athenz supports provisioning and configuration (centralized authorization) use cases as well as serving/runtime (decentralized authorization) use cases.
Stars: ✭ 570 (+4284.62%)
Mutual labels:  tls
Testssl.sh
Testing TLS/SSL encryption anywhere on any port
Stars: ✭ 5,676 (+43561.54%)
Mutual labels:  tls
Sortpem
➿ Sorting utility for PEM files
Stars: ✭ 11 (-15.38%)
Mutual labels:  tls
Mruby Tls
mruby wrapper for libtls from http://www.libressl.org/
Stars: ✭ 5 (-61.54%)
Mutual labels:  tls

My Internal Certificate Authority

I use this lightweight set of scripts to manage my own internal certificate authority. I share them with you. My scripts are based off of Be your own CA and Docker CA.

Features:

How to set up

System requirements

  • GNU/Linux (other platforms untested)
  • openssl tools installed

Create the CA

Execute setup_ca.sh from the current directory of the repository. When executed this will do a few things. It will create the openssl myCA directory structure for a managed certificate authority. All certificate authority information and management will be located within the myCA directory.

./setup_ca.sh

Customize the subject.

./setup_ca.sh -subj '/C=US/ST=Pennsylvania/L=Philadelphia/O=Example Domain/OU=Systems/CN=Super Root CA'

Environment variables

  • CERT_DIR - the directory where the certificate authority certificates and other client/server certificates are output.
  • REQ_OPTS - additional opts to pass to the openssl req command in a script.

e.g.

CERT_DIR="/tmp/myCA" ./setup_ca.sh

Sign new certificates

#server certificates
./server_cert.sh example.com
#client certificates
./client_cert.sh [email protected]

A new signed certificate will be placed in ./myCA/certs/ and the private key will be in ./myCA/private/.

Issue a wildcard certificate.

bash -f ./server_cert.sh '*.example.com'

Revoke certificates

./revoke_cert.sh example.com

A new certificate revocation list (crl) will be generated. The latest is stored in ./myCA/crl.pem and any previously published CRLs can be viewed at ./myCA/crl/crl_*.pem. A backup of the certificate and key will be maintained in ./myCA/backup which is autocreated. The revoked certificate will be removed from ./myCA/certs and the key will be removed from ./myCA/private.

Generate a java keystore from certificates

./keystore.sh example.com

You will be prompted for a password by the script. That password will set the java keystore password.

Security recommendations

Here's a few security tips if you've not managed a personal certificate authority before.

  • Keep your certificate authority offline. For example, store it on an encrypted flash drive and disconnect it from your computer when you don't need to create certificates.
  • If nobody else is accessing a service except you, then a personal certificate authority is arguably more trustworthy than a third party. Install your personal CA in your browsers and devices to use.
  • Publish your certificate revocation list in a place where your browsers and devices can access it.

Additional information and alternatives

Private CA Alternatives

Using self signed certificates is always a bad idea. It's far more secure to self manage a certificate authority than it is to use self signed certificates. Running a certificate authority is easy.

In addition to the scripts in this repository, here is a short recommended list of scripts and resources for managing a certificate authority.

  1. The xca project provides a graphical front end to certificate authority management in openssl. It is available for Windows, Linux, and Mac OS.
  2. The OpenVPN project provides a nice set of scripts for managing a certificate authority as well.
  3. Be your own CA tutorial provides a more manual method of certificate authority management outside of scripts or UI. It provides openssl commands for certificate authority management. Additionaly, one can read up on certificate management in the SSL Certificates HOWTO at The Linux Documentation Project.
  4. Use my scripts in this repository which is based on option 3 in this list. Supports server certs only.
  5. Use certificate-automation which is similar to these scripts organized slightly differently. Supports client certs as well.

Once a certificate authority is self managed simply add the CA certificate to all browsers and mobile devices. Enjoy secure and validated certificates everywhere.

Public CA Alternatives

If a service you manage is designated for public access then self managing a certificate authority may not be the best option. Signed Domain Validated (DV) certificates should still be the preferred method to secure your public service.

  1. CAcert.org is a community driven certificate authority which provides free SSL certificates. Note: See the inclusion page to see which applications and distros include the cacert.org root certificates.
  2. Let's Encrypt is a free, automated, and open Certificate Authority.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].