我可以将 openssl 密钥和 csr 创建命令合并为一个命令以保持 des3 密码加密吗?

我可以将 openssl 密钥和 csr 创建命令合并为一个命令以保持 des3 密码加密吗?

我正在尝试通过 shell 进行自动化/脚本编写,这是为我们的一个团队构建服务器后配置的方法,也是安装完毕后的最后步骤之一,即生成 SSL 密钥和 csr 文件,以便上传到我们的内部证书管理/签名工具。

现有流程让他们运行以下 2 个命令并手动输入所有详细信息(密码、可分辨名称详细信息、属性等):

#create private key
openssl genrsa -des3 -out filename.key 2048

#generate csr 
openssl req -new -key filename.key -out filename.csr

我选择使用以下流程来尝试实现自动化:首先生成一个配置文件,其中包含所需的详细信息,例如

[ req ]
default_bits = 2048
distinguished_name = disname

.....

[ disname ]
C = NN
ST = name

.....

然后运行组合命令,使用一些定义的变量来生成文件

openssl req -newkey rsa:2048 -passout pass:${passPhrase} -config config.file\
   -keyout filename.key -out filename.csr

这个命令似乎很管用,但是……我们注意到这个组合命令的密钥输出与原始命令不同。原始方法是-des3创建一个密钥文件,在前面说明以下内容:

----BEGIN RSA PRIVATE KEY----

Proc-Type: 4,ENCRYPTED

DEK-Info: DES-EDE3-CBC, nnnnnnnnnnnnn

通过组合方法创建的文件仅包含:

----BEGIN ENCRYPTED PRIVATE KEY----

问题是,这是否是一样的,只是一种方法在开头放置了不同的信息,还是根本上不同,我需要恢复到旧方式或做其他事情才能获得相同级别/方法的加密?

答案1

我找到了做我需要做的事情的方法。

2 步骤流程:

1-密钥创建(无提示)

openssl genrsa -passout:${passphrase} -des3 -out filename.key 2048

2 - 无需提示即可通过密钥创建 csr

openssl req -passin pass:${passphrase} -config config.file -new\
  -key filename.key -out filename.csr

相关内容