Каталоги по умолчанию не работают в файле конфигурации OpenSSL

Вы можете использовать подстановку bash для сопоставления нескольких папок. Что-то вроде:

rm ./Folder/*/Log/*

Или, может быть, даже лучше:

rm ./Folder/Sub*/Log/*

Второй удалит все файлы внутри каталога Log внутри каталога, который начинается с Sub . При необходимости вы можете добавить -r (рекурсивный) или -f (принудительно) в свою команду rm .

Чтобы узнать больше о подстановке bash, вы можете увидеть другой из моих ответов: Можно ли указать путь, в котором имя каталога является переменным?

Хотя это напрямую отвечает на ваш вопрос, вы можете рассмотреть использование logrotate для управления старыми файлами журнала: http://www.linuxcommand.org/man_pages/logrotate8.html

0
30.05.2019, 13:14
1 ответ

Файлы, на которые указывает [ CA_defaults ], используются внутри команды openssl ca.

Если вы заглянете внутрь new_certs_dir, вы увидите все сертификаты, подписанные CA при использовании команды openssl ca, с именами файлов, состоящими из серийного номера сертификата с добавлением .pem.

Поскольку вы используете openssl req, эти файлы не используются.

На справочной странице команды reqсказано следующее:

-out filename

This specifies the output filename to write to or standard output by default.

Таким образом, он будет писать в файл с заданным именем, расположенный в каталоге, из которого вы запускаете команду; или он будет писать на стандартный вывод.

-keyout filename

This gives the filename to write the newly created private key to. If this option is not specified then the filename present in the configuration file is used.

Это запишет в указанное имя файла, опять же расположенного в каталоге, из которого вы запускаете команду; или он будет писать в имя файла, указанное в опции default_keyfile(под [ req ], конечно ).

В обоих случаях вы можете указать абсолютный путь к файлам в своих командах, если вы не хотите, чтобы они помещались в текущий каталог.


Структура, которую вы настроили в файле .conf, будет работать, когда вы используете команду openssl caдля подписи запроса от подчиненного (ЦС или конечного -объекта ). Однако, чтобы перейти к этапу, когда вы можете подписывать сертификаты, ему нужны сертификат ЦС и ключ. Ваша команда openssl reqгенерирует их. Чтобы получить разумные значения в сертификате ЦС, вам нужно добавить больше в файл .conf.

Что-то похожее на следующее должно помочь вам начать:

[ req ]

# Don't prompt for the DN, use configured values instead
# This saves having to type in your DN each time.

prompt             = no
string_mask        = default
distinguished_name = req_dn

# The size of the keys in bits:
default_bits       = 4096

[ req_dn ]

countryName            = GB
stateOrProvinceName    = Somewhere
organizationName       = Example
organizationalUnitName = PKI
commonName             = Example Test Root CA

[ ca_ext ]

# Extensions added to the request

basicConstraints =  critical, CA:TRUE
keyUsage =          critical, keyCertSign, cRLSign

Создайте сертификат CA с немного измененной версией предыдущей команды:

openssl req -x509 -newkey rsa:4096 -keyout /home/will/myCA/private/cakey.pem -out /home/will/myCA/cacert.pem -days 3650 -nodes -config <path-to>/openssl.cnf -extensions ca_ext

Примечание. :опция -configнужна только в том случае, если вы не используете/редактируете файл конфигурации по умолчанию.

Если все работает, у вас будут правильные сертификат и ключ для вашей конфигурации ЦС, указанной выше. Прежде чем вы сможете подписывать какие-либо сертификаты с помощью команды openssl ca, вам нужно убедиться, что index.txtсуществует, и создать serialс начальным серийным номером (, например01).

OpenSSL — это швейцарский -армейский нож криптографии, поэтому у него много возможностей. К сожалению, чтение справочных страниц — единственный способ понять это.

1
28.01.2020, 02:40

Теги

Похожие вопросы