Auch nach Update auf SAP Business One 10 und Installation des aktuellen Integration Frameworks, generiert dieser wieder Zertifikate die von Apple iOS Geräten (iPhone/iPad) nicht akzeptiert werden. Sie lassen sich zwar installieren, aber weder Safari noch die SAP Business One App, stufen diese Verbindung als sicher ein.
Seit iOS 13 werden nur noch Zertifikate akzeptiert die als alternative Namen (alternate_names) den Servernamen/IP beinhalten.
Dies lässt sich in der openssl.cfg des Integration Frameworks konfigurieren, die openssl.cfg befindet sich unter (als Admin mit Editor/Notepad öffnen):
C:\Program Files\sap\SAP Business One Integration\IntegrationServer\Tomcat\webapps\B1iXcellerator\openssl\bin\
Unter [ v3_ca ] fügt man folgende neue Zeile hinzu:
subjectAltName = @alternate_names
unten am Ende der openssl.cfg fügt man folgende Definition hinzu (entsprechend euren Servernamen/IP eintragen):
[ alternate_names ]
DNS.1 = servername
IP.1 = 192.168.1.23
Speichern und dann kann im Integration Framework das neue Zertifikat generiert werden.
Dazu https://servername:8443/ im Browser aufrufen, einloggen und dann unter Tools -> Certificate Tool bei Domain Name nochmal den Servernamen eintragen und auf Create Certificate klicken.
Solltet ihr bereits versucht haben ein Zertifikat zu generieren, muss vorher einmal Reset Certificate angeklickt werden, um das bereits vorhandene Zertifikat zu löschen.
Anschließend auf dem Server den Dienst SAP Business One Integration Service neu starten.
Das neu generierte Zertifikat myCA.cer befindet sich im Ordner:
C:\Program Files\sap\SAP Business One Integration\IntegrationServer\Tomcat\webapps\B1iXcellerator\B1iCert\
Diese myCA.cer muss entweder per E-Mail an das iPhone/iPad gesendet werden oder über Safari herunter geladen werden. Ich habe die Datei per FTP auf meinen Webspace geladen und per Safari die URL zum Zertifikat aufgerufen (Firefox funktioniert nicht).
Anschließend muss das Zertifikat bzw Konfigurationsprofil unter Einstellungen -> Allgemein -> VPN & Geräteverwaltung installiert und unter Einstellungen -> Allgemein -> Info -> Zertifikatvertrauenseinstellungen zusätzlich aktiviert werden.
Jetzt sollte der Aufruf von https://servername:8443/ im Safari und somit auch die Verbindung der App ohne Zertifikat-Fehlermeldung funktionieren.
Ggf. noch in der xcellerator.cfg die Optionen xcl.safemode und xcl.http.localOnly von true auf false ändern.