@@ -49,8 +49,8 @@ Certificate chain where the leaf is revoked
49
49
50
50
## Test Data for testing CRL providers functionality
51
51
52
- To generate test data please follow the steps below or run provider_create.sh
53
- script. All the files have ` provider_ ` prefix.
52
+ To generate test data please run provider_create.sh script. All the files have
53
+ ` provider_ ` prefix.
54
54
55
55
We need to generate the following artifacts for testing CRL provider:
56
56
* server self signed CA cert
@@ -62,73 +62,31 @@ We need to generate the following artifacts for testing CRL provider:
62
62
* crl file by 'malicious' CA which contains the same issuer with original CA
63
63
64
64
65
- Please find the related commands below.
65
+ All the commands are provided in provider_create.sh script. Please find the
66
+ description below.
66
67
67
- * Generate self signed CAs
68
- ```
69
- $ openssl req -x509 -newkey rsa:4096 -keyout provider_server_trust_key.pem -out provider_server_trust_cert.pem -days 365 -subj "/C=US/ST=VA/O=Internet Widgits Pty Ltd/CN=foo.bar.hoo.ca.com" -nodes
70
- $ openssl req -x509 -newkey rsa:4096 -keyout provider_client_trust_key.pem -out provider_client_trust_cert.pem -days 365 -subj "/C=US/ST=CA/L=SVL/O=Internet Widgits Pty Ltd" -nodes
71
- ```
72
-
73
- * Generate client and server certs signed by CAs
74
- ```
75
- $ openssl req -newkey rsa:4096 -keyout provider_server_cert.key -out provider_new_cert.csr -nodes -subj "/C=US/ST=CA/L=DUMMYCITY/O=Internet Widgits Pty Ltd/CN=foo.bar.com" -sha256
76
- $ openssl x509 -req -in provider_new_cert.csr -out provider_server_cert.pem -CA provider_client_trust_cert.pem -CAkey provider_client_trust_key.pem -CAcreateserial -days 3650 -sha256 -extfile provider_extensions.conf
68
+ 1 . The first two commands generate self signed CAs for client and server:
69
+ - provider_server_trust_key.pem
70
+ - provider_server_trust_cert.pem
71
+ - provider_client_trust_key.pem
72
+ - provider_client_trust_cert.pem
77
73
78
- $ openssl req -newkey rsa:4096 -keyout provider_client_cert.key -out provider_new_cert.csr -nodes -subj "/C=US/ST=CA/O=Internet Widgits Pty Ltd/CN=foo.bar.hoo.com" -sha256
79
- $ openssl x509 -req -in provider_new_cert.csr -out provider_client_cert.pem -CA provider_server_trust_cert.pem -CAkey provider_server_trust_key.pem -CAcreateserial -days 3650 -sha256 -extfile provider_extensions.conf
80
- ```
81
-
82
- Here is the content of ` provider_extensions.conf ` -
83
- ```
84
- [extensions]
85
- subjectKeyIdentifier = hash
86
- authorityKeyIdentifier = keyid,issuer
87
- basicConstraints = CA:FALSE
88
- keyUsage = digitalSignature, keyEncipherment
89
- ```
74
+ 2 . Generate client and server certs signed by the CAs above:
75
+ - provider_server_cert.pem
76
+ - provider_client_cert.pem
90
77
91
- * Generate CRLs
92
- For CRL generation we need 2 more files called ` index.txt ` and ` crlnumber.txt ` :
93
- ```
94
- $ echo "1000" > provider_crlnumber.txt
95
- $ touch provider_index.txt
96
- ```
97
- Also we need another config ` provider_crl.cnf ` -
98
- ```
99
- [ ca ]
100
- default_ca = my_ca
101
-
102
- [ my_ca ]
103
- crl = crl.pem
104
- default_md = sha256
105
- database = provider_index.txt
106
- crlnumber = provider_crlnumber.txt
107
- default_crl_days = 30
108
- default_crl_hours = 1
109
- crl_extensions = crl_ext
110
-
111
- [crl_ext]
112
- # Authority Key Identifier extension
113
- authorityKeyIdentifier=keyid:always,issuer:always
114
- ```
78
+ 3 . The next 2 commands create 2 files needed for CRL issuing:
79
+ - provider_crlnumber.txt
80
+ - provider_index.txt
115
81
116
- The commands to generate empty CRL file and CRL file containing revoked server
117
- cert are below.
118
- ```
119
- $ openssl ca -gencrl -keyfile provider_client_trust_key.pem -cert provider_client_trust_cert.pem -out provider_crl_empty.pem -config provider_crl.cnf
120
- $ openssl ca -revoke provider_server_cert.pem -keyfile provider_client_trust_key.pem -cert provider_client_trust_cert.pem -config provider_crl.cnf
121
- $ openssl ca -gencrl -keyfile provider_client_trust_key.pem -cert provider_client_trust_cert.pem -out provider_crl_server_revoked.pem -config provider_crl.cnf
122
- ```
82
+ 4 . The next 3 commands generate an empty CRL file and a CRL file containing
83
+ revoked server cert:
84
+ - provider_crl_empty.pem
85
+ - provider_crl_server_revoked.pem
123
86
124
- The commands to generate CRL file by 'malicious' CA are below. Note that we use
125
- Subject Key Identifier from previously generated provider_client_trust_cert.pem
126
- to generate malicious certs / CRL.
127
- ```
128
- $ openssl genrsa -out provider_malicious_client_trust_key.pem 4096
129
- $ SKI=$(openssl x509 -in provider_client_trust_cert.pem -noout -text | awk '/Subject Key Identifier/ {getline; print $1;}')
130
- $ sed -i "s/subjectKeyIdentifier = X/subjectKeyIdentifier = $SKI/g" provider_extensions.conf
131
- $ openssl req -new -key provider_malicious_client_trust_key.pem -out cert_malicious_request.csr -subj "/C=US/ST=CA/L=SVL/O=Internet Widgits Pty Ltd" -config provider_extensions.conf
132
- $ openssl x509 -req -in cert_malicious_request.csr -signkey provider_malicious_client_trust_key.pem -out provider_malicious_client_trust_cert.pem -days 365 -extfile provider_extensions.conf -extensions extensions
133
- $ openssl ca -gencrl -keyfile provider_malicious_client_trust_key.pem -cert provider_malicious_client_trust_cert.pem -out provider_malicious_crl_empty.pem -config provider_crl.cnf
134
- ```
87
+ 5 . The final section contains commands to generate CRL file by 'malicious' CA.
88
+ Note that we use Subject Key Identifier from previously created
89
+ provider_client_trust_cert.pem to generate malicious certs / CRL.
90
+ - provider_malicious_client_trust_key.pem
91
+ - provider_malicious_client_trust_cert.pem
92
+ - provider_malicious_crl_empty.pem
0 commit comments