Automatic CRL files converter
for crl in ${crls[@]}; do



It's a good habit to always double-quote array expansions.

Cleaning up the temp directory after a successful run would be a nice touch (or do away with it altogether; see below).


cat ${crl_temp}/*.pem &gt; ${crl_temp}/${new_crl}
mv ${crl_temp}/${new_crl} ${crl_dir}/${new_crl}



I assume you're doing this to get atomic replacement?  It only works if /tmp and /etc are on the same filesystem.  If they're not, you could get an empty destination file when (for example) the target is full.  Consider creating a working directory under /etc to be certain.

You could be more concise using cd and brace expansion and bash's own error handling (via set -euxo pipefail):

set -euxo pipefail

cd /etc/pki/tls/misc
temp=$( mktemp -p . )

for url in http://…blahblah…/{RootCA,IntermediateCA,IntermediateCA2}.crl ; do 
    curl $url | openssl crl -in - -inform DER
done &gt; $temp
mv $temp newcrl.pem