Используйте файл .csv в качестве ссылки для создания нескольких самозаверяющих сертификатов. - PullRequest
0 голосов
/ 16 апреля 2019

Я хотел предвосхитить это;Я не кодер Мне интересно, могу ли я взять имеющийся у меня пакетный файл, который сгенерирует самозаверяющий сертификат с использованием OpenSSL и свяжет его с файлом .CSV для создания нескольких сертификатов с другим именем файла.(Мой пакетный файл также преобразует .cer в .der, поскольку это тот формат, который мне нужен).

Т.е.

R001.der
R002.der
R123.der

Мой пакетный файл вызывает другой пакетный файл, который просто ссылается на каталогOpenSSL.

Мой командный файл:

setlocal enableextensions
@echo off
call vars.bat

echo #### Generating a new private key
openssl genrsa -out NewCertPrivKey.pem 2048

echo #### Converting private key to DER format
openssl rsa -in NewCertPrivKey.pem -inform PEM -out NewCertPrivKey.der -outform DER

echo #### Generating certificate request
openssl req -new -sha256 -key NewCertPrivKey.pem -out NewCertUnsigned.pem -days 3650

echo #### Signing the certificate request
openssl ca -verbose -days 3650 -out NewCertSigned.pem -keyfile demoCA\private\CAPrivKey.pem -cert demoCA\CACert.pem -infiles NewCertUnsigned.pem

echo #### Converting certificate to DER
openssl x509 -in NewCertSigned.pem -inform PEM -outform DER -out NewCertSigned.der

echo ##################################
echo The files to upload are NewCertSigned.der and NewCertPrivKey.der

1 Ответ

0 голосов
/ 16 апреля 2019

Поскольку вы не указали нам четко содержимое вашего файла .csv, я предполагаю, что ваш файл - это скрипт R001.der.., который вы включили.

То, что вы можете сделать, это (как партия):

for /f %%a in (yourcsvfilename) do call yourbatchfileasposted.bat %%a

, который будет выполнять ваш пакетный файл, передавая параметр содержимого первого токена (разделенной пробелами строки) из каждой строки вашего .csv файла.

Примечание Выполнение в виде пакета будет означать, что вы не будете постоянно вводить команду повторно, но если вы хотите усложнить задачу и повторно ввести команду из приглашения, уменьшите каждый %%a до %a. Обратите внимание, что регистр %a чувствителен к регистру.

И заменяйте каждый NewCertPrivKey, NewCertUnsigned, NewCertSigned в именах файлов, используемых в вашем пакете, на NewCertPrivKey%1, NewCertUnsigned%1, NewCertSigned%1 (т.е. вставьте %1 после основное имя файла-тела.

Это создаст имена файлов, например NewCertPrivKeyR001.der.pem, когда ваш пакет выполняется с параметром R001.der (% 1 означает copy the first parameter verbatim)

Если вы хотите NewCertPrivKeyR001.pem из параметра R001.der, тогда используйте %~n1 вместо %1. При этом используется часть «name» параметра 1, то есть часть, предшествующая конечному .

Обратите внимание, что ваш измененный пакетный файл все еще будет работать как исходный, потому что, если вы не предоставите параметр при запуске, %1 будет пустым, поэтому при копировании будет получена пустая строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...