From 811d9efd65e2005ed8e9d3d577d8ecbf5862f4de Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Mon, 19 Nov 2018 22:17:19 +0100 Subject: [PATCH] OpenVPN export, inline cert+key for https://github.com/opnsense/core/issues/2787 --- .../library/OPNsense/OpenVPN/PlainOpenVPN.php | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/opnsense/mvc/app/library/OPNsense/OpenVPN/PlainOpenVPN.php b/src/opnsense/mvc/app/library/OPNsense/OpenVPN/PlainOpenVPN.php index dbc7b7167..2beadb8b4 100644 --- a/src/opnsense/mvc/app/library/OPNsense/OpenVPN/PlainOpenVPN.php +++ b/src/opnsense/mvc/app/library/OPNsense/OpenVPN/PlainOpenVPN.php @@ -118,12 +118,36 @@ class PlainOpenVPN extends BaseExporter implements IExportProvider return $conf; } + + /** + * @return array inline OpenVPN files + */ + protected function openvpnInlineFiles() + { + $conf = array(); + if ($this->config['mode'] !== "server_user") { + $conf[] = ""; + $conf = array_merge($conf, explode("\n", trim($this->config['client_crt']))); + $conf[] = ""; + + $conf[] = ""; + $conf = array_merge($conf, explode("\n", trim($this->config['client_prv']))); + $conf[] = ""; + } + if (!empty($this->config['tls'])) { + $conf[] = ""; + $conf = array_merge($conf, explode("\n", trim(base64_decode($this->config['tls'])))); + $conf[] = ""; + } + + return $conf; + } + /** * @return string content */ public function getContent() { - - return implode("\n", $this->openvpnConfParts()); + return implode("\n", array_merge($this->openvpnConfParts(), $this->openvpnInlineFiles())); } }