NAV Universal App Teil 1: SSL Zertifikat erstellen und einrichten

Eines der neuen Features von NAV 2016 ist die verbesserte App für NAV, nun auch NAV Universal App 2.0 genannt. Sie ist für Android, iOS und Windows Phone erhältlich.

Die technische Herausforderung: Die NAV Universal App erzwingt eine Verbindung per SSL. Das wiederum bedingt

  1. die Erstellung und Installation eines SSL-Zertifikats auf dem NAV Server und
  2. die Installation des SSL-Zertifikats auf dem mobilen Gerät.

Unter Android ist die Installation von Zertifikaten etwas komplizierter, wie ich feststellen musste. Daher die Anleitung in zwei Teilen:

Im ersten Teil zeige ich, wie ich auf einer frischen Azure NAV 2016 Installation ein selbstsigniertes SSL-Zertifikat erstelle. Das Zertifikat wird dann auf dem mobilen Gerät installiert.

Im zweiten Teil geht es um die Installation und Einrichtung der App selber unter iOS und Android.


Update 28.01.2016:

Die hier beschriebene Variante, das Zertifikat mit openssl zu erzeugen und dann in IIS zu importieren, schlägt bei iOS fehl. Das Zertifikat wird zwar auch von iOS importiert, wird aber offensichtlich nicht verwendet. Hier eine neue Variante, die nun mit Android und iOS getestet wurde. Vielen Dank van Viktor Hartlieb, der mich auf das Problem hingewiesen und mir beim Test geholfen hat!

Einrichtung eines selbstsignierten SSL-CA-Zertifikats auf dem NAV-Server

Erstellung des Zertifikats auf dem NAV-Server

In diesem englischen MSDN-Blogbeitrag wird beschrieben, wie man ein SSL-Zertifikat erstellt und das auf Tablet/Smartphone installiert. Diese Variante hab ich selber getestet – es funktioniert.

https://blogs.msdn.microsoft.com/nav/2014/10/09/how-to-get-microsoft-dynamics-nav-for-tablets-to-connect-using-a-self-signed-certificate/

Hier meine eingedeutschte Version mit einigen Screenshots:

  1. Auf dem NAV-Server folgendes Powershell-Skript runterladen: https://gallery.technet.microsoft.com/scriptcenter/Self-signed-certificate-5920a7c6/file/101251/1/New-SelfSignedCertificateEx.zip und in einen Ordner entpacken (z.B. C:\temp\)
  2. Die Powershell als Administrator starten
  3. In das Verzeichnis gehen, wo die entpackte Datei New-SelfSignedCertificateEx.ps1 liegt (hier: C:\temp\):
    C:
    cd temp
  4. Folgenden Befehl eingeben, um das Skript zu aktivieren:
    Import-Module .\New-SelfSignedCertificateEx.ps1
  5. Dann folgenden Befehl eingeben, um das Zertifikat zu erstellen:
    New-SelfSignedCertificateEx –Subject "CN=hostname" –IsCA $true –Exportable –StoreLocation LocalMachine –StoreName My

    Statt hostname muss der volle Hostname des NAV-Servers eingetragen werden, also z.B. „CN=az-nav2016.cloudapp.net“.

  6. mmc.exe starten
  7. Unter Datei > Snap-In hinzufügen/entfernen auswählen:
    mmc01
  8. Dort das Snap-In Zertifikate auswählen und Hinzufügen klicken:
    mmc02
  9. Dann Computerkonto auswählen und Weiter klicken:
    mmc03
  10. Dann Lokalen Computer auswählen und Fertig Stellen klicken. Das neue Zertifikat findet sich nun unter Zertifikate > Eigene Zertifikate > Zertifikate.
    mmc04
    mmc05
  11. Das neue Zertifikat kopieren und unter Vertrauenswürdige Stammzertifizierungsstellen > Zertifikate einfügen:
    mmc06
    mmc07
  12. Das neue Zertifikat mit rechter Maustaste auswählen über Alle Aufgaben >  Exportieren auswählen:
    mmc08
  13. Die Option Nein, privaten Schlüssel nicht exportieren auswählen und Weiter klicken:
    mmc09
  14. Das Format DER-codiert-binär X.509 (.CER) auswählen und Weiter klicken:
    mmc10
  15. Einen Dateinamen (mit der Endung .CER) angeben und Weiter und dann auf Fertig Stellen klicken:
    mmc11
    mmc12

