File: make_ca.sh

package info (click to toggle)
wget 1.25.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 26,088 kB
  • sloc: ansic: 109,273; sh: 7,660; perl: 6,790; python: 5,466; makefile: 602; lex: 167; sed: 16
file content (23 lines) | stat: -rwxr-xr-x 1,243 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh -e

# create a self signed CA certificate
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template=ca-template.cfg --outfile ca-cert.pem

# create the server RSA private key
certtool --generate-privkey --outfile server-key.pem --rsa

# generate a server certificate using the private key only
certtool --generate-certificate --load-privkey server-key.pem --template=server-template.cfg --outfile server-cert.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem

# create a CRL for the server certificate
certtool --generate-crl --load-ca-privkey ca-key.pem --load-ca-certificate ca-cert.pem --load-certificate server-cert.pem --outfile server-crl.pem --template=server-template.cfg

# generate a public key in PEM format
openssl x509 -noout -pubkey < server-cert.pem > server-pubkey.pem

# generate a public key in DER format
openssl x509 -noout -pubkey < server-cert.pem | openssl asn1parse -noout -inform pem -out server-pubkey.der

# generate a sha256 hash of the public key
openssl x509 -noout -pubkey < server-cert.pem | openssl asn1parse -noout -inform pem -out /dev/stdout | openssl dgst -sha256 -binary | openssl base64 > server-pubkey-sha256.base64