diff options
Diffstat (limited to 'src/lib/libcrypto/man/x509v3.cnf.5')
-rw-r--r-- | src/lib/libcrypto/man/x509v3.cnf.5 | 738 |
1 files changed, 0 insertions, 738 deletions
diff --git a/src/lib/libcrypto/man/x509v3.cnf.5 b/src/lib/libcrypto/man/x509v3.cnf.5 deleted file mode 100644 index 89f52d6a01..0000000000 --- a/src/lib/libcrypto/man/x509v3.cnf.5 +++ /dev/null | |||
@@ -1,738 +0,0 @@ | |||
1 | .\" $OpenBSD: x509v3.cnf.5,v 1.8 2022/03/31 17:27:17 naddy Exp $ | ||
2 | .\" full merge up to: | ||
3 | .\" OpenSSL man5/x509v3_config a41815f0 Mar 17 18:43:53 2017 -0700 | ||
4 | .\" selective merge up to: OpenSSL 36cf10cf Oct 4 02:11:08 2017 -0400 | ||
5 | .\" | ||
6 | .\" This file was written by Dr. Stephen Henson <steve@openssl.org>. | ||
7 | .\" Copyright (c) 2004, 2006, 2013, 2014, 2015, 2016 The OpenSSL Project. | ||
8 | .\" All rights reserved. | ||
9 | .\" | ||
10 | .\" Redistribution and use in source and binary forms, with or without | ||
11 | .\" modification, are permitted provided that the following conditions | ||
12 | .\" are met: | ||
13 | .\" | ||
14 | .\" 1. Redistributions of source code must retain the above copyright | ||
15 | .\" notice, this list of conditions and the following disclaimer. | ||
16 | .\" | ||
17 | .\" 2. Redistributions in binary form must reproduce the above copyright | ||
18 | .\" notice, this list of conditions and the following disclaimer in | ||
19 | .\" the documentation and/or other materials provided with the | ||
20 | .\" distribution. | ||
21 | .\" | ||
22 | .\" 3. All advertising materials mentioning features or use of this | ||
23 | .\" software must display the following acknowledgment: | ||
24 | .\" "This product includes software developed by the OpenSSL Project | ||
25 | .\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
26 | .\" | ||
27 | .\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
28 | .\" endorse or promote products derived from this software without | ||
29 | .\" prior written permission. For written permission, please contact | ||
30 | .\" openssl-core@openssl.org. | ||
31 | .\" | ||
32 | .\" 5. Products derived from this software may not be called "OpenSSL" | ||
33 | .\" nor may "OpenSSL" appear in their names without prior written | ||
34 | .\" permission of the OpenSSL Project. | ||
35 | .\" | ||
36 | .\" 6. Redistributions of any form whatsoever must retain the following | ||
37 | .\" acknowledgment: | ||
38 | .\" "This product includes software developed by the OpenSSL Project | ||
39 | .\" for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
40 | .\" | ||
41 | .\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
42 | .\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
43 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
44 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
45 | .\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
46 | .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
47 | .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
48 | .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
49 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
50 | .\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
51 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
52 | .\" OF THE POSSIBILITY OF SUCH DAMAGE. | ||
53 | .\" | ||
54 | .Dd $Mdocdate: March 31 2022 $ | ||
55 | .Dt X509V3.CNF 5 | ||
56 | .Os | ||
57 | .Sh NAME | ||
58 | .Nm x509v3.cnf | ||
59 | .Nd X.509 V3 certificate extension configuration format | ||
60 | .Sh DESCRIPTION | ||
61 | Several of the OpenSSL utilities can add extensions to a certificate or | ||
62 | certificate request based on the contents of a configuration file. | ||
63 | The file format is based on the | ||
64 | .Xr openssl.cnf 5 | ||
65 | format. | ||
66 | .Pp | ||
67 | Typically the application will contain an option to point to an | ||
68 | extension section. | ||
69 | Each line of the extension section takes the form: | ||
70 | .Pp | ||
71 | .D1 Ar extension_name Ns = Ns Oo Cm critical , Oc Ar extension_options | ||
72 | .Pp | ||
73 | If | ||
74 | .Cm critical | ||
75 | is present, then the extension will be critical. | ||
76 | .Pp | ||
77 | The format of | ||
78 | .Ar extension_options | ||
79 | depends on the value of | ||
80 | .Ar extension_name . | ||
81 | .Pp | ||
82 | There are four main types of extension: string extensions, multi-valued | ||
83 | extensions, raw extensions, and arbitrary extensions. | ||
84 | .Pp | ||
85 | String extensions simply have a string which contains either the value | ||
86 | itself or how it is obtained. | ||
87 | For example: | ||
88 | .Pp | ||
89 | .Dl nsComment="This is a Comment" | ||
90 | .Pp | ||
91 | Multi-valued extensions have a short form and a long form. | ||
92 | The short form is a list of names and values: | ||
93 | .Pp | ||
94 | .Dl basicConstraints=critical,CA:true,pathlen:1 | ||
95 | .Pp | ||
96 | The long form allows the values to be placed in a separate section: | ||
97 | .Bd -literal -offset indent | ||
98 | basicConstraints=critical,@bs_section | ||
99 | |||
100 | [bs_section] | ||
101 | CA=true | ||
102 | pathlen=1 | ||
103 | .Ed | ||
104 | .Pp | ||
105 | Both forms are equivalent. | ||
106 | .Pp | ||
107 | The syntax of raw extensions is governed by the extension code: | ||
108 | it can for example contain data in multiple sections. | ||
109 | The correct syntax to use is defined by the extension code itself: | ||
110 | check out the certificate policies extension for an example. | ||
111 | .Pp | ||
112 | If an extension type is unsupported, then the arbitrary extension | ||
113 | syntax must be used; see the | ||
114 | .Sx ARBITRARY EXTENSIONS | ||
115 | section for more details. | ||
116 | .Sh STANDARD EXTENSIONS | ||
117 | The following sections describe each supported extension in detail. | ||
118 | .Ss Basic constraints | ||
119 | This is a multi-valued extension which indicates whether a certificate | ||
120 | is a CA certificate. | ||
121 | The first (mandatory) name is | ||
122 | .Ic CA | ||
123 | followed by | ||
124 | .Cm TRUE | ||
125 | or | ||
126 | .Cm FALSE . | ||
127 | If | ||
128 | .Ic CA | ||
129 | is | ||
130 | .Cm TRUE , | ||
131 | then an optional | ||
132 | .Ic pathlen | ||
133 | name followed by a non-negative value can be included. | ||
134 | For example: | ||
135 | .Bd -literal -offset indent | ||
136 | basicConstraints=CA:TRUE | ||
137 | basicConstraints=CA:FALSE | ||
138 | basicConstraints=critical,CA:TRUE, pathlen:0 | ||
139 | .Ed | ||
140 | .Pp | ||
141 | A CA certificate must include the | ||
142 | .Ic basicConstraints | ||
143 | value with the | ||
144 | .Ic CA | ||
145 | field set to | ||
146 | .Cm TRUE . | ||
147 | An end user certificate must either set | ||
148 | .Ic CA | ||
149 | to | ||
150 | .Cm FALSE | ||
151 | or exclude the extension entirely. | ||
152 | Some software may require the inclusion of | ||
153 | .Ic basicConstraints | ||
154 | with | ||
155 | .Ic CA | ||
156 | set to | ||
157 | .Cm FALSE | ||
158 | for end entity certificates. | ||
159 | .Pp | ||
160 | The | ||
161 | .Ic pathlen | ||
162 | parameter indicates the maximum number of CAs that can appear below | ||
163 | this one in a chain. | ||
164 | So if you have a CA with a | ||
165 | .Ic pathlen | ||
166 | of zero, it can only be used to sign end user certificates and not | ||
167 | further CAs. | ||
168 | .Ss Key usage | ||
169 | Key usage is a multi-valued extension consisting of a list of names of | ||
170 | the permitted key usages. | ||
171 | .Pp | ||
172 | The supported names are: | ||
173 | .Ic digitalSignature , | ||
174 | .Ic nonRepudiation , | ||
175 | .Ic keyEncipherment , | ||
176 | .Ic dataEncipherment , | ||
177 | .Ic keyAgreement , | ||
178 | .Ic keyCertSign , | ||
179 | .Ic cRLSign , | ||
180 | .Ic encipherOnly , | ||
181 | and | ||
182 | .Ic decipherOnly . | ||
183 | Examples: | ||
184 | .Bd -literal -offset indent | ||
185 | keyUsage=digitalSignature, nonRepudiation | ||
186 | keyUsage=critical, keyCertSign | ||
187 | .Ed | ||
188 | .Ss Extended key usage | ||
189 | This extension consists of a list of purposes for | ||
190 | which the certificate public key can be used. | ||
191 | .Pp | ||
192 | These can either be object short names or the dotted numerical form of OIDs. | ||
193 | While any OID can be used, only certain values make sense. | ||
194 | In particular the following PKIX, NS and MS values are meaningful: | ||
195 | .Bl -column emailProtection | ||
196 | .It Em value Ta Em meaning | ||
197 | .It Ic serverAuth Ta TLS server authentication | ||
198 | .It Ic clientAuth Ta TLS client authentication | ||
199 | .It Ic codeSigning Ta code signing | ||
200 | .It Ic emailProtection Ta E-mail protection (S/MIME) | ||
201 | .It Ic timeStamping Ta trusted timestamping | ||
202 | .It Ic OCSPSigning Ta OCSP signing | ||
203 | .It Ic ipsecIKE Ta IPsec internet key exchange | ||
204 | .It Ic msCodeInd Ta Microsoft individual code signing (authenticode) | ||
205 | .It Ic msCodeCom Ta Microsoft commercial code signing (authenticode) | ||
206 | .It Ic msCTLSign Ta Microsoft trust list signing | ||
207 | .It Ic msEFS Ta Microsoft encrypted file system | ||
208 | .El | ||
209 | .Pp | ||
210 | Examples: | ||
211 | .Bd -literal -offset indent | ||
212 | extendedKeyUsage=critical,codeSigning,1.2.3.4 | ||
213 | extendedKeyUsage=serverAuth,clientAuth | ||
214 | .Ed | ||
215 | .Ss Subject key identifier | ||
216 | This is really a string extension and can take two possible values. | ||
217 | Either the word | ||
218 | .Cm hash | ||
219 | which will automatically follow the guidelines in RFC 3280 | ||
220 | or a hex string giving the extension value to include. | ||
221 | The use of the hex string is strongly discouraged. | ||
222 | Example: | ||
223 | .Pp | ||
224 | .Dl subjectKeyIdentifier=hash | ||
225 | .Ss Authority key identifier | ||
226 | The authority key identifier extension permits two options, | ||
227 | .Cm keyid | ||
228 | and | ||
229 | .Cm issuer : | ||
230 | both can take the optional value | ||
231 | .Cm always . | ||
232 | .Pp | ||
233 | If the | ||
234 | .Cm keyid | ||
235 | option is present, an attempt is made to copy the subject | ||
236 | key identifier from the parent certificate. | ||
237 | If the value | ||
238 | .Cm always | ||
239 | is present, then an error is returned if the option fails. | ||
240 | .Pp | ||
241 | The | ||
242 | .Cm issuer | ||
243 | option copies the issuer and serial number from the issuer certificate. | ||
244 | This will only be done if the | ||
245 | .Cm keyid | ||
246 | option fails or is not included unless the | ||
247 | .Cm always | ||
248 | flag will always include the value. | ||
249 | Example: | ||
250 | .Pp | ||
251 | .Dl authorityKeyIdentifier=keyid,issuer | ||
252 | .Ss Subject alternative name | ||
253 | The subject alternative name extension allows various literal values to | ||
254 | be included in the configuration file. | ||
255 | These include | ||
256 | .Ic email | ||
257 | (an email address), | ||
258 | .Ic URI | ||
259 | (a uniform resource indicator), | ||
260 | .Ic DNS | ||
261 | (a DNS domain name), | ||
262 | .Ic RID | ||
263 | (a registered ID: OBJECT IDENTIFIER), | ||
264 | .Ic IP | ||
265 | (an IP address), | ||
266 | .Ic dirName | ||
267 | (a distinguished name), and | ||
268 | .Ic otherName . | ||
269 | .Pp | ||
270 | The | ||
271 | .Ic email | ||
272 | option can include a special | ||
273 | .Cm copy | ||
274 | value. | ||
275 | This will automatically include any email addresses contained in the | ||
276 | certificate subject name in the extension. | ||
277 | .Pp | ||
278 | The IP address used in the | ||
279 | .Ic IP | ||
280 | options can be in either IPv4 or IPv6 format. | ||
281 | .Pp | ||
282 | The value of | ||
283 | .Ic dirName | ||
284 | should point to a section containing the distinguished name to use as a | ||
285 | set of name value pairs. | ||
286 | Multi values AVAs can be formed by prefacing the name with a | ||
287 | .Ql + | ||
288 | character. | ||
289 | .Pp | ||
290 | .Ic otherName | ||
291 | can include arbitrary data associated with an OID: the value should | ||
292 | be the OID followed by a semicolon and the content in standard | ||
293 | .Xr ASN1_generate_nconf 3 | ||
294 | format. | ||
295 | Examples: | ||
296 | .Bd -literal -offset 2n | ||
297 | subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/ | ||
298 | subjectAltName=IP:192.168.7.1 | ||
299 | subjectAltName=IP:13::17 | ||
300 | subjectAltName=email:my@other.address,RID:1.2.3.4 | ||
301 | subjectAltName=otherName:1.2.3.4;UTF8:some other identifier | ||
302 | |||
303 | subjectAltName=dirName:dir_sect | ||
304 | |||
305 | [dir_sect] | ||
306 | C=UK | ||
307 | O=My Organization | ||
308 | OU=My Unit | ||
309 | CN=My Name | ||
310 | .Ed | ||
311 | .Ss Issuer alternative name | ||
312 | The issuer alternative name option supports all the literal options of | ||
313 | subject alternative name. | ||
314 | It does not support the | ||
315 | .Ic email : Ns Cm copy | ||
316 | option because that would not make sense. | ||
317 | It does support an additional | ||
318 | .Ic issuer : Ns Cm copy | ||
319 | option that will copy all the subject alternative name values from | ||
320 | the issuer certificate (if possible). | ||
321 | Example: | ||
322 | .Pp | ||
323 | .Dl issuerAltName = issuer:copy | ||
324 | .Ss Authority info access | ||
325 | The authority information access extension gives details about how to | ||
326 | access certain information relating to the CA. | ||
327 | Its syntax is | ||
328 | .Ar accessOID ; location | ||
329 | where | ||
330 | .Ar location | ||
331 | has the same syntax as subject alternative name (except that | ||
332 | .Ic email : Ns Cm copy | ||
333 | is not supported). | ||
334 | .Ar accessOID | ||
335 | can be any valid OID but only certain values are meaningful, | ||
336 | for example | ||
337 | .Cm OCSP | ||
338 | and | ||
339 | .Cm caIssuers . | ||
340 | Example: | ||
341 | .Bd -literal -offset indent | ||
342 | authorityInfoAccess = OCSP;URI:http://ocsp.my.host/ | ||
343 | authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html | ||
344 | .Ed | ||
345 | .Ss CRL distribution points | ||
346 | This is a multi-valued extension whose options can be either in | ||
347 | .Ar name : Ns Ar value | ||
348 | pair form using the same form as subject alternative name or a | ||
349 | single value representing a section name containing all the | ||
350 | distribution point fields. | ||
351 | .Pp | ||
352 | For a | ||
353 | .Ar name : Ns Ar value | ||
354 | pair a new DistributionPoint with the fullName field set to the | ||
355 | given value, both the cRLissuer and reasons fields are omitted in | ||
356 | this case. | ||
357 | .Pp | ||
358 | In the single option case, the section indicated contains values | ||
359 | for each field. | ||
360 | In this section: | ||
361 | .Pp | ||
362 | If the name is | ||
363 | .Ic fullname , | ||
364 | the value field should contain the full name of the distribution | ||
365 | point in the same format as subject alternative name. | ||
366 | .Pp | ||
367 | If the name is | ||
368 | .Ic relativename , | ||
369 | then the value field should contain a section name whose contents | ||
370 | represent a DN fragment to be placed in this field. | ||
371 | .Pp | ||
372 | The name | ||
373 | .Ic CRLIssuer , | ||
374 | if present, should contain a value for this field in subject | ||
375 | alternative name format. | ||
376 | .Pp | ||
377 | If the name is | ||
378 | .Ic reasons , | ||
379 | the value field should consist of a comma separated field containing | ||
380 | the reasons. | ||
381 | Valid reasons are: | ||
382 | .Cm keyCompromise , | ||
383 | .Cm CACompromise , | ||
384 | .Cm affiliationChanged , | ||
385 | .Cm superseded , | ||
386 | .Cm cessationOfOperation , | ||
387 | .Cm certificateHold , | ||
388 | .Cm privilegeWithdrawn , | ||
389 | and | ||
390 | .Cm AACompromise . | ||
391 | .Pp | ||
392 | Simple examples: | ||
393 | .Bd -literal -offset indent | ||
394 | crlDistributionPoints=URI:http://myhost.com/myca.crl | ||
395 | crlDistributionPoints=URI:http://my.com/my.crl,URI:http://oth.com/my.crl | ||
396 | .Ed | ||
397 | .Pp | ||
398 | Full distribution point example: | ||
399 | .Bd -literal -offset indent | ||
400 | crlDistributionPoints=crldp1_section | ||
401 | |||
402 | [crldp1_section] | ||
403 | fullname=URI:http://myhost.com/myca.crl | ||
404 | CRLissuer=dirName:issuer_sect | ||
405 | reasons=keyCompromise, CACompromise | ||
406 | |||
407 | [issuer_sect] | ||
408 | C=UK | ||
409 | O=Organisation | ||
410 | CN=Some Name | ||
411 | .Ed | ||
412 | .Ss Issuing distribution point | ||
413 | This extension should only appear in CRLs. | ||
414 | It is a multi-valued extension whose syntax is similar to the "section" | ||
415 | pointed to by the CRL distribution points extension with a few | ||
416 | differences. | ||
417 | .Pp | ||
418 | The names | ||
419 | .Ic reasons | ||
420 | and | ||
421 | .Ic CRLissuer | ||
422 | are not recognized. | ||
423 | .Pp | ||
424 | The name | ||
425 | .Ic onlysomereasons | ||
426 | is accepted, which sets this field. | ||
427 | The value is in the same format as the CRL distribution point | ||
428 | .Ic reasons | ||
429 | field. | ||
430 | .Pp | ||
431 | The names | ||
432 | .Ic onlyuser , | ||
433 | .Ic onlyCA , | ||
434 | .Ic onlyAA , | ||
435 | and | ||
436 | .Ic indirectCRL | ||
437 | are also accepted. | ||
438 | The values should be a boolean values | ||
439 | .Cm ( TRUE | ||
440 | or | ||
441 | .Cm FALSE ) | ||
442 | to indicate the value of the corresponding field. | ||
443 | Example: | ||
444 | .Bd -literal -offset indent | ||
445 | issuingDistributionPoint=critical, @idp_section | ||
446 | |||
447 | [idp_section] | ||
448 | fullname=URI:http://myhost.com/myca.crl | ||
449 | indirectCRL=TRUE | ||
450 | onlysomereasons=keyCompromise, CACompromise | ||
451 | |||
452 | [issuer_sect] | ||
453 | C=UK | ||
454 | O=Organisation | ||
455 | CN=Some Name | ||
456 | .Ed | ||
457 | .Ss Certificate policies | ||
458 | This is a raw extension. | ||
459 | All the fields of this extension can be set by using the appropriate | ||
460 | syntax. | ||
461 | .Pp | ||
462 | If you follow the PKIX recommendations and just use one OID, then you | ||
463 | just include the value of that OID. | ||
464 | Multiple OIDs can be set separated by commas, for example: | ||
465 | .Pp | ||
466 | .Dl certificatePolicies= 1.2.4.5, 1.1.3.4 | ||
467 | .Pp | ||
468 | If you wish to include qualifiers, then the policy OID and qualifiers | ||
469 | need to be specified in a separate section: this is done by using the | ||
470 | .Pf @ Ar section | ||
471 | syntax instead of a literal OID value. | ||
472 | .Pp | ||
473 | The section referred to must include the policy OID using the name | ||
474 | .Ic policyIdentifier . | ||
475 | .Ic CPSuri | ||
476 | qualifiers can be included using the syntax: | ||
477 | .Pp | ||
478 | .D1 Ic CPS . Ns Ar nnn Ns = Ns Ar value | ||
479 | .Pp | ||
480 | .Ic userNotice | ||
481 | qualifiers can be set using the syntax: | ||
482 | .Pp | ||
483 | .D1 Ic userNotice . Ns Ar nnn Ns =@ Ns Ar notice | ||
484 | .Pp | ||
485 | The value of the | ||
486 | .Ic userNotice | ||
487 | qualifier is specified in the relevant section. | ||
488 | This section can include | ||
489 | .Ic explicitText , | ||
490 | .Ic organization , | ||
491 | and | ||
492 | .Ic noticeNumbers | ||
493 | options. | ||
494 | .Ic explicitText | ||
495 | and | ||
496 | .Ic organization | ||
497 | are text strings, | ||
498 | and | ||
499 | .Ic noticeNumbers | ||
500 | is a comma separated list of numbers. | ||
501 | The | ||
502 | .Ic organization | ||
503 | and | ||
504 | .Ic noticeNumbers | ||
505 | options (if included) must | ||
506 | .Em both | ||
507 | be present. | ||
508 | If you use the | ||
509 | .Ic userNotice | ||
510 | option with IE5 then you need the | ||
511 | .Ic ia5org | ||
512 | option at the top level to modify the encoding: otherwise it will | ||
513 | not be interpreted properly. | ||
514 | Example: | ||
515 | .Bd -literal -offset indent | ||
516 | certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect | ||
517 | |||
518 | [polsect] | ||
519 | policyIdentifier = 1.3.5.8 | ||
520 | CPS.1="http://my.host.name/" | ||
521 | CPS.2="http://my.your.name/" | ||
522 | userNotice.1=@notice | ||
523 | |||
524 | [notice] | ||
525 | explicitText="Explicit Text Here" | ||
526 | organization="Organisation Name" | ||
527 | noticeNumbers=1,2,3,4 | ||
528 | .Ed | ||
529 | .Pp | ||
530 | The | ||
531 | .Ic ia5org | ||
532 | option changes the type of the | ||
533 | .Ic organization | ||
534 | field. | ||
535 | In RFC 2459, it can only be of type | ||
536 | .Vt DisplayText . | ||
537 | In RFC 3280, | ||
538 | .Vt IA5String | ||
539 | is also permissible. | ||
540 | Some software (for example some versions of MSIE) may require | ||
541 | .Ic ia5org . | ||
542 | .Ss Policy constraints | ||
543 | This is a multi-valued extension which consists of the names | ||
544 | .Ic requireExplicitPolicy | ||
545 | or | ||
546 | .Ic inhibitPolicyMapping | ||
547 | and a non-negative integer value. | ||
548 | At least one component must be present. | ||
549 | Example: | ||
550 | .Pp | ||
551 | .Dl policyConstraints = requireExplicitPolicy:3 | ||
552 | .Ss Inhibit any policy | ||
553 | This is a string extension whose value must be a non-negative integer. | ||
554 | Example: | ||
555 | .Pp | ||
556 | .Dl inhibitAnyPolicy = 2 | ||
557 | .Ss Name constraints | ||
558 | The name constraints extension is a multi-valued extension. | ||
559 | The name should begin with the word | ||
560 | .Cm permitted | ||
561 | or | ||
562 | .Cm excluded , | ||
563 | followed by a semicolon. | ||
564 | The rest of the name and the value follows the syntax of subjectAltName | ||
565 | except | ||
566 | .Ic email : Ns Cm copy | ||
567 | is not supported and the | ||
568 | .Ic IP | ||
569 | form should consist of an IP addresses and subnet mask separated | ||
570 | by a slash. | ||
571 | Examples: | ||
572 | .Bd -literal -offset indent | ||
573 | nameConstraints=permitted;IP:192.168.0.0/255.255.0.0 | ||
574 | nameConstraints=permitted;email:.somedomain.com | ||
575 | nameConstraints=excluded;email:.com | ||
576 | .Ed | ||
577 | .Ss OCSP no check | ||
578 | The OCSP no check extension is a string extension, | ||
579 | but its value is ignored. | ||
580 | Example: | ||
581 | .Pp | ||
582 | .Dl noCheck = ignored | ||
583 | .Ss TLS Feature (aka must staple) | ||
584 | This is a multi-valued extension consisting of a list of TLS extension | ||
585 | identifiers. | ||
586 | Each identifier may be a number in the range from 0 to 65535 or a | ||
587 | supported name. | ||
588 | When a TLS client sends a listed extension, the TLS server is expected | ||
589 | to include that extension in its reply. | ||
590 | .Pp | ||
591 | The supported names are: | ||
592 | .Cm status_request | ||
593 | and | ||
594 | .Cm status_request_v2 . | ||
595 | Example: | ||
596 | .Pp | ||
597 | .Dl tlsfeature = status_request | ||
598 | .Sh DEPRECATED EXTENSIONS | ||
599 | The following extensions are non-standard, Netscape specific and largely | ||
600 | obsolete. | ||
601 | Their use in new applications is discouraged. | ||
602 | .Ss Netscape string extensions | ||
603 | Netscape comment | ||
604 | .Ic ( nsComment ) | ||
605 | is a string extension containing a comment which will be displayed when | ||
606 | the certificate is viewed in some browsers. | ||
607 | Example: | ||
608 | .Pp | ||
609 | .Dl nsComment = "Some Random Comment" | ||
610 | .Pp | ||
611 | Other supported extensions in this category are: | ||
612 | .Ic nsBaseUrl , | ||
613 | .Ic nsRevocationUrl , | ||
614 | .Ic nsCaRevocationUrl , | ||
615 | .Ic nsRenewalUrl , | ||
616 | .Ic nsCaPolicyUrl , | ||
617 | and | ||
618 | .Ic nsSslServerName . | ||
619 | .Ss Netscape certificate type | ||
620 | This is a multi-valued extensions which consists of a list of flags to | ||
621 | be included. | ||
622 | It was used to indicate the purposes for which a certificate could be | ||
623 | used. | ||
624 | The | ||
625 | .Ic basicConstraints , | ||
626 | .Ic keyUsage , | ||
627 | and extended key usage extensions are now used instead. | ||
628 | .Pp | ||
629 | Acceptable values for | ||
630 | .Ic nsCertType | ||
631 | are: | ||
632 | .Cm client , | ||
633 | .Cm server , | ||
634 | .Cm email , | ||
635 | .Cm objsign , | ||
636 | .Cm reserved , | ||
637 | .Cm sslCA , | ||
638 | .Cm emailCA , | ||
639 | .Cm objCA . | ||
640 | .Sh ARBITRARY EXTENSIONS | ||
641 | If an extension is not supported by the OpenSSL code, then it must | ||
642 | be encoded using the arbitrary extension format. | ||
643 | It is also possible to use the arbitrary format for supported | ||
644 | extensions. | ||
645 | Extreme care should be taken to ensure that the data is formatted | ||
646 | correctly for the given extension type. | ||
647 | .Pp | ||
648 | There are two ways to encode arbitrary extensions. | ||
649 | .Pp | ||
650 | The first way is to use the word | ||
651 | .Cm ASN1 | ||
652 | followed by the extension content using the same syntax as | ||
653 | .Xr ASN1_generate_nconf 3 . | ||
654 | For example: | ||
655 | .Bd -literal -offset indent | ||
656 | 1.2.3.4=critical,ASN1:UTF8String:Some random data | ||
657 | 1.2.3.4=ASN1:SEQUENCE:seq_sect | ||
658 | |||
659 | [seq_sect] | ||
660 | field1 = UTF8:field1 | ||
661 | field2 = UTF8:field2 | ||
662 | .Ed | ||
663 | .Pp | ||
664 | It is also possible to use the word | ||
665 | .Cm DER | ||
666 | to include the raw encoded data in any extension. | ||
667 | .Bd -literal -offset indent | ||
668 | 1.2.3.4=critical,DER:01:02:03:04 | ||
669 | 1.2.3.4=DER:01020304 | ||
670 | .Ed | ||
671 | .Pp | ||
672 | The value following | ||
673 | .Cm DER | ||
674 | is a hex dump of the DER encoding of the extension. | ||
675 | Any extension can be placed in this form to override the default behaviour. | ||
676 | For example: | ||
677 | .Pp | ||
678 | .Dl basicConstraints=critical,DER:00:01:02:03 | ||
679 | .Sh FILES | ||
680 | .Bl -tag -width /etc/ssl/x509v3.cnf -compact | ||
681 | .It Pa /etc/ssl/x509v3.cnf | ||
682 | standard configuration file | ||
683 | .El | ||
684 | .Sh SEE ALSO | ||
685 | .Xr openssl 1 , | ||
686 | .Xr ASN1_generate_nconf 3 , | ||
687 | .Xr OPENSSL_config 3 , | ||
688 | .Xr openssl.cnf 5 | ||
689 | .Sh HISTORY | ||
690 | X509v3 extension code was first added to OpenSSL 0.9.2. | ||
691 | .Sh CAVEATS | ||
692 | There is no guarantee that a specific implementation will process a | ||
693 | given extension. | ||
694 | It may therefore sometimes be possible to use certificates for purposes | ||
695 | prohibited by their extensions because a specific application does not | ||
696 | recognize or honour the values of the relevant extensions. | ||
697 | .Pp | ||
698 | The | ||
699 | .Cm DER | ||
700 | and | ||
701 | .Cm ASN1 | ||
702 | options should be used with caution. | ||
703 | It is possible to create totally invalid extensions if they are not used | ||
704 | carefully. | ||
705 | .Pp | ||
706 | If an extension is multi-value and a field value must contain a comma, | ||
707 | the long form must be used. | ||
708 | Otherwise the comma would be misinterpreted as a field separator. | ||
709 | For example, | ||
710 | .Pp | ||
711 | .Dl subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar | ||
712 | .Pp | ||
713 | will produce an error, but the following form is valid: | ||
714 | .Bd -literal -offset indent | ||
715 | subjectAltName=@subject_alt_section | ||
716 | |||
717 | [subject_alt_section] | ||
718 | subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar | ||
719 | .Ed | ||
720 | .Pp | ||
721 | Due to the behaviour of the OpenSSL CONF library, the same field | ||
722 | name can only occur once in a section. | ||
723 | That means that | ||
724 | .Bd -literal -offset indent | ||
725 | subjectAltName=@alt_section | ||
726 | |||
727 | [alt_section] | ||
728 | email=steve@here | ||
729 | email=steve@there | ||
730 | .Ed | ||
731 | .Pp | ||
732 | will only use the last value. | ||
733 | This can be worked around by using the form: | ||
734 | .Bd -literal -offset indent | ||
735 | [alt_section] | ||
736 | email.1=steve@here | ||
737 | email.2=steve@there | ||
738 | .Ed | ||