github.com/codingeasygo/util@v0.0.0-20231206062002-1ce2f004b7d9/xcrypto/openssl.cnf (about)

     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.
     8  HOME			= .
     9  RANDFILE		= $ENV::HOME/.rnd
    10  
    11  # Extra OBJECT IDENTIFIER info:
    12  #oid_file		= $ENV::HOME/.oid
    13  oid_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 ]
    32  default_ca	= CA_default		# The default ca section
    33  
    34  ####################################################################
    35  [ CA_default ]
    36  
    37  dir		= ./demoCA		# Where everything is kept
    38  certs		= $dir/certs		# Where the issued certs are kept
    39  crl_dir		= $dir/crl		# Where the issued crl are kept
    40  database	= $dir/index.txt	# database index file.
    41  #unique_subject	= no			# Set to 'no' to allow creation of
    42  					# several ctificates with same subject.
    43  new_certs_dir	= $dir/newcerts		# default place for new certs.
    44  
    45  certificate	= $dir/cacert.pem 	# The CA certificate
    46  serial		= $dir/serial 		# The current serial number
    47  crlnumber	= $dir/crlnumber	# the current crl number
    48  					# must be commented out to leave a V1 CRL
    49  crl		= $dir/crl.pem 		# The current CRL
    50  private_key	= $dir/private/cakey.pem# The private key
    51  RANDFILE	= $dir/private/.rand	# private random number file
    52  
    53  x509_extensions	= usr_cert		# The extentions to add to the cert
    54  
    55  # Comment out the following two lines for the "traditional"
    56  # (and highly broken) format.
    57  name_opt 	= ca_default		# Subject Name options
    58  cert_opt 	= ca_default		# Certificate field options
    59  
    60  # Extension copying option: use with caution.
    61  copy_extensions = copy
    62  
    63  # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs
    64  # so this is commented out by default to leave a V1 CRL.
    65  # crlnumber must also be commented out to leave a V1 CRL.
    66  # crl_extensions	= crl_ext
    67  
    68  default_days	= 365			# how long to certify for
    69  default_crl_days= 30			# how long before next CRL
    70  default_md	= sha1			# which md to use.
    71  preserve	= no			# keep passed DN ordering
    72  
    73  # A few difference way of specifying how similar the request should look
    74  # For type CA, the listed attributes must be the same, and the optional
    75  # and supplied fields are just that :-)
    76  policy		= policy_match
    77  
    78  # For the CA policy
    79  [ policy_match ]
    80  countryName		= match
    81  stateOrProvinceName	= match
    82  organizationName	= match
    83  organizationalUnitName	= optional
    84  commonName		= supplied
    85  emailAddress		= optional
    86  
    87  # For the 'anything' policy
    88  # At this point in time, you must list all acceptable 'object'
    89  # types.
    90  [ policy_anything ]
    91  countryName		= optional
    92  stateOrProvinceName	= optional
    93  localityName		= optional
    94  organizationName	= optional
    95  organizationalUnitName	= optional
    96  commonName		= supplied
    97  emailAddress		= optional
    98  
    99  ####################################################################
   100  [ req ]
   101  default_bits		= 1024
   102  default_keyfile 	= privkey.pem
   103  distinguished_name	= req_distinguished_name
   104  attributes		= req_attributes
   105  x509_extensions	= v3_ca	# The extentions to add to the self signed cert
   106  
   107  # Passwords for private keys if not present they will be prompted for
   108  # input_password = secret
   109  # output_password = secret
   110  
   111  # This sets a mask for permitted string types. There are several options. 
   112  # default: PrintableString, T61String, BMPString.
   113  # pkix	 : PrintableString, BMPString.
   114  # utf8only: only UTF8Strings.
   115  # nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings).
   116  # MASK:XXXX a literal mask value.
   117  # WARNING: current versions of Netscape crash on BMPStrings or UTF8Strings
   118  # so use this option with caution!
   119  string_mask = nombstr
   120  
   121  req_extensions = v3_req # The extensions to add to a certificate request
   122  
   123  [ req_distinguished_name ]
   124  countryName			= Country Name (2 letter code)
   125  countryName_default		= AU
   126  countryName_min			= 2
   127  countryName_max			= 2
   128  
   129  stateOrProvinceName		= State or Province Name (full name)
   130  stateOrProvinceName_default	= Some-State
   131  
   132  localityName			= Locality Name (eg, city)
   133  
   134  0.organizationName		= Organization Name (eg, company)
   135  0.organizationName_default	= Internet Widgits Pty Ltd
   136  
   137  # we can do this but it is not needed normally :-)
   138  #1.organizationName		= Second Organization Name (eg, company)
   139  #1.organizationName_default	= World Wide Web Pty Ltd
   140  
   141  organizationalUnitName		= Organizational Unit Name (eg, section)
   142  #organizationalUnitName_default	=
   143  
   144  commonName			= Common Name (e.g. server FQDN or YOUR name)
   145  commonName_max			= 64
   146  
   147  emailAddress			= Email Address
   148  emailAddress_max		= 64
   149  
   150  # SET-ex3			= SET extension number 3
   151  
   152  [ req_attributes ]
   153  challengePassword		= A challenge password
   154  challengePassword_min		= 4
   155  challengePassword_max		= 20
   156  
   157  unstructuredName		= An optional company name
   158  
   159  [ usr_cert ]
   160  
   161  # These extensions are added when 'ca' signs a request.
   162  
   163  # This goes against PKIX guidelines but some CAs do it and some software
   164  # requires this to avoid interpreting an end user certificate as a CA.
   165  
   166  basicConstraints=CA:FALSE
   167  
   168  # Here are some examples of the usage of nsCertType. If it is omitted
   169  # the certificate can be used for anything *except* object signing.
   170  
   171  # This is OK for an SSL server.
   172  # nsCertType			= server
   173  
   174  # For an object signing certificate this would be used.
   175  # nsCertType = objsign
   176  
   177  # For normal client use this is typical
   178  # nsCertType = client, email
   179  
   180  # and for everything including object signing:
   181  # nsCertType = client, email, objsign
   182  
   183  # This is typical in keyUsage for a client certificate.
   184  # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
   185  
   186  # This will be displayed in Netscape's comment listbox.
   187  nsComment			= "OpenSSL Generated Certificate"
   188  
   189  # PKIX recommendations harmless if included in all certificates.
   190  subjectKeyIdentifier=hash
   191  authorityKeyIdentifier=keyid,issuer
   192  
   193  # This stuff is for subjectAltName and issuerAltname.
   194  # Import the email address.
   195  # subjectAltName=email:copy
   196  # An alternative to produce certificates that aren't
   197  # deprecated according to PKIX.
   198  # subjectAltName=email:move
   199  
   200  # Copy subject details
   201  # issuerAltName=issuer:copy
   202  
   203  #nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem
   204  #nsBaseUrl
   205  #nsRevocationUrl
   206  #nsRenewalUrl
   207  #nsCaPolicyUrl
   208  #nsSslServerName
   209  
   210  [ v3_req ]
   211  
   212  # Extensions to add to a certificate request
   213  
   214  basicConstraints = CA:FALSE
   215  keyUsage = nonRepudiation, digitalSignature, keyEncipherment
   216  subjectAltName = @alt_names
   217  
   218  [ v3_ca ]
   219  
   220  
   221  # Extensions for a typical CA
   222  subjectAltName = IP:127.0.0.1
   223  
   224  # PKIX recommendation.
   225  
   226  subjectKeyIdentifier=hash
   227  
   228  authorityKeyIdentifier=keyid:always,issuer:always
   229  
   230  # This is what PKIX recommends but some broken software chokes on critical
   231  # extensions.
   232  #basicConstraints = critical,CA:true
   233  # So we do this instead.
   234  basicConstraints = CA:true
   235  
   236  # Key usage: this is typical for a CA certificate. However since it will
   237  # prevent it being used as an test self-signed certificate it is best
   238  # left out by default.
   239  # keyUsage = cRLSign, keyCertSign
   240  
   241  # Some might want this also
   242  # nsCertType = sslCA, emailCA
   243  
   244  # Include email address in subject alt name: another PKIX recommendation
   245  # subjectAltName=email:copy
   246  # Copy issuer details
   247  # issuerAltName=issuer:copy
   248  
   249  # DER hex encoding of an extension: beware experts only!
   250  # obj=DER:02:03
   251  # Where 'obj' is a standard or added object
   252  # You can even override a supported extension:
   253  # basicConstraints= critical, DER:30:03:01:01:FF
   254  
   255  [ crl_ext ]
   256  
   257  # CRL extensions.
   258  # Only issuerAltName and authorityKeyIdentifier make any sense in a CRL.
   259  
   260  # issuerAltName=issuer:copy
   261  authorityKeyIdentifier=keyid:always,issuer:always
   262  
   263  [ proxy_cert_ext ]
   264  # These extensions should be added when creating a proxy certificate
   265  
   266  # This goes against PKIX guidelines but some CAs do it and some software
   267  # requires this to avoid interpreting an end user certificate as a CA.
   268  
   269  basicConstraints=CA:FALSE
   270  
   271  # Here are some examples of the usage of nsCertType. If it is omitted
   272  # the certificate can be used for anything *except* object signing.
   273  
   274  # This is OK for an SSL server.
   275  # nsCertType			= server
   276  
   277  # For an object signing certificate this would be used.
   278  # nsCertType = objsign
   279  
   280  # For normal client use this is typical
   281  # nsCertType = client, email
   282  
   283  # and for everything including object signing:
   284  # nsCertType = client, email, objsign
   285  
   286  # This is typical in keyUsage for a client certificate.
   287  # keyUsage = nonRepudiation, digitalSignature, keyEncipherment
   288  
   289  # This will be displayed in Netscape's comment listbox.
   290  nsComment			= "OpenSSL Generated Certificate"
   291  
   292  # PKIX recommendations harmless if included in all certificates.
   293  subjectKeyIdentifier=hash
   294  authorityKeyIdentifier=keyid,issuer:always
   295  
   296  # This stuff is for subjectAltName and issuerAltname.
   297  # Import the email address.
   298  # subjectAltName=email:copy
   299  # An alternative to produce certificates that aren't
   300  # deprecated according to PKIX.
   301  # subjectAltName=email:move
   302  
   303  # Copy subject details
   304  # issuerAltName=issuer:copy
   305  
   306  #nsCaRevocationUrl		= http://www.domain.dom/ca-crl.pem
   307  #nsBaseUrl
   308  #nsRevocationUrl
   309  #nsRenewalUrl
   310  #nsCaPolicyUrl
   311  #nsSslServerName
   312  
   313  # This really needs to be in place for it to be a proxy certificate.
   314  proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo
   315  
   316  [ alt_names ]
   317  DNS.1 = a.test.com
   318  IP.1 = 127.0.0.1