Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 #!/bin/bash
3 DATA_DIR=$1
4 OCSP_DIR=$2
5 CERT_DIR=$3
7 TEST_PWD="nssnss"
8 CONF_TEMPLATE="ocspd.conf.template"
10 convert_cert()
11 {
12 CERT_NAME=$1
13 CERT_SIGNER=$2
15 openssl x509 -in ${DATA_DIR}/${CERT_NAME}${CERT_SIGNER}.der -inform DER -out ${DATA_DIR}/${CERT_NAME}.pem -outform PEM
16 }
18 convert_crl()
19 {
20 CRL_NAME=$1
22 openssl crl -in ${DATA_DIR}/${CRL_NAME}.crl -inform DER -out ${DATA_DIR}/${CRL_NAME}crl.pem -outform PEM
23 }
25 convert_key()
26 {
27 KEY_NAME=$1
29 pk12util -o ${DATA_DIR}/${KEY_NAME}.p12 -n ${KEY_NAME} -d ${DATA_DIR}/${KEY_NAME}DB -k ${DATA_DIR}/${KEY_NAME}DB/dbpasswd -W ${TEST_PWD}
30 openssl pkcs12 -in ${DATA_DIR}/${KEY_NAME}.p12 -out ${DATA_DIR}/${KEY_NAME}.key.tmp -passin pass:${TEST_PWD} -passout pass:${TEST_PWD}
32 STATUS=0
33 cat ${DATA_DIR}/${KEY_NAME}.key.tmp | while read LINE; do
34 echo "${LINE}" | grep "BEGIN ENCRYPTED PRIVATE KEY" > /dev/null && STATUS=1
35 [ ${STATUS} -eq 1 ] && echo "${LINE}"
36 echo "${LINE}" | grep "END ENCRYPTED PRIVATE KEY" > /dev/null && break
37 done > ${DATA_DIR}/${KEY_NAME}.key
39 rm ${DATA_DIR}/${KEY_NAME}.key.tmp
40 }
42 create_conf()
43 {
44 CONF_FILE=$1
45 CA=$2
46 OCSP=$3
47 PORT=$4
49 cat ${CONF_TEMPLATE} | \
50 sed "s:@DIR@:${OCSP_DIR}:" | \
51 sed "s:@CA_CERT@:${DATA_DIR}/${CA}.pem:" | \
52 sed "s:@CA_CRL@:${DATA_DIR}/${CA}crl.pem:" | \
53 sed "s:@CA_KEY@:${DATA_DIR}/${CA}.key:" | \
54 sed "s:@OCSP_PID@:${OCSP}.pid:" | \
55 sed "s:@PORT@:${PORT}:" \
56 > ${CONF_FILE}
57 }
59 copy_cert()
60 {
61 CERT_NAME=$1
62 CERT_SIGNER=$2
64 cp ${DATA_DIR}/${CERT_NAME}${CERT_SIGNER}.der ${CERT_DIR}/${CERT_NAME}.cert
65 }
68 copy_key()
69 {
70 KEY_NAME=$1
72 cp ${DATA_DIR}/${KEY_NAME}.p12 ${CERT_DIR}/${KEY_NAME}.p12
73 }
75 convert_cert OCSPRoot
76 convert_crl OCSPRoot
77 convert_key OCSPRoot
79 convert_cert OCSPCA1 OCSPRoot
80 convert_crl OCSPCA1
81 convert_key OCSPCA1
83 convert_cert OCSPCA2 OCSPRoot
84 convert_crl OCSPCA2
85 convert_key OCSPCA2
87 convert_cert OCSPCA3 OCSPRoot
88 convert_crl OCSPCA3
89 convert_key OCSPCA3
91 create_conf ocspd0.conf OCSPRoot ocspd0 2600
92 create_conf ocspd1.conf OCSPCA1 ocspd1 2601
93 create_conf ocspd2.conf OCSPCA2 ocspd2 2602
94 create_conf ocspd3.conf OCSPCA3 ocspd3 2603
96 copy_cert OCSPRoot
97 copy_cert OCSPCA1 OCSPRoot
98 copy_cert OCSPCA2 OCSPRoot
99 copy_cert OCSPCA3 OCSPRoot
100 copy_cert OCSPEE11 OCSPCA1
101 copy_cert OCSPEE12 OCSPCA1
102 copy_cert OCSPEE13 OCSPCA1
103 copy_cert OCSPEE14 OCSPCA1
104 copy_cert OCSPEE15 OCSPCA1
105 copy_cert OCSPEE21 OCSPCA2
106 copy_cert OCSPEE22 OCSPCA2
107 copy_cert OCSPEE23 OCSPCA2
108 copy_cert OCSPEE31 OCSPCA3
109 copy_cert OCSPEE32 OCSPCA3
110 copy_cert OCSPEE33 OCSPCA3
112 copy_key OCSPRoot
113 copy_key OCSPCA1
114 copy_key OCSPCA2
115 copy_key OCSPCA3