|
| 1 | +DOMAIN=example.com |
| 2 | + |
| 3 | +clean: |
| 4 | + - rm *.crt *.key *.pem *.csr index.* crlnumber crlnumber.* serial serial.* *.srl |
| 5 | + |
| 6 | +all: index ca intermediate ca-chain ocsp server client revoked_client crl client-chain revoked-client-chain |
| 7 | + |
| 8 | +index: |
| 9 | + touch index.txt |
| 10 | + echo 1000 > serial |
| 11 | + echo 1000 > crlnumber |
| 12 | + |
| 13 | +ca: |
| 14 | + openssl genrsa -out rootCA.key.pem 2048 |
| 15 | + openssl req -config root-ca.cnf \ |
| 16 | + -key rootCA.key.pem \ |
| 17 | + -new -x509 -days 3650 -sha256 -extensions v3_ca \ |
| 18 | + -out rootCA.cert.pem \ |
| 19 | + -subj "/C=US/CN=ca.$(DOMAIN)" |
| 20 | + |
| 21 | +intermediate: |
| 22 | + openssl genrsa -out intermediate.key.pem 2048 |
| 23 | + openssl req -config intermediate.cnf \ |
| 24 | + -key intermediate.key.pem \ |
| 25 | + -new -sha256 \ |
| 26 | + -out intermediate.csr.pem \ |
| 27 | + -subj "/CN=intermediate-cert.$(DOMAIN)" |
| 28 | + openssl ca -config root-ca.cnf \ |
| 29 | + -extensions v3_intermediate_ca -days 2650 -notext -batch \ |
| 30 | + -in intermediate.csr.pem \ |
| 31 | + -out intermediate.cert.pem |
| 32 | + |
| 33 | +ca-chain: |
| 34 | + cat intermediate.cert.pem rootCA.cert.pem > ca-chain.cert.pem |
| 35 | + |
| 36 | +crl: |
| 37 | + openssl ca -config intermediate.cnf \ |
| 38 | + -gencrl -out intermediate.crl.pem |
| 39 | + |
| 40 | +ocsp: |
| 41 | + openssl genrsa -out ocsp.$(DOMAIN).key.pem 2048 |
| 42 | + openssl req -config intermediate.cnf -new -sha256 \ |
| 43 | + -key ocsp.$(DOMAIN).key.pem \ |
| 44 | + -out ocsp.$(DOMAIN).csr.pem \ |
| 45 | + -nodes \ |
| 46 | + -subj "/CN=ocsp.$(DOMAIN)" |
| 47 | + openssl ca -config intermediate.cnf \ |
| 48 | + -extensions v3_ocsp -days 2650 -notext -batch \ |
| 49 | + -in ocsp.$(DOMAIN).csr.pem \ |
| 50 | + -out ocsp.$(DOMAIN).cert.pem |
| 51 | + |
| 52 | +server: |
| 53 | + openssl req -subj '/CN=$(DOMAIN)' -newkey rsa:4096 -nodes \ |
| 54 | + -sha256 \ |
| 55 | + -days 3650 \ |
| 56 | + -keyout $(DOMAIN).key \ |
| 57 | + -out $(DOMAIN).csr |
| 58 | + chmod +r $(DOMAIN).key |
| 59 | + openssl x509 -req -in $(DOMAIN).csr -CA rootCA.cert.pem -CAkey rootCA.key.pem -CAcreateserial -out $(DOMAIN).crt -days 500 -sha256 |
| 60 | + openssl ca -config root-ca.cnf \ |
| 61 | + -extensions v3_intermediate_ca -days 2650 -notext -batch \ |
| 62 | + -in $(DOMAIN).csr \ |
| 63 | + -out $(DOMAIN).pem |
| 64 | + |
| 65 | +client: |
| 66 | + openssl genrsa -out client.key.pem 2048 |
| 67 | + openssl req -config intermediate.cnf -new -sha256 \ |
| 68 | + -key client.key.pem \ |
| 69 | + -out client.csr.pem \ |
| 70 | + -nodes \ |
| 71 | + -subj "/CN=client-cert.$(DOMAIN)" |
| 72 | + echo -e "y\ny\n" | openssl ca -config intermediate.cnf \ |
| 73 | + -extensions v3_leaf -days 375 -notext -md sha256 \ |
| 74 | + -in client.csr.pem \ |
| 75 | + -out client.cert.pem |
| 76 | + |
| 77 | +revoked_client: |
| 78 | + openssl genrsa -out revoked_client.key.pem 2048 |
| 79 | + openssl req -config intermediate.cnf -new -sha256 \ |
| 80 | + -key revoked_client.key.pem \ |
| 81 | + -out revoked_client.csr.pem \ |
| 82 | + -nodes \ |
| 83 | + -subj "/CN=revoked_client-cert.$(DOMAIN)" |
| 84 | + echo -e "y\ny\n" | openssl ca -config intermediate.cnf \ |
| 85 | + -extensions v3_leaf -days 375 -notext -md sha256 \ |
| 86 | + -in revoked_client.csr.pem \ |
| 87 | + -out revoked_client.cert.pem |
| 88 | + openssl ca -config intermediate.cnf -revoke revoked_client.cert.pem |
| 89 | + |
| 90 | +client-chain: |
| 91 | + cat client.cert.pem intermediate.cert.pem > client-chain.cert.pem |
| 92 | + |
| 93 | +revoked-client-chain: |
| 94 | + cat revoked_client.cert.pem intermediate.cert.pem > revoked_client-chain.cert.pem |
0 commit comments