1# 2# OpenSSL example configuration file. 3# This is mostly being used for generation of certificate requests. 4# 5 6# This definition stops the following lines choking if HOME isn't 7# defined. 8HOME = . 9RANDFILE = $ENV::HOME/.rnd 10 11# Extra OBJECT IDENTIFIER info: 12#oid_file = $ENV::HOME/.oid 13oid_section = new_oids 14 15# To use this configuration file with the "-extfile" option of the 16# "openssl x509" utility, name here the section containing the 17# X.509v3 extensions to use: 18# extensions = 19# (Alternatively, use a configuration file that has only 20# X.509v3 extensions in its main [= default] section.) 21 22[ new_oids ] 23 24# We can add new OIDs in here for use by 'ca' and 'req'. 25# Add a simple OID like this: 26# testoid1=1.2.3.4 27# Or use config file substitution like this: 28# testoid2=${testoid1}.5.6 29 30#################################################################### 31[ ca ] 32default_ca = CA_default # The default ca section 33 34#################################################################### 35[ CA_default ] 36 37dir = ./demoCA # Where everything is kept 38certs = $dir/certs # Where the issued certs are kept 39crl_dir = $dir/crl # Where the issued crl are kept 40database = $dir/index.txt # database index file. 41new_certs_dir = $dir/newcerts # default place for new certs. 42 43certificate = $dir/cacert.pem # The CA certificate 44serial = $dir/serial # The current serial number 45crl = $dir/crl.pem # The current CRL 46private_key = $dir/private/cakey.pem# The private key 47RANDFILE = $dir/private/.rand # private random number file 48 49x509_extensions = usr_cert # The extentions to add to the cert 50 51# Comment out the following two lines for the "traditional" 52# (and highly broken) format. 53name_opt = ca_default # Subject Name options 54cert_opt = ca_default # Certificate field options 55 56# Extension copying option: use with caution. 57# copy_extensions = copy 58 59# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs 60# so this is commented out by default to leave a V1 CRL. 61# crl_extensions = crl_ext 62 63default_days = 365 # how long to certify for 64default_crl_days= 30 # how long before next CRL 65default_md = md5 # which md to use. 66preserve = no # keep passed DN ordering 67 68# A few difference way of specifying how similar the request should look 69# For type CA, the listed attributes must be the same, and the optional 70# and supplied fields are just that :-) 71policy = policy_match 72 73# For the CA policy 74[ policy_match ] 75countryName = match 76stateOrProvinceName = match 77organizationName = match 78organizationalUnitName = optional 79commonName = supplied 80emailAddress = optional 81 82# For the 'anything' policy 83# At this point in time, you must list all acceptable 'object' 84# types. 85[ policy_anything ] 86countryName = optional 87stateOrProvinceName = optional 88localityName = optional 89organizationName = optional 90organizationalUnitName = optional 91commonName = supplied 92emailAddress = optional 93 94#################################################################### 95[ req ] 96default_bits = 1024 97default_keyfile = privkey.pem 98distinguished_name = req_distinguished_name 99attributes = req_attributes 100x509_extensions = v3_ca # The extentions to add to the self signed cert 101 102# Passwords for private keys if not present they will be prompted for 103# input_password = secret 104# output_password = secret 105 106# This sets a mask for permitted string types. There are several options. 107# default: PrintableString, T61String, BMPString. 108# pkix : PrintableString, BMPString. 109# utf8only: only UTF8Strings. 110# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). 111# MASK:XXXX a literal mask value. 112# WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings 113# so use this option with caution! 114string_mask = nombstr 115 116# req_extensions = v3_req # The extensions to add to a certificate request 117 118[ req_distinguished_name ] 119countryName = Country Name (2 letter code) 120countryName_default = AU 121countryName_min = 2 122countryName_max = 2 123 124stateOrProvinceName = State or Province Name (full name) 125stateOrProvinceName_default = Some-State 126 127localityName = Locality Name (eg, city) 128 1290.organizationName = Organization Name (eg, company) 1300.organizationName_default = Internet Widgits Pty Ltd 131 132# we can do this but it is not needed normally :-) 133#1.organizationName = Second Organization Name (eg, company) 134#1.organizationName_default = World Wide Web Pty Ltd 135 136organizationalUnitName = Organizational Unit Name (eg, section) 137#organizationalUnitName_default = 138 139commonName = Common Name (eg, YOUR name) 140commonName_max = 64 141 142emailAddress = Email Address 143emailAddress_max = 64 144 145# SET-ex3 = SET extension number 3 146 147[ req_attributes ] 148challengePassword = A challenge password 149challengePassword_min = 4 150challengePassword_max = 20 151 152unstructuredName = An optional company name 153 154[ usr_cert ] 155 156# These extensions are added when 'ca' signs a request. 157 158# This goes against PKIX guidelines but some CAs do it and some software 159# requires this to avoid interpreting an end user certificate as a CA. 160 161basicConstraints=CA:FALSE 162 163# Here are some examples of the usage of nsCertType. If it is omitted 164# the certificate can be used for anything *except* object signing. 165 166# This is OK for an SSL server. 167# nsCertType = server 168 169# For an object signing certificate this would be used. 170# nsCertType = objsign 171 172# For normal client use this is typical 173# nsCertType = client, email 174 175# and for everything including object signing: 176# nsCertType = client, email, objsign 177 178# This is typical in keyUsage for a client certificate. 179# keyUsage = nonRepudiation, digitalSignature, keyEncipherment 180 181# This will be displayed in Netscape's comment listbox. 182nsComment = "OpenSSL Generated Certificate" 183 184# PKIX recommendations harmless if included in all certificates. 185subjectKeyIdentifier=hash 186authorityKeyIdentifier=keyid,issuer:always 187 188# This stuff is for subjectAltName and issuerAltname. 189# Import the email address. 190# subjectAltName=email:copy 191# An alternative to produce certificates that aren't 192# deprecated according to PKIX. 193# subjectAltName=email:move 194 195# Copy subject details 196# issuerAltName=issuer:copy 197 198#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem 199#nsBaseUrl 200#nsRevocationUrl 201#nsRenewalUrl 202#nsCaPolicyUrl 203#nsSslServerName 204 205[ v3_req ] 206 207# Extensions to add to a certificate request 208 209basicConstraints = CA:FALSE 210keyUsage = nonRepudiation, digitalSignature, keyEncipherment 211 212[ v3_ca ] 213 214 215# Extensions for a typical CA 216 217 218# PKIX recommendation. 219 220subjectKeyIdentifier=hash 221 222authorityKeyIdentifier=keyid:always,issuer:always 223 224# This is what PKIX recommends but some broken software chokes on critical 225# extensions. 226#basicConstraints = critical,CA:true 227# So we do this instead. 228basicConstraints = CA:true 229 230# Key usage: this is typical for a CA certificate. However since it will 231# prevent it being used as an test self-signed certificate it is best 232# left out by default. 233# keyUsage = cRLSign, keyCertSign 234 235# Some might want this also 236# nsCertType = sslCA, emailCA 237 238# Include email address in subject alt name: another PKIX recommendation 239# subjectAltName=email:copy 240# Copy issuer details 241# issuerAltName=issuer:copy 242 243# DER hex encoding of an extension: beware experts only! 244# obj=DER:02:03 245# Where 'obj' is a standard or added object 246# You can even override a supported extension: 247# basicConstraints= critical, DER:30:03:01:01:FF 248 249[ crl_ext ] 250 251# CRL extensions. 252# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. 253 254# issuerAltName=issuer:copy 255authorityKeyIdentifier=keyid:always,issuer:always 256