Path: blob/main/crypto/openssl/demos/certs/mkcerts.sh
34869 views
#!/bin/sh12opensslcmd() {3LD_LIBRARY_PATH=../.. ../../apps/openssl $@4}56OPENSSL_CONF=../../apps/openssl.cnf7export OPENSSL_CONF89opensslcmd version1011# Root CA: create certificate directly12CN="Test Root CA" opensslcmd req -config ca.cnf -x509 -nodes \13-keyout root.pem -out root.pem -newkey rsa:2048 -days 365014# Intermediate CA: request first15CN="Test Intermediate CA" opensslcmd req -config ca.cnf -nodes \16-keyout intkey.pem -out intreq.pem -newkey rsa:204817# Sign request: CA extensions18opensslcmd x509 -req -in intreq.pem -CA root.pem -days 3600 \19-extfile ca.cnf -extensions v3_ca -CAcreateserial -out intca.pem2021# Server certificate: create request first22CN="Test Server Cert" opensslcmd req -config ca.cnf -nodes \23-keyout skey.pem -out req.pem -newkey rsa:102424# Sign request: end entity extensions25opensslcmd x509 -req -in req.pem -CA intca.pem -CAkey intkey.pem -days 3600 \26-extfile ca.cnf -extensions usr_cert -CAcreateserial -out server.pem2728# Client certificate: request first29CN="Test Client Cert" opensslcmd req -config ca.cnf -nodes \30-keyout ckey.pem -out creq.pem -newkey rsa:102431# Sign using intermediate CA32opensslcmd x509 -req -in creq.pem -CA intca.pem -CAkey intkey.pem -days 3600 \33-extfile ca.cnf -extensions usr_cert -CAcreateserial -out client.pem3435# Revoked certificate: request first36CN="Test Revoked Cert" opensslcmd req -config ca.cnf -nodes \37-keyout revkey.pem -out rreq.pem -newkey rsa:102438# Sign using intermediate CA39opensslcmd x509 -req -in rreq.pem -CA intca.pem -CAkey intkey.pem -days 3600 \40-extfile ca.cnf -extensions usr_cert -CAcreateserial -out rev.pem4142# OCSP responder certificate: request first43CN="Test OCSP Responder Cert" opensslcmd req -config ca.cnf -nodes \44-keyout respkey.pem -out respreq.pem -newkey rsa:102445# Sign using intermediate CA and responder extensions46opensslcmd x509 -req -in respreq.pem -CA intca.pem -CAkey intkey.pem -days 3600 \47-extfile ca.cnf -extensions ocsp_cert -CAcreateserial -out resp.pem4849# Example creating a PKCS#3 DH certificate.5051# First DH parameters5253[ -f dhp.pem ] || opensslcmd genpkey -genparam -algorithm DH -pkeyopt dh_paramgen_prime_len:1024 -out dhp.pem5455# Now a DH private key56opensslcmd genpkey -paramfile dhp.pem -out dhskey.pem57# Create DH public key file58opensslcmd pkey -in dhskey.pem -pubout -out dhspub.pem59# Certificate request, key just reuses old one as it is ignored when the60# request is signed.61CN="Test Server DH Cert" opensslcmd req -config ca.cnf -new \62-key skey.pem -out dhsreq.pem63# Sign request: end entity DH extensions64opensslcmd x509 -req -in dhsreq.pem -CA root.pem -days 3600 \65-force_pubkey dhspub.pem \66-extfile ca.cnf -extensions dh_cert -CAcreateserial -out dhserver.pem6768# DH client certificate6970opensslcmd genpkey -paramfile dhp.pem -out dhckey.pem71opensslcmd pkey -in dhckey.pem -pubout -out dhcpub.pem72CN="Test Client DH Cert" opensslcmd req -config ca.cnf -new \73-key skey.pem -out dhcreq.pem74opensslcmd x509 -req -in dhcreq.pem -CA root.pem -days 3600 \75-force_pubkey dhcpub.pem \76-extfile ca.cnf -extensions dh_cert -CAcreateserial -out dhclient.pem7778# Examples of CRL generation without the need to use 'ca' to issue79# certificates.80# Create zero length index file81>index.txt82# Create initial crl number file83echo 01 >crlnum.txt84# Add entries for server and client certs85opensslcmd ca -valid server.pem -keyfile root.pem -cert root.pem \86-config ca.cnf -md sha187opensslcmd ca -valid client.pem -keyfile root.pem -cert root.pem \88-config ca.cnf -md sha189opensslcmd ca -valid rev.pem -keyfile root.pem -cert root.pem \90-config ca.cnf -md sha191# Generate a CRL.92opensslcmd ca -gencrl -keyfile root.pem -cert root.pem -config ca.cnf \93-md sha1 -crldays 1 -out crl1.pem94# Revoke a certificate95openssl ca -revoke rev.pem -crl_reason superseded \96-keyfile root.pem -cert root.pem -config ca.cnf -md sha197# Generate another CRL98opensslcmd ca -gencrl -keyfile root.pem -cert root.pem -config ca.cnf \99-md sha1 -crldays 1 -out crl2.pem100101102103