Last active
April 12, 2022 04:52
-
-
Save messa/82cf72cdd51e894c890c to your computer and use it in GitHub Desktop.
Sample OpenSSL configuration for local CA; see my CA guide: https://github.com/messa/tips/blob/master/OpenSSL.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ ca ] | |
default_ca = CA_default | |
[ CA_default ] | |
dir = /XXX/root-ca | |
certs = $dir/certs | |
crl_dir = $dir/crl | |
new_certs_dir = $dir/newcerts | |
database = $dir/index.txt | |
serial = $dir/serial | |
RANDFILE = $dir/private/.rand | |
# The root key and root certificate. | |
private_key = $dir/private/ca.key.pem | |
certificate = $dir/certs/ca.cert.pem | |
# For certificate revocation lists. | |
crlnumber = $dir/crlnumber | |
crl = $dir/crl/ca.crl.pem | |
crl_extensions = crl_ext | |
default_crl_days = 30 | |
default_md = sha256 | |
name_opt = ca_default | |
cert_opt = ca_default | |
default_days = 36500 | |
preserve = no | |
policy = policy_strict | |
[ policy_strict ] | |
# This policy will be used for root CA, which should only sign intermediate certificates that match. | |
countryName = match | |
stateOrProvinceName = match | |
organizationName = match | |
organizationalUnitName = optional | |
commonName = supplied | |
emailAddress = optional | |
[ policy_loose ] | |
# Allow the intermediate CA to sign a more diverse range of certificates. | |
# See the POLICY FORMAT section of the `ca` man page. | |
countryName = optional | |
stateOrProvinceName = optional | |
localityName = optional | |
organizationName = optional | |
organizationalUnitName = optional | |
commonName = supplied | |
emailAddress = optional | |
DC = optional | |
[ req ] | |
default_bits = 4096 | |
distinguished_name = req_distinguished_name | |
string_mask = utf8only | |
default_md = sha256 | |
# Extension to add when the -x509 option is used. | |
x509_extensions = v3_ca | |
[ req_distinguished_name ] | |
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>. | |
countryName = Country Name (2 letter code) | |
stateOrProvinceName = State or Province Name | |
localityName = Locality Name | |
0.organizationName = Organization Name | |
organizationalUnitName = Organizational Unit Name | |
0.DC = Domain Component | |
commonName = Common Name | |
emailAddress = Email Address | |
# The Domain Component (DC) is useful for distinguishing between cluster and | |
# client certificates in MongoDB SSL deployments. | |
# Optionally, specify some defaults. | |
countryName_default = GB | |
stateOrProvinceName_default = England | |
localityName_default = | |
0.organizationName_default = Alice Ltd | |
organizationalUnitName_default = | |
0.DC_default = | |
emailAddress_default = | |
[ v3_ca ] | |
# Extensions for a typical CA (man x509v3_config). | |
subjectKeyIdentifier = hash | |
authorityKeyIdentifier = keyid:always,issuer | |
basicConstraints = critical, CA:true | |
keyUsage = critical, digitalSignature, cRLSign, keyCertSign | |
[ v3_intermediate_ca ] | |
# Extensions for a typical intermediate CA (man x509v3_config). | |
subjectKeyIdentifier = hash | |
authorityKeyIdentifier = keyid:always,issuer | |
basicConstraints = critical, CA:true, pathlen:0 | |
keyUsage = critical, digitalSignature, cRLSign, keyCertSign | |
[ usr_cert ] | |
# Extensions for client certificates (man x509v3_config). | |
basicConstraints = CA:FALSE | |
nsCertType = client, email | |
nsComment = "OpenSSL Generated Client Certificate" | |
subjectKeyIdentifier = hash | |
authorityKeyIdentifier = keyid,issuer | |
keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment | |
extendedKeyUsage = clientAuth, emailProtection | |
[ server_cert ] | |
# Extensions for server certificates (man x509v3_config). | |
basicConstraints = CA:FALSE | |
nsCertType = server | |
nsComment = "OpenSSL Generated Server Certificate" | |
subjectKeyIdentifier = hash | |
authorityKeyIdentifier = keyid,issuer:always | |
keyUsage = critical, digitalSignature, keyEncipherment | |
extendedKeyUsage = serverAuth | |
[ crl_ext ] | |
# Extension for CRLs (`man x509v3_config`). | |
authorityKeyIdentifier = keyid:always | |
[ ocsp ] | |
# Extension for OCSP signing certificates (man ocsp). | |
basicConstraints = CA:FALSE | |
subjectKeyIdentifier = hash | |
authorityKeyIdentifier = keyid,issuer | |
keyUsage = critical, digitalSignature | |
extendedKeyUsage = critical, OCSPSigning |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment