Я выполняю те же шаги, что и этот ответ создать локальный центр сертификации.
Несмотря на установку default_days
значение 1825 (дней) в моем файле конфигурации, для результирующего сертификата CA всегда устанавливается срок действия 30 дней после создания.
Я подтверждаю это, просматривая полученный файл PEM с помощью
openssl x509 -in ./cacert.pem -text -noout
Вот файл конфигурации, который я использую для создания сертификата CA:
HOME = .
RANDFILE = $ENV::HOME/.rnd
####################################################################
[ ca ]
default_ca = CA_default # The default ca section
[ CA_default ]
default_days = 1825 # how long to certify for
default_crl_days = 30 # how long before next CRL
default_md = sha256 # use public key default MD
preserve = no # keep passed DN ordering
x509_extensions = ca_extensions # The extensions to add to the cert
email_in_dn = no # Don't concat the email in the DN
copy_extensions = copy # Required to copy SANs from CSR to cert
base_dir = ./CA
certificate = $base_dir/cacert.pem # The CA certifcate
private_key = $base_dir/private/cakey.pem # The CA private key
new_certs_dir = $base_dir/newcerts # Location for new certs after signing
database = $base_dir/index.txt # Database index file
serial = $base_dir/serial # The current serial number
unique_subject = no # Set to 'no' to allow creation of
# several certificates with same subject.
####################################################################
[ req ]
default_bits = 4096
default_keyfile = cakey.pem
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions
string_mask = utf8only
####################################################################
[ ca_distinguished_name ]
countryName = Country Name (2 letter code)
countryName_default = US
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = CA
localityName = Locality Name (eg, city)
localityName_default = Bakersfield
organizationName = Organization Name (eg, company)
organizationName_default = Some Company
organizationalUnitName = Organizational Unit (eg, division)
organizationalUnitName_default = Some Org Unit
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = some-local-CA
emailAddress = Email Address
emailAddress_default = netadmin@domain.com
####################################################################
[ ca_extensions ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always, issuer
basicConstraints = critical, CA:true
keyUsage = keyCertSign, cRLSign
####################################################################
[ signing_policy ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
####################################################################
[ signing_req ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
Затем я создаю локальный CA с помощью этой команды (в том же каталоге):
openssl req -x509 -config ./openssl-ca.cnf -newkey rsa:4096 -sha256 -nodes -out cacert.pem -outform PEM
Я попытался установить default_crl_days
вариант на что-то другое, кроме 30, и это, похоже, не имело никакого эффекта.
Как мне указать дату истечения срока (или количество дней до истечения срока) для моего местного центра сертификации?
С настройкой, которая у меня есть для создания CA и CA-INT, я получаю следующее для моих дат действия:
Validity
Not Before: Jan 28 03:28:40 2018 GMT
Not After : Jan 23 03:28:40 2038 GMT
Я пришел к выводу, что я мог заставить это работать, только передав его в openssl
напрямую через -days
переключатель.
Например:
openssl req -config $topDir/openssl.cnf \
-key $ca_key_file \
-new -x509 -days 7300 -sha256 -extensions v3_ca \
-out $ca_cert_file -passin pass:casecret \
-subj "/C=US/ST=NC/L=Raleigh/O=APPS Security/OU=APPS/CN=APPS CA"
Если вы следуете связанному вопросу / ответу, плакат использует openssl req
для создания сертификата. Без конкретного -days
параметр в командной строке, команда по умолчанию 30 дней:
-дней п
Когда используется параметр -x509, он указывает количество дней для сертификации сертификата, в противном случае он игнорируется. n должно быть положительным целым числом. По умолчанию 30 дней.
То же самое и с x509
команда:
-days arg
Задает количество дней, в течение которых сертификат должен действовать. По умолчанию 30 дней.
default_days
, default_startdate
и default_enddate
в файле параметров используются только с openssl ca
команда (не req
или x509
).