File: generate.sh

package info (click to toggle)
tcllib 1.21%2Bdfsg-1
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 69,456 kB
  • sloc: tcl: 266,493; ansic: 14,259; sh: 2,936; xml: 1,766; yacc: 1,145; pascal: 881; makefile: 112; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (36 lines) | stat: -rw-r--r-- 1,764 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

# Generates a self-signed certificate and a client certificate with max 
# options for testing purposes.

set -e

SCRIPT=$(readlink -f "$0")
SCRIPTPATH=$(dirname "$SCRIPT")

NAME=pkitest

# Note: since the script is used for experimenting, I do not directly replace files
# in the test-assets directory.

# First the CA
openssl genpkey -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ${NAME}-ca-private.key
openssl req -x509 -nodes -days 3650 -key ${NAME}-ca-private.key -config ${NAME}-ca.conf -extensions req_ext -nameopt utf8 -utf8 -out ${NAME}-ca.crt

# Now the intermediate CA
openssl genpkey -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ${NAME}-ca2-private.key
openssl req -new -nodes -key ${NAME}-ca2-private.key -config ${NAME}-ca2.conf -nameopt utf8 -utf8 -out ${NAME}-ca2.csr -extensions req_ext
openssl x509 -req -in ${NAME}-ca2.csr -days 1825 -CAkey ${NAME}-ca-private.key -CA ${NAME}-ca.crt -extensions cert_ext -extfile ${NAME}-ca2.conf -out ${NAME}-ca2.crt -CAcreateserial

# Create a certificate with all certificate options we know
openssl genpkey -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out ${NAME}-private.key
openssl req -new -nodes -key ${NAME}-private.key -config ${NAME}.conf -nameopt utf8 -utf8 -out ${NAME}.csr -extensions req_ext
openssl x509 -req -in ${NAME}.csr -days 1825 -CAkey ${NAME}-ca-private.key -CA ${NAME}-ca.crt -extensions cert_ext -extfile ${NAME}.conf -out ${NAME}.crt -CAcreateserial

# Clean up serial file - a new one will be created each time
rm -f ${NAME}-ca.srl

echo ----------------
echo Certificates generated. To copy certificates etc. into test directory, execute:
set -f
echo mv -f ${NAME}*.crt ${NAME}*.key ${NAME}*.csr $(dirname "$SCRIPTPATH")