https - RSA 密钥生成¶
我多次使用过这个脚本。无论您多么频繁地使用 openssl 命令结构,有时都需要回顾一下这个过程。该脚本允许您为网站使用 RSA 自动生成密钥。请注意,此脚本已硬编码为 2048 位密钥长度。对于那些坚决认为密钥长度最小值应为 4096 位的人来说,只需更改脚本的该部分即可。您只需要权衡网站在设备上加载所需的内存和速度,与更长密钥长度的安全性。
脚本¶
将此脚本命名为您喜欢的任何名称,例如:keygen.sh
,使其可执行(chmod +x scriptname
),然后将其放置在您的 PATH 中的目录中,例如:/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 证书。
- 最后,清理步骤删除先前创建的带有密码的密钥。
- 输入脚本名称但不带参数会生成错误:“requires keyname parameter”。
- 此处使用了位置参数变量,即 $n。其中 $0 代表命令本身,而 $1 到 $9 代表第一个到第九个参数。当数字大于 10 时,您需要使用花括号,例如 ${10}。
作者:Steven Spencer