mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-05-17 19:57:18 +00:00
e239e04843
Replace backtick command substitutions with $(), quote variable
expansions to prevent word splitting, replace useless cat pipes with
redirections, use grep -q instead of redirecting to /dev/null, and use
bash parameter expansion for case conversion.
Based on the work from PR #6366, rebased and adapted to current master.
Shebangs already merged separately via df64bf8fe are excluded.
Co-Authored-By: Samveen <samveen@yahoo.com>
42 lines
1.5 KiB
Bash
Executable File
42 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
allowcred.awk &
|
|
CREDPID=$!
|
|
if [ -z "$XCATDEST" ]; then
|
|
XCATDEST=$1
|
|
fi
|
|
#retry in case certkey.pem is not right, yet
|
|
while ! openssl req -new -key /etc/xcat/certkey.pem -out /tmp/tls.csr -subj "/CN=$(hostname)" >& /dev/null; do
|
|
sleep 1
|
|
done
|
|
echo "<xcatrequest>
|
|
<command>getcredentials</command>
|
|
<arg>x509cert</arg>
|
|
<callback_port>300</callback_port>
|
|
<csr>" > /tmp/certreq.xml
|
|
cat /tmp/tls.csr >> /tmp/certreq.xml
|
|
echo "</csr>
|
|
<sha512sig>
|
|
</sha512sig>
|
|
</xcatrequest>" >> /tmp/certreq.xml
|
|
openssl dgst -sha512 -out /tmp/certreq.sha512 -sign /etc/xcat/privkey.pem /tmp/certreq.xml #chain off the switch published key
|
|
openssl enc -e -a -in /tmp/certreq.sha512 > /tmp/certreq.b64sig
|
|
while read -r line; do
|
|
if [ "$line" = "</sha512sig>" ]; then
|
|
cat /tmp/certreq.b64sig >> /tmp/certreq.xml.new
|
|
fi
|
|
echo "$line" >> /tmp/certreq.xml.new
|
|
done < /tmp/certreq.xml
|
|
mv /tmp/certreq.xml.new /tmp/certreq.xml
|
|
rm /tmp/certreq.b64sig /tmp/certreq.sha512
|
|
openssl s_client -connect "$XCATDEST" -quiet 2> /dev/null < /tmp/certreq.xml > /tmp/certresp.xml
|
|
if grep 'BEGIN CERTIFICATE' /tmp/certresp.xml > /dev/null; then
|
|
awk '/BEGIN CERTIFICATE/,/END CERTIFICATE/' < /tmp/certresp.xml > /etc/xcat/cert.pem
|
|
#stop transmitting sysDesc, allowing the public key to age out of validity
|
|
for iface in $(grep '^ e' /var/lib/lldpad/lldpad.conf|awk '{print $1}'); do
|
|
lldptool -T -i "$iface" -V sysDesc enableTx=no >& /dev/null
|
|
done
|
|
fi
|
|
rm /tmp/certreq.xml
|
|
rm /tmp/certresp.xml
|
|
kill $CREDPID
|