1*758e9fbaSOystein Eftevaag# 2*758e9fbaSOystein Eftevaag# OpenSSL configuration for the Root Certification Authority. 3*758e9fbaSOystein Eftevaag# 4*758e9fbaSOystein Eftevaag 5*758e9fbaSOystein Eftevaag# 6*758e9fbaSOystein Eftevaag# This definition doesn't work if HOME isn't defined. 7*758e9fbaSOystein EftevaagCA_HOME = . 8*758e9fbaSOystein EftevaagRANDFILE = $ENV::CA_HOME/private/.rnd 9*758e9fbaSOystein Eftevaag 10*758e9fbaSOystein Eftevaag# 11*758e9fbaSOystein Eftevaag# Default Certification Authority 12*758e9fbaSOystein Eftevaag[ ca ] 13*758e9fbaSOystein Eftevaagdefault_ca = root_ca 14*758e9fbaSOystein Eftevaag 15*758e9fbaSOystein Eftevaag# 16*758e9fbaSOystein Eftevaag# Root Certification Authority 17*758e9fbaSOystein Eftevaag[ root_ca ] 18*758e9fbaSOystein Eftevaagdir = $ENV::CA_HOME 19*758e9fbaSOystein Eftevaagcerts = $dir/certs 20*758e9fbaSOystein Eftevaagserial = $dir/root-ca.serial 21*758e9fbaSOystein Eftevaagdatabase = $dir/root-ca.index 22*758e9fbaSOystein Eftevaagnew_certs_dir = $dir/newcerts 23*758e9fbaSOystein Eftevaagcertificate = $dir/root-ca.cert.pem 24*758e9fbaSOystein Eftevaagprivate_key = $dir/private/root-ca.key.pem 25*758e9fbaSOystein Eftevaagdefault_days = 1826 # Five years 26*758e9fbaSOystein Eftevaagcrl = $dir/root-ca.crl 27*758e9fbaSOystein Eftevaagcrl_dir = $dir/crl 28*758e9fbaSOystein Eftevaagcrlnumber = $dir/root-ca.crlnum 29*758e9fbaSOystein Eftevaagname_opt = multiline, align 30*758e9fbaSOystein Eftevaagcert_opt = no_pubkey 31*758e9fbaSOystein Eftevaagcopy_extensions = copy 32*758e9fbaSOystein Eftevaagcrl_extensions = crl_ext 33*758e9fbaSOystein Eftevaagdefault_crl_days = 180 34*758e9fbaSOystein Eftevaagdefault_md = sha256 35*758e9fbaSOystein Eftevaagpreserve = no 36*758e9fbaSOystein Eftevaagemail_in_dn = no 37*758e9fbaSOystein Eftevaagpolicy = policy 38*758e9fbaSOystein Eftevaagunique_subject = no 39*758e9fbaSOystein Eftevaag 40*758e9fbaSOystein Eftevaag# 41*758e9fbaSOystein Eftevaag# Distinguished Name Policy for CAs 42*758e9fbaSOystein Eftevaag[ policy ] 43*758e9fbaSOystein EftevaagcountryName = optional 44*758e9fbaSOystein EftevaagstateOrProvinceName = optional 45*758e9fbaSOystein EftevaaglocalityName = optional 46*758e9fbaSOystein EftevaagorganizationName = supplied 47*758e9fbaSOystein EftevaagorganizationalUnitName = optional 48*758e9fbaSOystein EftevaagcommonName = supplied 49*758e9fbaSOystein Eftevaag 50*758e9fbaSOystein Eftevaag# 51*758e9fbaSOystein Eftevaag# Root CA Request Options 52*758e9fbaSOystein Eftevaag[ req ] 53*758e9fbaSOystein Eftevaagdefault_bits = 4096 54*758e9fbaSOystein Eftevaagdefault_keyfile = private/root-ca.key.pem 55*758e9fbaSOystein Eftevaagencrypt_key = yes 56*758e9fbaSOystein Eftevaagdefault_md = sha256 57*758e9fbaSOystein Eftevaagstring_mask = utf8only 58*758e9fbaSOystein Eftevaagutf8 = yes 59*758e9fbaSOystein Eftevaagprompt = no 60*758e9fbaSOystein Eftevaagreq_extensions = root-ca_req_ext 61*758e9fbaSOystein Eftevaagdistinguished_name = distinguished_name 62*758e9fbaSOystein EftevaagsubjectAltName = @subject_alt_name 63*758e9fbaSOystein Eftevaag 64*758e9fbaSOystein Eftevaag# 65*758e9fbaSOystein Eftevaag# Root CA Request Extensions 66*758e9fbaSOystein Eftevaag[ root-ca_req_ext ] 67*758e9fbaSOystein EftevaagsubjectKeyIdentifier = hash 68*758e9fbaSOystein EftevaagsubjectAltName = @subject_alt_name 69*758e9fbaSOystein Eftevaag 70*758e9fbaSOystein Eftevaag# 71*758e9fbaSOystein Eftevaag# Distinguished Name (DN) 72*758e9fbaSOystein Eftevaag[ distinguished_name ] 73*758e9fbaSOystein EftevaagorganizationName = example.net 74*758e9fbaSOystein EftevaagcommonName = example.net Root Certification Authority 75*758e9fbaSOystein Eftevaag 76*758e9fbaSOystein Eftevaag# 77*758e9fbaSOystein Eftevaag# Root CA Certificate Extensions 78*758e9fbaSOystein Eftevaag[ root-ca_ext ] 79*758e9fbaSOystein EftevaagbasicConstraints = critical, CA:true 80*758e9fbaSOystein EftevaagkeyUsage = critical, keyCertSign, cRLSign 81*758e9fbaSOystein EftevaagnameConstraints = critical, @name_constraints 82*758e9fbaSOystein EftevaagsubjectKeyIdentifier = hash 83*758e9fbaSOystein EftevaagsubjectAltName = @subject_alt_name 84*758e9fbaSOystein EftevaagauthorityKeyIdentifier = keyid:always 85*758e9fbaSOystein EftevaagissuerAltName = issuer:copy 86*758e9fbaSOystein EftevaagauthorityInfoAccess = @auth_info_access 87*758e9fbaSOystein EftevaagcrlDistributionPoints = crl_dist 88*758e9fbaSOystein Eftevaag 89*758e9fbaSOystein Eftevaag# 90*758e9fbaSOystein Eftevaag# Intermediate CA Certificate Extensions 91*758e9fbaSOystein Eftevaag[ intermed-ca_ext ] 92*758e9fbaSOystein EftevaagbasicConstraints = critical, CA:true, pathlen:0 93*758e9fbaSOystein EftevaagkeyUsage = critical, keyCertSign, cRLSign 94*758e9fbaSOystein EftevaagsubjectKeyIdentifier = hash 95*758e9fbaSOystein EftevaagsubjectAltName = @subject_alt_name 96*758e9fbaSOystein EftevaagauthorityKeyIdentifier = keyid:always 97*758e9fbaSOystein EftevaagissuerAltName = issuer:copy 98*758e9fbaSOystein EftevaagauthorityInfoAccess = @auth_info_access 99*758e9fbaSOystein EftevaagcrlDistributionPoints = crl_dist 100*758e9fbaSOystein Eftevaag 101*758e9fbaSOystein Eftevaag# 102*758e9fbaSOystein Eftevaag# CRL Certificate Extensions 103*758e9fbaSOystein Eftevaag[ crl_ext ] 104*758e9fbaSOystein EftevaagauthorityKeyIdentifier = keyid:always 105*758e9fbaSOystein EftevaagissuerAltName = issuer:copy 106*758e9fbaSOystein Eftevaag 107*758e9fbaSOystein Eftevaag# 108*758e9fbaSOystein Eftevaag# Certificate Authorities Alternative Names 109*758e9fbaSOystein Eftevaag[ subject_alt_name ] 110*758e9fbaSOystein EftevaagURI = http://ca.example.net/ 111*758e9fbaSOystein Eftevaagemail = [email protected] 112*758e9fbaSOystein Eftevaag 113*758e9fbaSOystein Eftevaag# 114*758e9fbaSOystein Eftevaag# Name Constraints 115*758e9fbaSOystein Eftevaag[ name_constraints ] 116*758e9fbaSOystein Eftevaagpermitted;DNS.1 = example.net 117*758e9fbaSOystein Eftevaagpermitted;DNS.2 = example.org 118*758e9fbaSOystein Eftevaagpermitted;DNS.3 = lan 119*758e9fbaSOystein Eftevaagpermitted;DNS.4 = onion 120*758e9fbaSOystein Eftevaagpermitted;email.1 = example.net 121*758e9fbaSOystein Eftevaagpermitted;email.2 = example.org 122*758e9fbaSOystein Eftevaag 123*758e9fbaSOystein Eftevaag# 124*758e9fbaSOystein Eftevaag# Certificate download addresses for the root CA 125*758e9fbaSOystein Eftevaag[ auth_info_access ] 126*758e9fbaSOystein EftevaagcaIssuers;URI = ROOTCRT 127*758e9fbaSOystein Eftevaag 128*758e9fbaSOystein Eftevaag# 129*758e9fbaSOystein Eftevaag# CRL Download address for the root CA 130*758e9fbaSOystein Eftevaag[ crl_dist ] 131*758e9fbaSOystein Eftevaagfullname = URI:ROOTCRL 132