使用.csv文件作为参考以生成多个自签名证书

问题描述 投票:0回答:1

我想以此为前言;我不是编码器我很好奇是否可以获取批处理文件,我将使用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
file csv batch-file openssl certificate
1个回答
0
投票

由于您已经省略了清楚地告诉我们您的.csv文件的内容,我将假设您的文件是您包含的R001.der..脚本。

你能做的是(作为一批):

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

它将执行您的批处理文件,从.csv文件的每一行提供第一个标记(空格分隔的字符串)内容的参数。

注意执行批处理意味着不会永久地重新键入命令,但如果您希望使事情变得困难并从提示中重新键入命令,则将每个%%a减少到%a。请注意,%a的大小写区分大小写。

并使用NewCertPrivKeyNewCertUnsignedNewCertSigned(即在主文件名主体后插入NewCertPrivKey%1)替换批次中使用的文件名中的每个NewCertUnsigned%1NewCertSigned%1%1

当您使用NewCertPrivKeyR001.der.pem参数执行批处理时,这将创建像R001.der这样的文件名(%1表示copy the first parameter verbatim

如果你想从NewCertPrivKeyR001.pem参数获得R001.der,那么使用%~n1而不是%1。这使用参数1的“名称”部分 - 即最终.之前的部分

请注意,您修改的批处理文件仍将作为原始文件运行,因为如果在运行时未提供参数,则%1为空,因此在复制时会生成空字符串。

© www.soinside.com 2019 - 2024. All rights reserved.