https - RSA 密钥生成¶
我多次使用过这个脚本。无论你使用 openssl 命令结构的频率如何,有时你都必须参考该过程。这个脚本允许你使用 RSA 为网站自动生成密钥。请注意,这个脚本是使用 2048 位密钥长度硬编码的。对于那些强烈认为密钥长度最小值应为 4096 位的人来说,只需更改脚本的这一部分即可。只需知道你需要权衡网站在设备上加载所需的内存和速度,以及更长密钥长度的安全性。
脚本¶
将此脚本命名为你喜欢的任何名称,例如:keygen.sh
,使脚本可执行(chmod +x scriptname
)并将其放置在路径中的目录中,例如:/usr/local/sbin
#!/bin/bash
if [ $1 ]
then
echo "generating 2048 bit key - you'll need to enter a pass phrase and verify it"
openssl genrsa -des3 -out $1.key.pass 2048
echo "now we will create a pass-phrase less key for actual use, but you will need to enter your pass phrase a third time"
openssl rsa -in $1.key.pass -out $1.key
echo "next, we will generate the csr"
openssl req -new -key $1.key -out $1.csr
#cleanup
rm -f $1.key.pass
else
echo "requires keyname parameter"
exit
fi
注意
你将在连续三次中输入密码短语。
简要描述¶
- 这个 bash 脚本需要输入一个参数 ($1),即网站名称,不包含任何 www 等。例如,“mywidget”。
- 该脚本创建了带有密码和 2048 位长度的默认密钥(这可以编辑,如上所述,可以更改为更长的 4096 位长度)
- 然后立即从密钥中删除密码,原因是 web 服务器重启需要每次输入密钥密码,以及在重启时输入,这在实践中可能会有问题。
- 接下来,该脚本创建 CSR(证书签名请求),然后可以使用它从提供商处购买 SSL 证书。
- 最后,清理步骤删除了先前创建的带密码的密钥。
- 在没有参数的情况下输入脚本名称会生成错误:“需要 keyname 参数”。
- 这里使用位置参数变量,即 $n。其中 $0 代表命令本身,$1 到 $9 代表第一个到第九个参数。当数字大于 10 时,你需要使用大括号,例如 ${10}。
作者:史蒂文·斯宾塞