我正在处理两个文件,一个包含我的Base64证书链,另一个是私钥,我想合并它们,私钥是在第一次出现后添加的
-----END CERTIFICATE-----
.我不知道如何在狂欢中做到这一点.
如果能得到帮助就太好了.谢谢!
Certificate chain file个
-----BEGIN CERTIFICATE-----
... (certificate for your server)...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (the intermediate certificate)...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (the root certificate for the CA)...
-----END CERTIFICATE----
private key file个
-----BEGIN PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CFCECC7976725DE5
<Server Private Key – Passphrase protected>
-----END PRIVATE KEY-----
final merged file个
-----BEGIN CERTIFICATE-----
... (certificate for your server)...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,CFCECC7976725DE5
<Server Private Key – Passphrase protected>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
... (the intermediate certificate)...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
... (the root certificate for the CA)...
-----END CERTIFICATE----
代码片段脚本:
get_new_certificate() {
curl --get "$venafi_url$venafi_get_cert_endpoint?Format=Base64&IncludeChain=true&RootFirstOrder=false" --insecure --data-urlencode "CertificateDN=$certificate_identifier" \
-H "accept: application/json" \
-H "Authorization: Bearer $auth_token" \
-o "$certificate_path"
# Extract the private key block
#private_key=$( awk '/-----BEGIN PRIVATE KEY-----/,/-----END PRIVATE KEY-----/' "$PRIVATE_KEY_PATH" | tr '\n' '\f')
private_key=$( cat "$PRIVATE_KEY_PATH")
# Combine the certificates and private key in the desired order
#sed -i -z "0,/-----END CERTIFICATE-----/s/ $private_key" "$certificate_path" | tr '\f' '\n'
#awk '/-----END CERTIFICATE-----/ {print; print "'"$private_key"'"; next}1' "$cert_chain_files > "updated_combined.pem
#cat $certificate_path
sed -i.bak -e "/-----END CERTIFICATE-----/r $private_key" -e "/-----END CERTIFICATE-----/d" $certificate_path
echo "Got new Certificate"
}