加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 脚本openssl生成许多证书而无需手动输入密码?

发布时间:2020-12-17 01:25:54 所属栏目:百科 来源:网络整理
导读:我创建了一个证书颁发机构,需要生成并签署50个证书.我想编写这个过程的脚本.我不想手动输入密码100次! 这是我被挂断的命令: openssl req -newkey rsa:1024 -keyout ~/myCA/tempkey.pem -keyform PEM -out ~/myCA/tempreq.pem -outform PEM 问题是,它要我用
我创建了一个证书颁发机构,需要生成并签署50个证书.我想编写这个过程的脚本.我不想手动输入密码100次!

这是我被挂断的命令:

openssl req -newkey rsa:1024 -keyout ~/myCA/tempkey.pem -keyform PEM -out ~/myCA/tempreq.pem -outform PEM

问题是,它要我用这些提示创建一个密码:

Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:

当我被要求输入密码时,我可以使用openssl的-passin pass:mypass命令行选项.但这似乎不适用于创建密码.

此外,稍后我需要输入密码似乎很奇怪我最终将其删除:

openssl rsa < tempkey.pem > server_key.pem

我尝试创建一个简单的Ruby脚本:

require 'open3'

Open3.popen2("openssl req -newkey rsa:1024 -keyout ~/myCA/tempkey.pem -keyform PEM -out ~/myCA/tempreq.pem -outform PEM") {|i,o,t|
    i.puts "mySecretPassword"
    i.puts "mySecretPassword"
}

但这似乎也不起作用.我最后还是手动提示,要求我创建一个密码.

解决方法

问题是大多数希望密码确实需要交互式终端的实用程序.因此,如果你试图伪造它(就像你使用Ruby脚本那样)它将无法工作.你也可以尝试:

echo -n "passnpassn" | openssl req ....

虽然这将适用于某些程序,但那些需要interative shell的程序将无效.

您正在搜索名为expect的工具.将它安装在UNIX / Linux / MacOS上并查看手册页:

man expect
...
Expect is a program that "talks" to other interactive programs according to a script.  Following the script,Expect
knows what can be expected from a program and what the correct response should be.  An  interpreted  language  pro                        

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读