OpenVPN Inline Certs: Difference between revisions

From Lolly's Wiki
Jump to navigationJump to search
No edit summary
m (Text replacement - "<source" to "<syntaxhighlight")
Line 1: Line 1:
[[Kategorie:OpenVPN]]
[[Kategorie:OpenVPN]]
To get an OpenVPN-Configuration in one file you can inline all referred files like this:
To get an OpenVPN-Configuration in one file you can inline all referred files like this:
<source lang=bash>
<syntaxhighlight lang=bash>
$ nawk '
$ nawk '
/^(tls-auth|ca|cert|key)/ {
/^(tls-auth|ca|cert|key)/ {
Line 22: Line 22:


And inline to files:
And inline to files:
<source lang=bash>
<syntaxhighlight lang=bash>
$ nawk '             
$ nawk '             
/^<(tls-auth|ca|dh|cert|key)>/ {
/^<(tls-auth|ca|dh|cert|key)>/ {

Revision as of 20:49, 25 November 2021

Kategorie:OpenVPN To get an OpenVPN-Configuration in one file you can inline all referred files like this: <syntaxhighlight lang=bash> $ 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 </source>

And inline to files: <syntaxhighlight lang=bash> $ 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 </source>