How sjsu-cmpe272/simple-pki works
This repository documents a command-driven PKI workflow for Simple Inc: create a self-signed root CA, have it issue a signing CA, then issue a TLS certificate for the server and package the chain and server key for Tomcat. The README also documents CA databases and a Tomcat/browser deployment step. No source excerpts are available, so the graph reflects documented commands and artifacts rather than unverified implementation details.
Main entry points: root-ca.crt Root certificate · signing-ca.crt Signing CA certificate · simple.jks Java keystore · root-ca.csr Root CSR and key
Components 21
Certificate authorities
- Root CA config
etc/root-ca.conf - Root CSR and key
ca/root-ca.csr - Root private key
ca/root-ca/private/root-ca.key - Root certificate
ca/root-ca.crt - Root CA database
ca/root-ca/db/root-ca.db - Signing CA config
etc/signing-ca.conf - Signing CA CSR and key
ca/signing-ca.csr - Signing CA private key
ca/signing-ca/private/signing-ca.key - Signing CA certificate
ca/signing-ca.crt - Signing CA database
ca/signing-ca/db/signing-ca.db
Server certificate
- Server config
etc/server.conf - Server CSR and key
certs/simple.org.csr - Server private key
certs/simple.org.key - TLS server certificate
certs/simple.org.crt
Keystore deployment
- PKCS#12 bundle
certs/simple.p12 - Java keystore
certs/simple.jks
Other components
- Operator
- OpenSSL
- Java keytool
- Tomcat
- Browser
Connections 39
- Operator → OpenSSL: runs commands
- OpenSSL → Root CA config: reads config
- OpenSSL → Root CSR and key: creates CSR
- OpenSSL → Root private key: creates key
- Operator → OpenSSL: requests self-signing
- OpenSSL → Root certificate: self-signs CSR
- Root CSR and key → OpenSSL: provides CSR
- Root private key → OpenSSL: signs with key
- Operator → OpenSSL: creates signing CA
- OpenSSL → Signing CA config: reads config
- OpenSSL → Signing CA CSR and key: creates CSR
- OpenSSL → Signing CA private key: creates key
- Operator → OpenSSL: issues signing CA
- OpenSSL → Root CA config: reads issuer config
- Signing CA CSR and key → OpenSSL: provides CSR
- OpenSSL → Signing CA certificate: issues certificate
- Root certificate → OpenSSL: signs signing CA
- Operator → OpenSSL: creates server request
- OpenSSL → Server config: reads config
- OpenSSL → Server CSR and key: creates CSR
- OpenSSL → Server private key: creates key
- Operator → OpenSSL: issues server certificate
- OpenSSL → Signing CA config: reads issuer config
- Server CSR and key → OpenSSL: provides CSR
- OpenSSL → TLS server certificate: issues certificate
- Signing CA certificate → OpenSSL: signs server certificate
- Operator → Java keytool: imports certificates
- Java keytool → Java keystore: creates keystore
- Root certificate → Java keytool: imports trust cert
- Signing CA certificate → Java keytool: imports trust cert
- Operator → OpenSSL: exports server bundle
- Server private key → OpenSSL: provides private key
- TLS server certificate → OpenSSL: provides certificate
- OpenSSL → PKCS#12 bundle: exports bundle
- Operator → Java keytool: imports key pair
- PKCS#12 bundle → Java keytool: provides key pair
- Java keytool → Java keystore: imports key pair
- Java keystore → Tomcat: configures TLS
- Browser → Tomcat: requests HTTPS