Diese Inline-Zertifikate vereinfachen insbesondere den Profilimport auf Android Geräten.
Hier ein kleines Skript für Windows (mit PowerShell 5), um die von den UTMs bereitgestellten Konfigurationsdateien in dieses Format zu konvertieren.
Ein Pendant für die bash findet sich hier:
viewtopic.php?f=30&t=6804
Konvert.bat
Code: Alles auswählen
@echo off
echo.
:: Version 0.02 / 2017-02-28
:: Diese Batch dient nur dazu, das Konvertierungs-Skript mit der
:: per Drag & Drop übergebenen Datei als Parameter aufrufen
:: (es kann immer nur eine Datei übergeben werden).
::
:: Damit der Trick mit dem "%~dpn0" auch funktioniert, muss das PS-Skript
:: vor der Dateiendung den gleichen Namen wie die Batch haben.
PowerShell.exe -ExecutionPolicy Bypass -Command "& '%~dpn0.ps1' %1"
exit
Code: Alles auswählen
# Version 0.03 / 2017-02-28
#
# 1. Beide Dateien (Konvert.bat und Konvert.ps1)
# in einem Ordner an beliebiger Stelle auf einem
# lokalen Laufwerk ablegen
#
# 2. Per Drag & Drop die "Securepoint-SSL-VPN-Config.zip"
# auf die Konvert.bat ziehen.
# WICHTIG: Der Benutzer muss Schreibrechte für den
# Ordner mit der Zip-Datei besitzen, weil dort der
# Ordner "_KONVERTIERT" erstellt wird, um dort die
# konvertierte Inline-OVPN-Datei als Zip abzulegen.
#
function global:VpnKonfKonvert {
param ([System.String]$InputFile)
# Eine temporäre Datei generieren lassen, diese wieder löschen,
# dann den Dateinamen für das Erzeugen eines Ordners weiterverwenden
$TMPDIR = New-TemporaryFile | %{ rm $_; mkdir $_ }
# Entpacken der "Securepoint-SSL-VPN-Config.zip"
# ACHTUNG: PowerShell 5.0 erforderlich!
Expand-Archive "$InputFile" $TMPDIR -Force
$zipFile = "$InputFile"
$zipFilePath = Split-Path "$InputFile"
$zipFileName = Split-Path "$InputFile" -leaf -resolve
$ovpnFile = Get-ChildItem "$TMPDIR\*.tblk\*.ovpn"
$ovpnFileName = Split-Path "$ovpnFile" -leaf -resolve
$ovpnFilePath = Split-Path "$ovpnFile"
# Key- und Zertifikatangaben in der OVPN-Datei auskommentieren bzw. entfernen
(get-content "$ovpnFile") -Replace '^ca .*', '# ca [inline]' -Replace '^cert .*', '# cert [inline]' -Replace '^key .*', '# key [inline]' | set-content "$ovpnFile"
# Key- und Zertifikate als Text in die OVPN-Datei einfuegen
Add-Content "$ovpnFile" "<ca>", (get-content "$ovpnFilePath\*-ca.pem"), "</ca>"
Add-Content "$ovpnFile" "<cert>", (get-content "$ovpnFilePath\*-cert.pem"), "</cert>"
Add-Content "$ovpnFile" "<key>", (get-content "$ovpnFilePath\*-cert.key"), "</key>"
# Den Ausgabeordner erzeugen (falls nicht schon vorhanden)
if ((Test-Path $zipFilePath\_KONVERTIERT) -ne $True) {New-Item $zipFilePath\_KONVERTIERT -type directory}
# Konvertierte Datei als Zip speichern
Compress-Archive "$ovpnFile" "$zipFilePath\_KONVERTIERT\Konv-$zipFileName" -Force
# Den temporären Ordner samt Inhalt löschen
Remove-Item "$TMPDIR" -Recurse -Force #-WhatIf
}
# Nun der Aufruf der Funktion mit der Zip-Datei als Parameter
VpnKonfKonvert -InputFile $args[0]