| # | 
 | # OpenSSL example configuration file. | 
 | # This is mostly being used for generation of certificate requests. | 
 | # | 
 |  | 
 | RANDFILE		= $ENV::HOME/.rnd | 
 | oid_file		= $ENV::HOME/.oid | 
 | oid_section		= new_oids | 
 |  | 
 | [ new_oids ] | 
 |  | 
 | # We can add new OIDs in here for use by 'ca' and 'req'. | 
 | # Add a simple OID like this: | 
 | # testoid1=1.2.3.4 | 
 | # Or use config file substitution like this: | 
 | # testoid2=${testoid1}.5.6 | 
 |  | 
 | #################################################################### | 
 | [ ca ] | 
 | default_ca	= CA_default		# The default ca section | 
 |  | 
 | #################################################################### | 
 | [ CA_default ] | 
 |  | 
 | dir		= ./demoCA		# Where everything is kept | 
 | certs		= $dir/certs		# Where the issued certs are kept | 
 | crl_dir		= $dir/crl		# Where the issued crl are kept | 
 | database	= $dir/index.txt	# database index file. | 
 | new_certs_dir	= $dir/newcerts		# default place for new certs. | 
 |  | 
 | certificate	= $dir/cacert.pem 	# The CA certificate | 
 | serial		= $dir/serial 		# The current serial number | 
 | crl		= $dir/crl.pem 		# The current CRL | 
 | private_key	= $dir/private/cakey.pem# The private key | 
 | RANDFILE	= $dir/private/.rand	# private random number file | 
 |  | 
 | x509_extensions	= usr_cert		# The extentions to add to the cert | 
 | crl_extensions	= crl_ext		# Extensions to add to CRL | 
 | default_days	= 365			# how long to certify for | 
 | default_crl_days= 30			# how long before next CRL | 
 | default_md	= md5			# which md to use. | 
 | preserve	= no			# keep passed DN ordering | 
 |  | 
 | # A few difference way of specifying how similar the request should look | 
 | # For type CA, the listed attributes must be the same, and the optional | 
 | # and supplied fields are just that :-) | 
 | policy		= policy_match | 
 |  | 
 | # For the CA policy | 
 | [ policy_match ] | 
 | countryName		= match | 
 | stateOrProvinceName	= match | 
 | organizationName	= match | 
 | organizationalUnitName	= optional | 
 | commonName		= supplied | 
 | emailAddress		= optional | 
 |  | 
 | # For the 'anything' policy | 
 | # At this point in time, you must list all acceptable 'object' | 
 | # types. | 
 | [ policy_anything ] | 
 | countryName		= optional | 
 | stateOrProvinceName	= optional | 
 | localityName		= optional | 
 | organizationName	= optional | 
 | organizationalUnitName	= optional | 
 | commonName		= supplied | 
 | emailAddress		= optional | 
 |  | 
 | #################################################################### | 
 | [ req ] | 
 | default_bits		= 1024 | 
 | default_keyfile 	= privkey.pem | 
 | distinguished_name	= req_distinguished_name | 
 | attributes		= req_attributes | 
 | x509_extensions	= v3_ca	# The extentions to add to the self signed cert | 
 |  | 
 | [ req_distinguished_name ] | 
 | countryName			= Country Name (2 letter code) | 
 | countryName_default		= AU | 
 | countryName_min			= 2 | 
 | countryName_max			= 2 | 
 |  | 
 | stateOrProvinceName		= State or Province Name (full name) | 
 | stateOrProvinceName_default	= Some-State | 
 |  | 
 | localityName			= Locality Name (eg, city) | 
 |  | 
 | 0.organizationName		= Organization Name (eg, company) | 
 | 0.organizationName_default	= Internet Widgits Pty Ltd | 
 |  | 
 | # we can do this but it is not needed normally :-) | 
 | #1.organizationName		= Second Organization Name (eg, company) | 
 | #1.organizationName_default	= World Wide Web Pty Ltd | 
 |  | 
 | organizationalUnitName		= Organizational Unit Name (eg, section) | 
 | #organizationalUnitName_default	= | 
 |  | 
 | commonName			= Common Name (eg, YOUR name) | 
 | commonName_max			= 64 | 
 |  | 
 | emailAddress			= Email Address | 
 | emailAddress_max		= 40 | 
 |  | 
 | # SET-ex3			= SET extension number 3 | 
 |  | 
 | [ req_attributes ] | 
 | challengePassword		= A challenge password | 
 | challengePassword_min		= 4 | 
 | challengePassword_max		= 20 | 
 |  | 
 | unstructuredName		= An optional company name | 
 |  | 
 | [ usr_cert ] | 
 |  | 
 | # These extensions are added when 'ca' signs a request. | 
 |  | 
 | # This goes against PKIX guidelines but some CAs do it and some software | 
 | # requires this to avoid interpreting an end user certificate as a CA. | 
 |  | 
 | basicConstraints=CA:FALSE | 
 |  | 
 | # Here are some examples of the usage of nsCertType. If it is omitted | 
 | # the certificate can be used for anything *except* object signing. | 
 |  | 
 | # This is OK for an SSL server. | 
 | #nsCertType			= server | 
 |  | 
 | # For an object signing certificate this would be used. | 
 | #nsCertType = objsign | 
 |  | 
 | # For normal client use this is typical | 
 | #nsCertType = client, email | 
 |  | 
 | # This is typical also | 
 |  | 
 | keyUsage = nonRepudiation, digitalSignature, keyEncipherment | 
 |  | 
 | nsComment			= "OpenSSL Generated Certificate" | 
 |  | 
 | # PKIX recommendations | 
 | subjectKeyIdentifier=hash | 
 | authorityKeyIdentifier=keyid,issuer:always | 
 |  | 
 | # Import the email address. | 
 |  | 
 | subjectAltName=email:copy | 
 |  | 
 | # Copy subject details | 
 |  | 
 | issuerAltName=issuer:copy | 
 |  | 
 | #nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem | 
 | #nsBaseUrl | 
 | #nsRevocationUrl | 
 | #nsRenewalUrl | 
 | #nsCaPolicyUrl | 
 | #nsSslServerName | 
 |  | 
 | [ v3_ca] | 
 |  | 
 | # Extensions for a typical CA | 
 |  | 
 | # It's a CA certificate | 
 | basicConstraints = CA:true | 
 |  | 
 | # PKIX recommendation. | 
 |  | 
 | subjectKeyIdentifier=hash | 
 |  | 
 | authorityKeyIdentifier=keyid:always,issuer:always | 
 |  | 
 | # This is what PKIX recommends but some broken software chokes on critical | 
 | # extensions. | 
 | #basicConstraints = critical,CA:true | 
 |  | 
 | # Key usage: again this should really be critical. | 
 | keyUsage = cRLSign, keyCertSign | 
 |  | 
 | # Some might want this also | 
 | #nsCertType = sslCA, emailCA | 
 |  | 
 | # Include email address in subject alt name: another PKIX recommendation | 
 | subjectAltName=email:copy | 
 | # Copy issuer details | 
 | issuerAltName=issuer:copy | 
 |  | 
 | # RAW DER hex encoding of an extension: beware experts only! | 
 | # 1.2.3.5=RAW:02:03 | 
 | # You can even override a supported extension: | 
 | # basicConstraints= critical, RAW:30:03:01:01:FF | 
 |  | 
 | [ crl_ext ] | 
 |  | 
 | # CRL extensions. | 
 | # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. | 
 |  | 
 | issuerAltName=issuer:copy | 
 | authorityKeyIdentifier=keyid:always,issuer:always |