Sortix nightly manual
This manual documents Sortix nightly, a development build that has not been officially released. You can instead view this document in the latest official manual.
NAME
x509v3.cnf — X.509 V3 certificate extension configuration formatDESCRIPTION
Several of the OpenSSL utilities can add extensions to a certificate or certificate request based on the contents of a configuration file. The file format is based on the openssl.cnf(5) format.extension_name=[critical,] extension_options
nsComment="This is a Comment"
basicConstraints=critical,CA:true,pathlen:1
basicConstraints=critical,@bs_section [bs_section] CA=true pathlen=1
STANDARD EXTENSIONS
The following sections describe each supported extension in detail.Basic constraints
This is a multi-valued extension which indicates whether a certificate is a CA certificate. The first (mandatory) name is CA followed by TRUE or FALSE. If CA is TRUE, then an optional pathlen name followed by a non-negative value can be included. For example:basicConstraints=CA:TRUE basicConstraints=CA:FALSE basicConstraints=critical,CA:TRUE, pathlen:0
Key usage
Key usage is a multi-valued extension consisting of a list of names of the permitted key usages.keyUsage=digitalSignature, nonRepudiation keyUsage=critical, keyCertSign
Extended key usage
This extension consists of a list of purposes for which the certificate public key can be used.value | meaning |
serverAuth | TLS server authentication |
clientAuth | TLS client authentication |
codeSigning | code signing |
emailProtection | E-mail protection (S/MIME) |
timeStamping | trusted timestamping |
OCSPSigning | OCSP signing |
ipsecIKE | IPsec internet key exchange |
msCodeInd | Microsoft individual code signing (authenticode) |
msCodeCom | Microsoft commercial code signing (authenticode) |
msCTLSign | Microsoft trust list signing |
msEFS | Microsoft encrypted file system |
extendedKeyUsage=critical,codeSigning,1.2.3.4 extendedKeyUsage=serverAuth,clientAuth
Subject key identifier
This is really a string extension and can take two possible values. Either the word hash which will automatically follow the guidelines in RFC 3280 or a hex string giving the extension value to include. The use of the hex string is strongly discouraged. Example:subjectKeyIdentifier=hash
Authority key identifier
The authority key identifier extension permits two options, keyid and issuer: both can take the optional value always.authorityKeyIdentifier=keyid,issuer
Subject alternative name
The subject alternative name extension allows various literal values to be included in the configuration file. These include email (an email address), URI (a uniform resource indicator), DNS (a DNS domain name), RID (a registered ID: OBJECT IDENTIFIER), IP (an IP address), dirName (a distinguished name), and otherName.+
’ character.subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/ subjectAltName=IP:192.168.7.1 subjectAltName=IP:13::17 subjectAltName=email:my@other.address,RID:1.2.3.4 subjectAltName=otherName:1.2.3.4;UTF8:some other identifier subjectAltName=dirName:dir_sect [dir_sect] C=UK O=My Organization OU=My Unit CN=My Name
Issuer alternative name
The issuer alternative name option supports all the literal options of subject alternative name. It does not support the email:copy option because that would not make sense. It does support an additional issuer:copy option that will copy all the subject alternative name values from the issuer certificate (if possible). Example:issuerAltName = issuer:copy
Authority info access
The authority information access extension gives details about how to access certain information relating to the CA. Its syntax is accessOID; location where location has the same syntax as subject alternative name (except that email:copy is not supported). accessOID can be any valid OID but only certain values are meaningful, for example OCSP and caIssuers. Example:authorityInfoAccess = OCSP;URI:http://ocsp.my.host/ authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html
CRL distribution points
This is a multi-valued extension whose options can be either in name:value pair form using the same form as subject alternative name or a single value representing a section name containing all the distribution point fields.crlDistributionPoints=URI:http://myhost.com/myca.crl crlDistributionPoints=URI:http://my.com/my.crl,URI:http://oth.com/my.crl
crlDistributionPoints=crldp1_section [crldp1_section] fullname=URI:http://myhost.com/myca.crl CRLissuer=dirName:issuer_sect reasons=keyCompromise, CACompromise [issuer_sect] C=UK O=Organisation CN=Some Name
Issuing distribution point
This extension should only appear in CRLs. It is a multi-valued extension whose syntax is similar to the "section" pointed to by the CRL distribution points extension with a few differences.issuingDistributionPoint=critical, @idp_section [idp_section] fullname=URI:http://myhost.com/myca.crl indirectCRL=TRUE onlysomereasons=keyCompromise, CACompromise [issuer_sect] C=UK O=Organisation CN=Some Name
Certificate policies
This is a raw extension. All the fields of this extension can be set by using the appropriate syntax.certificatePolicies= 1.2.4.5, 1.1.3.4
CPS.nnn=value
userNotice.nnn=@notice
certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect [polsect] policyIdentifier = 1.3.5.8 CPS.1="http://my.host.name/" CPS.2="http://my.your.name/" userNotice.1=@notice [notice] explicitText="Explicit Text Here" organization="Organisation Name" noticeNumbers=1,2,3,4
Policy constraints
This is a multi-valued extension which consists of the names requireExplicitPolicy or inhibitPolicyMapping and a non-negative integer value. At least one component must be present. Example:policyConstraints = requireExplicitPolicy:3
Inhibit any policy
This is a string extension whose value must be a non-negative integer. Example:inhibitAnyPolicy = 2
Name constraints
The name constraints extension is a multi-valued extension. The name should begin with the word permitted or excluded, followed by a semicolon. The rest of the name and the value follows the syntax of subjectAltName except email:copy is not supported and the IP form should consist of an IP addresses and subnet mask separated by a slash. Examples:nameConstraints=permitted;IP:192.168.0.0/255.255.0.0 nameConstraints=permitted;email:.somedomain.com nameConstraints=excluded;email:.com
OCSP no check
The OCSP no check extension is a string extension, but its value is ignored. Example:noCheck = ignored
TLS Feature (aka must staple)
This is a multi-valued extension consisting of a list of TLS extension identifiers. Each identifier may be a number in the range from 0 to 65535 or a supported name. When a TLS client sends a listed extension, the TLS server is expected to include that extension in its reply.tlsfeature = status_request
DEPRECATED EXTENSIONS
The following extensions are non-standard, Netscape specific and largely obsolete. Their use in new applications is discouraged.Netscape string extensions
Netscape comment (nsComment) is a string extension containing a comment which will be displayed when the certificate is viewed in some browsers. Example:nsComment = Some Random Comment
Netscape certificate type
This is a multi-valued extensions which consists of a list of flags to be included. It was used to indicate the purposes for which a certificate could be used. The basicConstraints, keyUsage, and extended key usage extensions are now used instead.ARBITRARY EXTENSIONS
If an extension is not supported by the OpenSSL code, then it must be encoded using the arbitrary extension format. It is also possible to use the arbitrary format for supported extensions. Extreme care should be taken to ensure that the data is formatted correctly for the given extension type.1.2.3.4=critical,ASN1:UTF8String:Some random data 1.2.3.4=ASN1:SEQUENCE:seq_sect [seq_sect] field1 = UTF8:field1 field2 = UTF8:field2
1.2.3.4=critical,DER:01:02:03:04 1.2.3.4=DER:01020304
basicConstraints=critical,DER:00:01:02:03
FILES
- /etc/ssl/x509v3.cnf
- standard configuration file
HISTORY
X509v3 extension code was first added to OpenSSL 0.9.2.CAVEATS
There is no guarantee that a specific implementation will process a given extension. It may therefore sometimes be possible to use certificates for purposes prohibited by their extensions because a specific application does not recognize or honour the values of the relevant extensions.subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar
subjectAltName=@subject_alt_section [subject_alt_section] subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar
subjectAltName=@alt_section [alt_section] email=steve@here email=steve@there
[alt_section] email.1=steve@here email.2=steve@there