跳至内容

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