提问人:coders 提问时间:4/26/2023 最后编辑:coders 更新时间:4/26/2023 访问量:92
如何在bash脚本中传递从secret中读取的.crt内容?[复制]
How to pass the .crt content read from the secrets in bash script? [duplicate]
问:
我已将 .crt 和 .key 文件的内容复制到 Kubernetes 机密中。然后,当我部署应用程序时,我尝试从 bash 脚本中读取相同的内容,并且我可以读取它。它显示的数据如下(示例示例)
CLIENT_KEY=absncb asdasdas asdasdasd asdasdasd== asdasddf
当我使用上面显示的CLIENT_KEY使用下面的 shell 脚本生成 .pkc12 文件时,我收到一个错误,例如 pkcs12: Use -help for summary。
#!/bin/bash
hdlKey=absncb asdasdas asdasdasd asdasdasd== asdasddf
hdlCert=absncb asdasdas asdasdasd asdasdasd== asdasddf asadasdii
function checkHDLKey(){
if [ -z "$hdlKey" ] && [ -z "$hdlCert"]; then
echo "ERROR - HDL values were not properly read"
else
echo $hdlKey
echo $hdlCert
fi
}
checkHDLKey
PCK12_PATH="/app/pk12/client-keystore.p12"
function generate_password {
KEY=$(openssl rand -base64 16)
echo $KEY
}
result=$(generate_password)
echo $result
function generate_pkc12_cert {
# Convert a PEM certificate file and a private key to PKCS#12 (.pfx .p12)
echo "Inside generate_pkc12_cert"
(openssl pkcs12 -export -inkey $hdlKey -in $hdlCert -out "/app/pk12/client-keystore.p12" -password pass:$result)
echo "Done generate_pkc12_cert "
}
generate_pkc12_cert
任何帮助将不胜感激。这也是阅读它的写入方式吗?
答: 暂无答案
评论
-in
并期望文件名,而不是文字键数据。将变量写入文件,传递这些文件的名称。正如 Cyrus 所说,将您的脚本粘贴到 shellcheck 并修复它给您的所有引用错误。-inkey
-in <(printf '%s\n' "$hdlCert")
-inkey <(printf '%s\n' "$hdlKey")