OpenVPN Inline Certs: Difference between revisions

From Lolly's Wiki
Jump to navigationJump to search
No edit summary
m (Text replacement - "</source" to "</syntaxhighlight")
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Kategorie:OpenVPN]]
[[Category: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 19: Line 19:
   print;
   print;
}' connection.ovpn
}' connection.ovpn
</source>
</syntaxhighlight>


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)>/ {
Line 43: Line 43:
   print $0;
   print $0;
}' connection.ovpn > connection_.ovpn  
}' connection.ovpn > connection_.ovpn  
</source>
</syntaxhighlight>

Latest revision as of 03:37, 26 November 2021

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