Den exportieren Schlüssel man besten per Mail an das Android/iOS-Gerät schicken.


Installation des Zertifikats auf dem NAV-Server

Dazu ruft man den Internetinformationsdienst-Manager per „inetmgr“ auf, klickt links unter „Verbindungen“ auf den NAV-Server, dann unter IIS auf „Serverzertifikate“.

Hinweis: Unter Azure scheint schon standardmäßig ein Zertifikat ohne Anzeigenamen angelegt zu sein. Diese sollte gelöscht werden.

SSL_01

Dann rechts unter „Aktionen“ auf „Importieren“ klicken:

IIS_02

Dann die PFX-Datei auswählen und OK klicken:

 

Nun muss das importierte Zertifikat an den IIS „gebunden“ werden. Dazu im IIS-Manager unter Verbindungen den NAV-Server auswählen, unter „Sites“ > „Microsoft Dynamics NAV 2016 Web Client“ auswählen, dann rechts unter „Aktionen“ den Punkt „Bindungen“ auswählen:

SSL_04

Dort auf „Hinzufügen“ klicken und den https-Port 443 mit dem erstellten SSL-Zertifikat verbinden und OK klicken:

IIS_05

Nun kann man das Setup testen. Per https://[NAV-Server]/[Instanzname]/WebClient/phone.aspx kann man die Web-Variante der App testen. Die Warnmeldung kommt daher, dass das Zertifikat selbsterstellt und auf dem Client noch nicht installiert ist:

Image00016

Falls es hier Probleme gibt, sollte geprüft werden, ob die Firewall für Port 443 offen ist. Auf Azure muss ggf. ein neuer Endpunkt für Port 443 geöffnet werden!

Installation des Zertifikats auf Android

Hinweis: Für die Installation eines Zertifikats unter Android ist mind. der Schutz per Muster oder PIN notwendig.

Die Installation kann über zwei Wege stattfinden.

Update 28.01.2016: Die Screenshots zeigen noch die PFX-Datei. Bitte hier gedanklich die CER-Datei vorstellen!

Man schickt sich die CER-Datei per Mail zu und öffnet die Datei direkt in Gmail:

Image00017

Oder man kopiert die CER-Datei anderweitig auf das Android-Gerät und geht über Einstellungen > Sicherheit > Vom Speicher installieren und sucht dort die Datei.

Image00008  Image00009

Image00011

Ob das Zertifikat korrekt installiert ist, kann man unter Einstellungen > Sicherheit > Vertrauensw. Anmeldedaten im Reiter „Nutzer“ sehen :

Image00012

Ein erneuter Test mit dem WebClient zeigt, dass das Zertifikat nun installiert ist!

Image00018

Installation des Zertifikats auf iOS

Hier ist die Methode per Mail beschrieben. Dabei schickt man das oben erstellte Zertifikat an das gewünschte Gerät und öffnet in der Mail das Zertifikat:

Image00007

Dann auf Installieren klicken:

Image00001

Es gibt eine Warnung, weil es sich um ein selbstsigniertes Zertifikat handelt:

Image00002

Damit ist das Zertifikat installiert und einsatzbereit:

Image00003

Im zweiten Teil kommen wir dann zur Installation und Einrichtung der App selbst.

Weitere Ressourcen

Mindestanforderungen für die NAV Universal App: http://totovic.com/2015/11/01/nav-2016-universal-app-system-requirements/

Installation eines selbstsignierten Zertifikats auf Windows Phone: http://totovic.com/2015/10/22/how-to-install-nav-2016-phone-client-as-test-environment/