目前,我正以明文格式提供密码,详情如下:
-aes128 -passout pass:foobar 3072
其中foobar是以明文格式提供的密码。
我希望使用某种加密格式或任何其他方式提供密码,使其不易读懂。
发布于 2018-11-24 18:05:06
如果您确实按照您的请求以加密格式提供了密码,那么如何将用于加密所述密码的加密密钥提供给OpenSSL,以便OpenSSL能够对其进行解密并使用正确的密码?
我猜想,您提供给OpenSSL的密码是OpenSSL用来加密将要生成的RSA私钥的。如果这确实是您希望OpenSSL使用的密码,则必须以明文形式给出。
如果您担心有人可能会看到它,您需要确保它是以安全的方式输入的。但是,“加密密码”不是解决方案,因为您最终可能会为密码本身保护加密密钥。
发布于 2018-11-24 23:16:36
通常,密码应该通过openssl提示符传递(即:删除-passout pass:foobar参数)。
如果您通过命令行传递密码,因为您必须在脚本的另一部分中使用密码,则可以使用下面的示例:
echo -n Password:
read -s PASS
openssl genrsa -out keypair.pem -aes128 -passout pass:${PASS}
opnessl req -new -key keypair.pem -passin pass:${PASS}但是,如果您真的需要在不需要用户交互的情况下生成密钥,可以使用下面的示例,但我不推荐在任何生产环境中使用。
创建一个脚本(例如: auto_key_gen.sh),其中包含以下代码:
PASS=`openssl rand -hex 16`
openssl genrsa -out auto_keypair.pem -aes128 -passout pass:${PASS}
echo -n ${PASS} | openssl rsautl -encrypt -pubin -inkey $1 -out encrypted_pass.bin生成个人密钥并提取公钥:
openssl genrsa -out mykeypair.pem -aes128
openssl rsa -in mykeypair.pem -out mypubkey.pem -pubout把私人键盘放在安全的地方。个人公钥,用于运行脚本:
chmod +x auto_key_gen.sh
./auto_key_gen.sh mypubkey.pem脚本生成一个随机密码,并使用它加密生成的密钥对(auto_keypair.pem)。密码使用您的个人公钥加密并保存在一个文件(encrypted_pass.bin)中。
该脚本可以将密码保存在“内存”中,以便与其他openssl命令一起使用。
您可以使用您的个人键盘检索加密密码:
openssl rsautl -decrypt -inkey mykeypair.pem -in encrypted_pass.bin -out decrypted_pass.hex必须保护脚本和公钥免遭未经授权的修改。
https://stackoverflow.com/questions/53459282
复制相似问题