RemoteConnector-Zertifikate exportieren

So nett der RemoteConnector auch ist, er macht das Produkt unnötig kompliziert. Einerseits wird ein Endanwender es nie schaffen, ohne Anleitung intuitiv seinen Client richtig in Betrieb nehmen zu können. Andererseits muss überhaupt erstmal das notwendige Zertifikat exportiert und an den Anwender geschickt werden - schlauerweise geht das über das SwyxControlCenter (SCC) nicht mal als Administrator, geschweige denn, dass der User es sich selbst herunterladen kann.

Entsprechend hier zwei Tipps, um das Leben zu vereinfachen:

Sammelzertifikat

Die Zertfikate sind zwar Benutzer-bezogen, aber wer das Zertifikat benutzt, ist dem Server völlig egal. Das heißt, man kann sich wie folgt das Leben einfacher machen:

  1. Einen Benutzer (am besten mit einem allgemeinen Namen, z.B. "Zertifikat SwyxWare Maier GmbH") anlegen und ihm ein RemoteConnector-Zertifikat erstellen. Dieser Benutzer braucht keine Lizenzen, er darf nur nicht gelöscht werden (sonst würde vermutlich auch sein Zertifikat zurückgezogen).
  2. Dieses Zertfifikat exportieren und
  3. Dieses Zertifikat dann einfach manuell auf den Clients importieren (dabei wie gewohnt das "[x] als exportierbar markieren" nicht vergessen) und im SwyxIt! als manuelles Zertifikat auswählen

Fertig. Eine einzelne PFX-Datei für die ganze Firma lässt sich viel einfacher ausrollen als wenn jeder Nutzer zwingend sein eigenes Zertifikat bekommen muss. 

Hinweis: Das ist m.W. kein offiziell von Swyx so vorgesehener Weg. Aber er funktioniert seit vielen Versionen schon einwandfrei.

Automatischer Zertifikatsexport

Der zweite Weg wäre, mittels folgendem Powershell-Script die Zertifikate direkt (z.B. regelmäßig als scheduled task) zu exportieren:

Import-Module IpPbx
Connect-IpPbx 
$user = get-ippbxUser
foreach ($u in $user) {
   if ($u.CertificateThumbprint.length -gt 3 ) {
      Write-Host $u.name " - Zertifikat exportieren:"
      $dateiname = $u.name -replace '[^a-z]'
      $pfad = "Downloads/" + $dateiname + ".pfx"
      Write-Host $pfad
      $destinationFilePath = Join-Path -Path $env:USERPROFILE $pfad
      $cert = Get-IpPbxUser -UserName $u.name | Get-IpPbxClientCertificate
      $certData = $cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pfx, "###HIER-DAS-TRANSPORT-KENNWORT###")
      [System.IO.File]::WriteAllBytes($destinationFilePath, $certData)
  }
}
Disconnect-IpPbx

In diesem Fall würde jedes Zertifikat in eine Datei exportiert, in diesem Fall im Ordner "Downloads" des ausführenden Users. Die so exportierten Zertifikate könnte man z.B. einfach in c:\inetpub\wwwroot\irgend-einen-Unterordner kopieren, dann kann man sie sich über den IIS (der ja für's SwyxControlCenter eh verfügbar ist) runterladen oder so.

Anmerkungen:

  • in $dateiname würde derzeit der Username rein aus Buchstaben (also PeterMayer.pfx) gewählt. Wenn die User z.B. die interne Telefonnummer vorstehend haben ("10 Peter Mayer"), könnte man auch z.B. statt [^a-z] auch [^0-9] die dann als 10.pfx exportieren. Oder oder oder, einfach nach Geschmack anpassen.
  • bei "###-HIER-DAS-TRANSPORT-KENNWORT###" kommt bitte schön nicht das Passwort des Stammzertifikates rein, sondern das, was der User nachher beim Import kennen muss. 

 

Es gibt noch weitere Möglichkeiten zum Zertfikats-Export per Powershell im SwyxForum.

Problem: Für SwyxIt! benötigt man oft ein RemoteConnector-Zertifikat. Das bekommt man aber nicht über's SCC.

Feedback