1 | #
|
---|
2 | # OpenSSL example configuration file.
|
---|
3 | # See doc/man5/config.pod for more info.
|
---|
4 | #
|
---|
5 | # This is mostly being used for generation of certificate requests,
|
---|
6 | # but may be used for auto loading of providers
|
---|
7 |
|
---|
8 | # Note that you can include other files from the main configuration
|
---|
9 | # file using the .include directive.
|
---|
10 | #.include filename
|
---|
11 |
|
---|
12 | # This definition stops the following lines choking if HOME isn't
|
---|
13 | # defined.
|
---|
14 | HOME = .
|
---|
15 |
|
---|
16 | # Use this in order to automatically load providers.
|
---|
17 | openssl_conf = openssl_init
|
---|
18 |
|
---|
19 | # Comment out the next line to ignore configuration errors
|
---|
20 | config_diagnostics = 1
|
---|
21 |
|
---|
22 | # Extra OBJECT IDENTIFIER info:
|
---|
23 | # oid_file = $ENV::HOME/.oid
|
---|
24 | oid_section = new_oids
|
---|
25 |
|
---|
26 | # To use this configuration file with the "-extfile" option of the
|
---|
27 | # "openssl x509" utility, name here the section containing the
|
---|
28 | # X.509v3 extensions to use:
|
---|
29 | # extensions =
|
---|
30 | # (Alternatively, use a configuration file that has only
|
---|
31 | # X.509v3 extensions in its main [= default] section.)
|
---|
32 |
|
---|
33 | [ new_oids ]
|
---|
34 | # We can add new OIDs in here for use by 'ca', 'req' and 'ts'.
|
---|
35 | # Add a simple OID like this:
|
---|
36 | # testoid1=1.2.3.4
|
---|
37 | # Or use config file substitution like this:
|
---|
38 | # testoid2=${testoid1}.5.6
|
---|
39 |
|
---|
40 | # Policies used by the TSA examples.
|
---|
41 | tsa_policy1 = 1.2.3.4.1
|
---|
42 | tsa_policy2 = 1.2.3.4.5.6
|
---|
43 | tsa_policy3 = 1.2.3.4.5.7
|
---|
44 |
|
---|
45 | # For FIPS
|
---|
46 | # Optionally include a file that is generated by the OpenSSL fipsinstall
|
---|
47 | # application. This file contains configuration data required by the OpenSSL
|
---|
48 | # fips provider. It contains a named section e.g. [fips_sect] which is
|
---|
49 | # referenced from the [provider_sect] below.
|
---|
50 | # Refer to the OpenSSL security policy for more information.
|
---|
51 | # .include fipsmodule.cnf
|
---|
52 |
|
---|
53 | [openssl_init]
|
---|
54 | providers = provider_sect
|
---|
55 |
|
---|
56 | # List of providers to load
|
---|
57 | [provider_sect]
|
---|
58 | default = default_sect
|
---|
59 | # The fips section name should match the section name inside the
|
---|
60 | # included fipsmodule.cnf.
|
---|
61 | # fips = fips_sect
|
---|
62 |
|
---|
63 | # If no providers are activated explicitly, the default one is activated implicitly.
|
---|
64 | # See man 7 OSSL_PROVIDER-default for more details.
|
---|
65 | #
|
---|
66 | # If you add a section explicitly activating any other provider(s), you most
|
---|
67 | # probably need to explicitly activate the default provider, otherwise it
|
---|
68 | # becomes unavailable in openssl. As a consequence applications depending on
|
---|
69 | # OpenSSL may not work correctly which could lead to significant system
|
---|
70 | # problems including inability to remotely access the system.
|
---|
71 | [default_sect]
|
---|
72 | # activate = 1
|
---|
73 |
|
---|
74 |
|
---|
75 | ####################################################################
|
---|
76 | [ ca ]
|
---|
77 | default_ca = CA_default # The default ca section
|
---|
78 |
|
---|
79 | ####################################################################
|
---|
80 | [ CA_default ]
|
---|
81 |
|
---|
82 | dir = ./demoCA # Where everything is kept
|
---|
83 | certs = $dir/certs # Where the issued certs are kept
|
---|
84 | crl_dir = $dir/crl # Where the issued crl are kept
|
---|
85 | database = $dir/index.txt # database index file.
|
---|
86 | #unique_subject = no # Set to 'no' to allow creation of
|
---|
87 | # several certs with same subject.
|
---|
88 | new_certs_dir = $dir/newcerts # default place for new certs.
|
---|
89 |
|
---|
90 | certificate = $dir/cacert.pem # The CA certificate
|
---|
91 | serial = $dir/serial # The current serial number
|
---|
92 | crlnumber = $dir/crlnumber # the current crl number
|
---|
93 | # must be commented out to leave a V1 CRL
|
---|
94 | crl = $dir/crl.pem # The current CRL
|
---|
95 | private_key = $dir/private/cakey.pem # The private key
|
---|
96 |
|
---|
97 | x509_extensions = usr_cert # The extensions to add to the cert
|
---|
98 |
|
---|
99 | # Comment out the following two lines for the "traditional"
|
---|
100 | # (and highly broken) format.
|
---|
101 | name_opt = ca_default # Subject Name options
|
---|
102 | cert_opt = ca_default # Certificate field options
|
---|
103 |
|
---|
104 | # Extension copying option: use with caution.
|
---|
105 | # copy_extensions = copy
|
---|
106 |
|
---|
107 | # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
|
---|
108 | # so this is commented out by default to leave a V1 CRL.
|
---|
109 | # crlnumber must also be commented out to leave a V1 CRL.
|
---|
110 | # crl_extensions = crl_ext
|
---|
111 |
|
---|
112 | default_days = 365 # how long to certify for
|
---|
113 | default_crl_days= 30 # how long before next CRL
|
---|
114 | default_md = default # use public key default MD
|
---|
115 | preserve = no # keep passed DN ordering
|
---|
116 |
|
---|
117 | # A few difference way of specifying how similar the request should look
|
---|
118 | # For type CA, the listed attributes must be the same, and the optional
|
---|
119 | # and supplied fields are just that :-)
|
---|
120 | policy = policy_match
|
---|
121 |
|
---|
122 | # For the CA policy
|
---|
123 | [ policy_match ]
|
---|
124 | countryName = match
|
---|
125 | stateOrProvinceName = match
|
---|
126 | organizationName = match
|
---|
127 | organizationalUnitName = optional
|
---|
128 | commonName = supplied
|
---|
129 | emailAddress = optional
|
---|
130 |
|
---|
131 | # For the 'anything' policy
|
---|
132 | # At this point in time, you must list all acceptable 'object'
|
---|
133 | # types.
|
---|
134 | [ policy_anything ]
|
---|
135 | countryName = optional
|
---|
136 | stateOrProvinceName = optional
|
---|
137 | localityName = optional
|
---|
138 | organizationName = optional
|
---|
139 | organizationalUnitName = optional
|
---|
140 | commonName = supplied
|
---|
141 | emailAddress = optional
|
---|
142 |
|
---|
143 | ####################################################################
|
---|
144 | [ req ]
|
---|
145 | default_bits = 2048
|
---|
146 | default_keyfile = privkey.pem
|
---|
147 | distinguished_name = req_distinguished_name
|
---|
148 | attributes = req_attributes
|
---|
149 | x509_extensions = v3_ca # The extensions to add to the self signed cert
|
---|
150 |
|
---|
151 | # Passwords for private keys if not present they will be prompted for
|
---|
152 | # input_password = secret
|
---|
153 | # output_password = secret
|
---|
154 |
|
---|
155 | # This sets a mask for permitted string types. There are several options.
|
---|
156 | # default: PrintableString, T61String, BMPString.
|
---|
157 | # pkix : PrintableString, BMPString (PKIX recommendation before 2004)
|
---|
158 | # utf8only: only UTF8Strings (PKIX recommendation after 2004).
|
---|
159 | # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
|
---|
160 | # MASK:XXXX a literal mask value.
|
---|
161 | # WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings.
|
---|
162 | string_mask = utf8only
|
---|
163 |
|
---|
164 | # req_extensions = v3_req # The extensions to add to a certificate request
|
---|
165 |
|
---|
166 | [ req_distinguished_name ]
|
---|
167 | countryName = Country Name (2 letter code)
|
---|
168 | countryName_default = AU
|
---|
169 | countryName_min = 2
|
---|
170 | countryName_max = 2
|
---|
171 |
|
---|
172 | stateOrProvinceName = State or Province Name (full name)
|
---|
173 | stateOrProvinceName_default = Some-State
|
---|
174 |
|
---|
175 | localityName = Locality Name (eg, city)
|
---|
176 |
|
---|
177 | 0.organizationName = Organization Name (eg, company)
|
---|
178 | 0.organizationName_default = Internet Widgits Pty Ltd
|
---|
179 |
|
---|
180 | # we can do this but it is not needed normally :-)
|
---|
181 | #1.organizationName = Second Organization Name (eg, company)
|
---|
182 | #1.organizationName_default = World Wide Web Pty Ltd
|
---|
183 |
|
---|
184 | organizationalUnitName = Organizational Unit Name (eg, section)
|
---|
185 | #organizationalUnitName_default =
|
---|
186 |
|
---|
187 | commonName = Common Name (e.g. server FQDN or YOUR name)
|
---|
188 | commonName_max = 64
|
---|
189 |
|
---|
190 | emailAddress = Email Address
|
---|
191 | emailAddress_max = 64
|
---|
192 |
|
---|
193 | # SET-ex3 = SET extension number 3
|
---|
194 |
|
---|
195 | [ req_attributes ]
|
---|
196 | challengePassword = A challenge password
|
---|
197 | challengePassword_min = 4
|
---|
198 | challengePassword_max = 20
|
---|
199 |
|
---|
200 | unstructuredName = An optional company name
|
---|
201 |
|
---|
202 | [ usr_cert ]
|
---|
203 |
|
---|
204 | # These extensions are added when 'ca' signs a request.
|
---|
205 |
|
---|
206 | # This goes against PKIX guidelines but some CAs do it and some software
|
---|
207 | # requires this to avoid interpreting an end user certificate as a CA.
|
---|
208 |
|
---|
209 | basicConstraints=CA:FALSE
|
---|
210 |
|
---|
211 | # This is typical in keyUsage for a client certificate.
|
---|
212 | # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
---|
213 |
|
---|
214 | # PKIX recommendations harmless if included in all certificates.
|
---|
215 | subjectKeyIdentifier=hash
|
---|
216 | authorityKeyIdentifier=keyid,issuer
|
---|
217 |
|
---|
218 | # This stuff is for subjectAltName and issuerAltname.
|
---|
219 | # Import the email address.
|
---|
220 | # subjectAltName=email:copy
|
---|
221 | # An alternative to produce certificates that aren't
|
---|
222 | # deprecated according to PKIX.
|
---|
223 | # subjectAltName=email:move
|
---|
224 |
|
---|
225 | # Copy subject details
|
---|
226 | # issuerAltName=issuer:copy
|
---|
227 |
|
---|
228 | # This is required for TSA certificates.
|
---|
229 | # extendedKeyUsage = critical,timeStamping
|
---|
230 |
|
---|
231 | [ v3_req ]
|
---|
232 |
|
---|
233 | # Extensions to add to a certificate request
|
---|
234 |
|
---|
235 | basicConstraints = CA:FALSE
|
---|
236 | keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
---|
237 |
|
---|
238 | [ v3_ca ]
|
---|
239 |
|
---|
240 |
|
---|
241 | # Extensions for a typical CA
|
---|
242 |
|
---|
243 |
|
---|
244 | # PKIX recommendation.
|
---|
245 |
|
---|
246 | subjectKeyIdentifier=hash
|
---|
247 |
|
---|
248 | authorityKeyIdentifier=keyid:always,issuer
|
---|
249 |
|
---|
250 | basicConstraints = critical,CA:true
|
---|
251 |
|
---|
252 | # Key usage: this is typical for a CA certificate. However since it will
|
---|
253 | # prevent it being used as an test self-signed certificate it is best
|
---|
254 | # left out by default.
|
---|
255 | # keyUsage = cRLSign, keyCertSign
|
---|
256 |
|
---|
257 | # Include email address in subject alt name: another PKIX recommendation
|
---|
258 | # subjectAltName=email:copy
|
---|
259 | # Copy issuer details
|
---|
260 | # issuerAltName=issuer:copy
|
---|
261 |
|
---|
262 | # DER hex encoding of an extension: beware experts only!
|
---|
263 | # obj=DER:02:03
|
---|
264 | # Where 'obj' is a standard or added object
|
---|
265 | # You can even override a supported extension:
|
---|
266 | # basicConstraints= critical, DER:30:03:01:01:FF
|
---|
267 |
|
---|
268 | [ crl_ext ]
|
---|
269 |
|
---|
270 | # CRL extensions.
|
---|
271 | # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
|
---|
272 |
|
---|
273 | # issuerAltName=issuer:copy
|
---|
274 | authorityKeyIdentifier=keyid:always
|
---|
275 |
|
---|
276 | [ proxy_cert_ext ]
|
---|
277 | # These extensions should be added when creating a proxy certificate
|
---|
278 |
|
---|
279 | # This goes against PKIX guidelines but some CAs do it and some software
|
---|
280 | # requires this to avoid interpreting an end user certificate as a CA.
|
---|
281 |
|
---|
282 | basicConstraints=CA:FALSE
|
---|
283 |
|
---|
284 | # This is typical in keyUsage for a client certificate.
|
---|
285 | # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
---|
286 |
|
---|
287 | # PKIX recommendations harmless if included in all certificates.
|
---|
288 | subjectKeyIdentifier=hash
|
---|
289 | authorityKeyIdentifier=keyid,issuer
|
---|
290 |
|
---|
291 | # This stuff is for subjectAltName and issuerAltname.
|
---|
292 | # Import the email address.
|
---|
293 | # subjectAltName=email:copy
|
---|
294 | # An alternative to produce certificates that aren't
|
---|
295 | # deprecated according to PKIX.
|
---|
296 | # subjectAltName=email:move
|
---|
297 |
|
---|
298 | # Copy subject details
|
---|
299 | # issuerAltName=issuer:copy
|
---|
300 |
|
---|
301 | # This really needs to be in place for it to be a proxy certificate.
|
---|
302 | proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
|
---|
303 |
|
---|
304 | ####################################################################
|
---|
305 | [ tsa ]
|
---|
306 |
|
---|
307 | default_tsa = tsa_config1 # the default TSA section
|
---|
308 |
|
---|
309 | [ tsa_config1 ]
|
---|
310 |
|
---|
311 | # These are used by the TSA reply generation only.
|
---|
312 | dir = ./demoCA # TSA root directory
|
---|
313 | serial = $dir/tsaserial # The current serial number (mandatory)
|
---|
314 | crypto_device = builtin # OpenSSL engine to use for signing
|
---|
315 | signer_cert = $dir/tsacert.pem # The TSA signing certificate
|
---|
316 | # (optional)
|
---|
317 | certs = $dir/cacert.pem # Certificate chain to include in reply
|
---|
318 | # (optional)
|
---|
319 | signer_key = $dir/private/tsakey.pem # The TSA private key (optional)
|
---|
320 | signer_digest = sha256 # Signing digest to use. (Optional)
|
---|
321 | default_policy = tsa_policy1 # Policy if request did not specify it
|
---|
322 | # (optional)
|
---|
323 | other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional)
|
---|
324 | digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory)
|
---|
325 | accuracy = secs:1, millisecs:500, microsecs:100 # (optional)
|
---|
326 | clock_precision_digits = 0 # number of digits after dot. (optional)
|
---|
327 | ordering = yes # Is ordering defined for timestamps?
|
---|
328 | # (optional, default: no)
|
---|
329 | tsa_name = yes # Must the TSA name be included in the reply?
|
---|
330 | # (optional, default: no)
|
---|
331 | ess_cert_id_chain = no # Must the ESS cert id chain be included?
|
---|
332 | # (optional, default: no)
|
---|
333 | ess_cert_id_alg = sha1 # algorithm to compute certificate
|
---|
334 | # identifier (optional, default: sha1)
|
---|
335 |
|
---|
336 | [insta] # CMP using Insta Demo CA
|
---|
337 | # Message transfer
|
---|
338 | server = pki.certificate.fi:8700
|
---|
339 | # proxy = # set this as far as needed, e.g., http://192.168.1.1:8080
|
---|
340 | # tls_use = 0
|
---|
341 | path = pkix/
|
---|
342 |
|
---|
343 | # Server authentication
|
---|
344 | recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer
|
---|
345 | ignore_keyusage = 1 # potentially needed quirk
|
---|
346 | unprotected_errors = 1 # potentially needed quirk
|
---|
347 | extracertsout = insta.extracerts.pem
|
---|
348 |
|
---|
349 | # Client authentication
|
---|
350 | ref = 3078 # user identification
|
---|
351 | secret = pass:insta # can be used for both client and server side
|
---|
352 |
|
---|
353 | # Generic message options
|
---|
354 | cmd = ir # default operation, can be overridden on cmd line with, e.g., kur
|
---|
355 |
|
---|
356 | # Certificate enrollment
|
---|
357 | subject = "/CN=openssl-cmp-test"
|
---|
358 | newkey = insta.priv.pem
|
---|
359 | out_trusted = insta.ca.crt
|
---|
360 | certout = insta.cert.pem
|
---|
361 |
|
---|
362 | [pbm] # Password-based protection for Insta CA
|
---|
363 | # Server and client authentication
|
---|
364 | ref = $insta::ref # 3078
|
---|
365 | secret = $insta::secret # pass:insta
|
---|
366 |
|
---|
367 | [signature] # Signature-based protection for Insta CA
|
---|
368 | # Server authentication
|
---|
369 | trusted = insta.ca.crt # does not include keyUsage digitalSignature
|
---|
370 |
|
---|
371 | # Client authentication
|
---|
372 | secret = # disable PBM
|
---|
373 | key = $insta::newkey # insta.priv.pem
|
---|
374 | cert = $insta::certout # insta.cert.pem
|
---|
375 |
|
---|
376 | [ir]
|
---|
377 | cmd = ir
|
---|
378 |
|
---|
379 | [cr]
|
---|
380 | cmd = cr
|
---|
381 |
|
---|
382 | [kur]
|
---|
383 | # Certificate update
|
---|
384 | cmd = kur
|
---|
385 | oldcert = $insta::certout # insta.cert.pem
|
---|
386 |
|
---|
387 | [rr]
|
---|
388 | # Certificate revocation
|
---|
389 | cmd = rr
|
---|
390 | oldcert = $insta::certout # insta.cert.pem
|
---|