2014-09-28 38 views
0

我试图做一个简单的烘烤SSL证书生成脚本。问题是我不知道如何创建类似于创建CSR的答卷。我想预先回答csr问题有人可以告诉我如何做到这一点?

rndpass = $(删节)& &的OpenSSL genrsa -passout传递:$ rndpass -aes256 4096> server.key & &回波$ rndpass> server.key.pass & & OpenSSL的REQ -sha256 -passin传递:$ rndpass -new -key /root/server.key -out server.csr

回答

1

经过更多的挖掘,我设法找到了一种方法来实现这一点。

RNDPASS=$(REDACTED) && openssl genrsa -passout pass:$RNDPASS -aes256 4096 > server.key && echo $rndpass > server.key.pass && openssl req -sha256 -passin pass:$RNDPASS -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=example.com" -new -key server.key -out server.csr 

我抓住我的回答从superuser.com

这是我跑这条线的输出结果。我当然不会向任何人暗示他们实际使用此证书的csr或密码。

根@ 21944aa49917:〜#猫server.csr |要点粘贴-p https://gist.github.com/2f90234c701ec2244365根@ 21944aa49917:〜#猫 server.key |要点粘贴-p https://gist.github.com/bf508e9048e2e4a385d3 根@ 21944aa49917:〜#猫server.key.pass | gist-paste -p https://gist.github.com/2cd73181136895133621

打破这一点。

首先我们需要生成一个随机密码,为了我的安全起见,我们将在变量$ RNDPASS中存储一个随机密码。我不会公开使用什么魔法创建我的字符串,但它会输出一个32个字符的字符串。

RNDPASS = $(REDACTED)& &

然后,我们需要生成密钥给它以 “OpenSSL的genrsa” 的manpaged不佳 “-passout ARG” 部分中的密码,您可以阅读更多here.

的OpenSSL genrsa -passout传递:$ RNDPASS -aes256 4096> server.key & &

现在我们已经生成了一个密钥,并且事情没有失败让我们将输出存储在server.key.pass中。你真的可以管这在任何地方,甚至只是回到标准输出,我选择它粘成一个文件,在这个例子与...

回声$ rndpass> server.key.pass & &

最后我们需要生成csr(证书签名请求),如果你想要,你可以使用Docker和环境变量来自动生成一个ssl证书。

OpenSSL的REQ -sha256 -passin传递:$ RNDPASS -subj> “/C=US/ST=Denial/L=Springfield/O=Dis/CN=example.com” -new -key服务器。key -out server.csr

+0

'CN = www.example.com' - 您应该使用Chrome访问您的网站。它肯定会失败。 ***请勿***将DNS名称放入CN中。它已被IETF和CA/B论坛弃用。将DNS名称放入SAN中。 – jww 2014-09-29 06:14:44

+0

感谢这个信息我会更新我的例子。 – chamunks 2014-09-29 06:15:52

+0

@jww你碰巧知道每个关键细节的简短版本? – chamunks 2014-09-29 13:11:14

相关问题