Generate Root, Intermediate and Server certificates with CRL using Makefile
/root/ca/
├── certs
│ └── ca.cert.pem ( RootCA Certificate )
├── crl
├── db
│ ├── index.txt
│ └── serial
├── intermediate
│ ├── certs
│ │ ├── ca-chain.cert.pem ( Chain of Certificates )
│ │ ├── intermediate.cert.pem ( IntermediateCA Certificate )
│ │ ├── make.ca.cert.pem ( Server Certificate )
│ │ └── make.ca.chain.pem ( Server Certificate Chain )
│ ├── crl
│ │ └── intermediate.crl.pem ( Certificate revocation lists )
│ ├── csr
│ │ ├── intermediate.csr.pem ( IntermediateCA Signing Request )
│ │ └── make.ca.csr.pem ( Server Signing Request )
│ ├── db
│ │ ├── crlnumber
│ │ ├── index.txt
│ │ └── serial
│ ├── newcerts
│ │ └── 1000.pem
│ ├── openssl.cnf ( IntermediateCA Configuration )
│ └── private
│ ├── intermediate.key.pem ( IntermediateCA Private Key )
│ └── make.ca.key.pem ( Server Private Key )
├── newcerts
│ └── 1000.pem
├── openssl.cnf ( RootCA Configuration )
├── private
│ ├── ca.key.pem ( RootCA Private key )
│ └── dhparam2048.pem ( 2048 bit Diffie-Hellman Parameters )
└── web
├── ca.cert.crt
├── ca-chain.cert.pem
├── intermediate.cert.pem
├── intermediate.crl.pem
├── make.ca.cert.pem
└── make.ca.chain.pem
All make commands require sudo privilege to execute properly
Following are the make options:
| Command | Description |
|---|---|
make root |
Generate rootCA certificate |
make intermediate |
Generate intermediateCA certificate |
make ca |
Generate both rootCA and intermediateCA certificate |
make server [FQDN] |
Generate server certificate with passphrase for FQDN |
make quick [FQDN] |
Generate server certificate without passphrase for FQDN (NGINX need this) |
make dh |
Generate Diffie-Hellman Parameters for WebServer SSL Configuration |
make crl |
Generate Certificate revocation lists |
make info [FQDN] |
Show details about the certificate |
make rvk-crl RVK_FQDN |
Revoke the certificate from RVK_FQDN argument passed |
make publish |
Pool all the necessary certificates to be published |
make share |
Share the pooled certificates on localhost:5555 (This is only for development purpose) |
Let us make a CA and server certificate for www.example.com:
sudo make ca
sudo make dh
sudo make quick CRL_URI_PROTOCOL=https FQDN=www.example.com
sudo make publish
sudo make share
If you need to see a green lock in your browser when using Unifi Controller, use makeUnifi for Local Area Networks