Keine Port Änderung beim PHP Update Server V2 mit dem innovaphone Reverse Proxy

Beim Einsatz eines innovaphone PHP Update Server V2 in Verbindung mit einem innovaphone Reverse Proxy darf keine Port Änderung beim Weiterleiten durchgeführt werden.

Werden ankommende Anfragen mit Port 443 (https) auf die interne Adresse mit dem Port 80 (http) vom Reverse Proxy umgeleitet, werden die Befehle vom PHP Update Server V2 mit dem Port 80 verarbeitet. Das hat zur Folge, dass die weiteren Befehle ebenfalls mit Port 80 interpretiert werden. Damit kommen folgende Anfragen mit Port 80 (http) am Reverse Proxy an. Wenn dieser nicht auf den Port 80 hört, werden diese Anfragen verworfen.

Also für diesen Zweck die ankommenden Anfragen mit Port 443 zum PHP Update Server V2 wieder mit Port 443 intern weiterleiten.

Handhabung der Zertifikate bei innovaphone Android und iOS myPBX App sowie Softwarephone

Die Handhabung der Zertifikate bei Android und iOS myPBX App sowie Softwarephone für die Registrierung über H.323/TLS sollte nicht mit selbstsignierten Zertifikaten der Endgeräte in der Trust Liste auf dem Reverse Proxy und/oder der PBX erfolgen.
Damit hat man keine ordentliche Übersicht und müllt sich die Gateways mit selbstsignierten Zertifikaten zu. Die Anzahl der Zertifikate in der Trust Liste ist auch begrenzt, wodurch dieser Ansatz nicht skaliert.Das richtige Vorgehen wäre eine eigene PKI zu verwenden und das Root CA sowie, wenn vorhanden, die Intermediate CAs im Reverse Proxy und der PBX als Trust anzulegen. Das sollte für diesen Zweck völlig ausreichen.Um vernünftig mit zertifikatsbasierter Registrierung zu arbeiten sollte man mit der eigenen PKI den Geräten signierte Zertifikate zur Verfügung stellen.
Das sollte auch nicht vollautomatisch passieren um eine gewisse Sicherheit im Umgang mit diesen Zertifikaten zu gewährleisten.
Nahezu jeder Geschäftskunde hat bereits eine PKI im Einsatz wenn er eine Microsoft Active Directory (MS AD) verwendet.
Diese kann mit einem Web User Interface (Certificate Web enrollment pages) bedient werden.Damit man Zertifikate erhält mit denen man sowohl Client als auch Server Authentifizierung durchführen kann muss man in der MS PKI eine entsprechende Zertifikatsvorlage erstellen. Hierfür gibt es im innovaphone Wiki einen Artikel der sich mit diesem Thema beschäftigt.

Als nächsten Schritt muss man einen Certificate Signing Request (CSR) erstellen. Dies wird ebenfalls in einen innovaphone Wiki Artikel beschrieben.

Diesen erstellten CSR signiert man nun in der eigenen MS PKI mit der erstellten Zertifizierungsvorlage. Daraufhin erhält man ein Zertifikat welches man wieder, auf der gleichen Seite wie man den CSR erstellt hat, auf das Gerät lädt.

Für eine zertifikatsbasierte Registrierung ist es noch wichtig, dass der Anmeldename mit dem CN des Zertifikats übereinstimmt.

Bei der Verwendung eigener Zertifikate ist es noch wichtig die korrekten Einstellungen vorzunehmen um das System nicht zu stark zu belasten. In einem weiteren innovaphone Wiki Artikel können Sie die Details dazu nachlesen.

Jetzt kann man sagen dass dies sehr komplex umzusetzen ist und auch etwas Zeit in Anspruch nehmen kann. Daher hat innovaphone mit seinem PHP basierten Update Server V2 eine Funktion für das Ausrollen eigener Zertifikate eingebaut.
Dieser erstellt automatische nach ihren Vorgaben einen CSR und lädt diesen automatisch zum PHP basierten Update Server V2 hoch.
Dieser muss dann von Ihnen manuell mit der Zertifizierungsvorlage auf der eigenen PKI unterzeichnet werden. Dies könnte man theoretisch mittels MS Powershell Script ebenfalls automatisieren. Das würde die Sicherheit für Zertifikate aber in Frage stellen.
Zum Schluß lädt man das unterzeichnete Zertifikat im PHP basierten Update Server V2 wieder hoch und beim nächsten Update wird das Zertifikat auf das Endgerät geladen.

Damit hat man vernünftige und signierte Zertifikate auf den Endgeräten und benötigt nur das eigene PKI Root + Intermediate Zertifikat auf dem Reverse Proxy und der PBX.

Man muss sich nicht zwingend mit einem Zertifikat anmelden wenn man für die Registrierung von extern H.323/TLS verwenden möchte. Passt der Anmeldename nicht mit dem CN des Zertifkates überein kann für die Authentifizierung Username und Passwort verwendet werden. Trotzdem wird H.323/TLS verwendet.

Seit der Firmware Version 12r1 sr 8 und 12r2 final kann man den Update Server und wenn gewünscht Username und Passwort auch per Mail provisionieren. Eine Beschreibung für iOS und Android ist im innovaphone Wiki erhältlich.

Zum Thema PHP basierten Update Server V2 und Zertifikatesvorlagen habe ich in diesem Blog bereits Artikel verfasst.

Neue Funktion für Firmware und Bootcode Auswahl im innovaphone PHP Update Server V2

Verwendung von MTLS für den innovaphone PHP Update Server V2

Zertifikatsvorlage für innovaphone Device Zertifikate unter Windows Server 2008R2 und 2012R2