OpenVPN Inline Certs
From Lolly's Wiki
To get an OpenVPN-Configuration in one file you can inline all referred files like this:
$ nawk '
/^(tls-auth|ca|cert|key)/ {
type=$1;
file=$2;
# for tls-auth we need the key-direction
if(type=="tls-auth")print "key-direction",$3;
print "<"type">";
while(getline tlsauth<file)
print tlsauth;
close(file);
print "</"type">";
next;
}
{
# All other lines are printed as they are
print;
}' connection.ovpn
And inline to files:
$ nawk '
/^<(tls-auth|ca|dh|cert|key)>/ {
type=$1;
gsub(/[<>]/,"",type);
file=type".pem";
print type,file;
print ""> file;
while(getline) {
if($0 == "</"type">"){
fflush(file);
close(file);
break;
}
print $0>>file;}
next;
}
{
# All other lines are printed as they are
print $0;
}' connection.ovpn > connection_.ovpn