Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
centos:mail_c6:autoconfig_3 [04.06.2013 06:55. ] – [2. Bsp.: komfortablere Konfigurations-Webseite] django | centos:mail_c6:autoconfig_3 [22.07.2019 15:03. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Autokonfiguration von Apple iPhone, iPad oder iPod ====== | ||
+ | Im Gegensatz zu den beiden anderen Konfigurationsbeispielen, | ||
+ | |||
+ | Diese Konfigurations-Profile erstellt man mit dem **iPhone-Konfigurationsprogramm** welches man auf der Webseite von http:// | ||
+ | |||
+ | Alternativ kann man natürlich auch mit dem Editor seiner Wahl, eine vorhandene Konfigurationsdatei bearbeiten und der eigenen Installationsumgebung anpassen. Hilfreiche Informationen zum Aufbau und zu den Feldern soch einer Konfigurationsdatei, | ||
+ | |||
+ | ===== vHost für Apache einrichten ===== | ||
+ | Bevor wir uns nun mit der Erstellung einer **.mobileconfig** XML-Datei befassen, richten wir uns noch einen passenden vHost auf unserem Webserver ein. Über diesen vHost werden wir dann in dern nachfolgenden Konfigurationsschritten unterschiedliche "// | ||
+ | |||
+ | Neben unserer Apache-Konfigurationsdatei benötigen wir natürlich noch ein entsprechendes Verzeichnis, | ||
+ | # mkdir -p / | ||
+ | |||
+ | Als nächstes definieren wir die notwendige Konfigurationsdatei für unseren vHost im Apache Konfigurationspfad // | ||
+ | # vim / | ||
+ | |||
+ | <file apache autoconfig.conf># | ||
+ | # host für Autoconfig der Apple-Welt unseres Dovecot | ||
+ | # | ||
+ | |||
+ | < | ||
+ | ServerAdmin webmaster@nausch.org | ||
+ | ServerName autoconfig.nausch.org | ||
+ | |||
+ | # Django | ||
+ | # Required, because there is a host with same ServerName and | ||
+ | # ServerAlias LISTENING ON PORT 80, - and if these lines are | ||
+ | # not present, and .htaccess-Files or LDAP-Access is enabled | ||
+ | # for one or more Directory the host on PORT 443 and PORT 80 | ||
+ | # will ASK for .htaccess ord LDAP-Access, | ||
+ | # ---------------------------------------------------------- | ||
+ | # -- DO NOT DELETE THE FOLLOWING LINES, STARTING WITH SSL -- | ||
+ | # -- WHEN USING .htaccess or LDAP-Access! | ||
+ | # ---------------------------------------------------------- | ||
+ | SSLEngine on | ||
+ | SSLProtocol -ALL +SSLv3 +TLSv1 | ||
+ | SSLCipherSuite ALL: | ||
+ | SSLCertificateFile / | ||
+ | SSLCertificateKeyFile / | ||
+ | SSLCertificateChainFile / | ||
+ | |||
+ | ServerPath / | ||
+ | DocumentRoot "/ | ||
+ | < | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride All | ||
+ | Order allow,deny | ||
+ | Allow from all | ||
+ | < | ||
+ | AddType application/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | DirectoryIndex index.html | ||
+ | |||
+ | ErrorLog logs/ | ||
+ | CustomLog logs/ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Bevor wir nun noch unsere Konfigurations scharf schalten, überprüfen wir noch unsere gerade angelegte Konfiguration unseres vHost einer syntaktischen Prüfung. | ||
+ | # service httpd configtest | ||
+ | |||
+ | | ||
+ | |||
+ | Da die Prüfung positiv ausfällt, starten wir unseren Webserver einmal durch. | ||
+ | # service httpd condrestart | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | |||
+ | ===== DNS-Eintrag ===== | ||
+ | Damit die Apple-Anwender über eine DNS-Abfrage unseren neuen vHOST finden können, ist natürlich unser Apache-vHost ein passender Einträge notwendig. | ||
+ | Für den **ServerName** aus unserer vHost-Konfiguration definieren wir dann beim zuständigen Nameserver einen A-Record: | ||
+ | | ||
+ | |||
+ | Unsere Konfiguration aktivieren wir dann noch, nachdem wir die **serial**-Nummer im Configfile entsprechend angepasst haben. | ||
+ | # rndc reload | ||
+ | |||
+ | | ||
+ | |||
+ | ===== Konfigurationsbeispiele ===== | ||
+ | ==== 1. Bsp.: einfache XML-Konfigurationsdatei ==== | ||
+ | In der einfachsten Grundvariante erstellen wir uns eine XML-Datei, mit Hilfe derer ein Anwender seinen Mailaccount einrichten kann. Von Seiten des Anwenders sind dann noch folgende Daten von Hand einzutippen: | ||
+ | - **vollständigen Namen** für den eMail-account, | ||
+ | - **eMail-Adresse** z.B. // | ||
+ | - **Benutzernamen für eingehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | - **Kennwort** für eingehende eMails, z.B. // | ||
+ | - **Benutzernamen für ausgehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | |||
+ | Die Konfigurations-Definitionen unseres Mailservers hinterlegen wir nun in einer einfachen XML-Datei, nach folgendem Musterbeispiel. Wichtig hierbei ist, dass der Dateiname auf **__.mobileconfig__** endet, damit das **iPhone|Pad|Pod** die Konfgurationsdatei als solche auch verstehen kann. | ||
+ | |||
+ | # | ||
+ | <file XML vim / | ||
+ | < | ||
+ | <plist version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | Zum Testen unserer Konfiguration rufen wir nun auf dem Apple-Endgerät mit dem Webbrowser **// | ||
+ | | ||
+ | |||
+ | Das heruntergeladene Profil wird uns angezeigt. Das Profil ist natürlich nicht signiert, daher auch der rote Hinweis < | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier tippen wir auf die Schaltfläche **[Installieren]**. Als nächstes folgt ein Hinweis für den Nutzer: //Die Installation dieses Profils ändert die Einstellungen auf Ihrem iPad.// Da wir ja unseren Mailclient einrichten möchten, tippen wir nun auf die Schaltfläche **[Installieren]**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Auf den folgenden Fenstern geben wir nun die oben genannten noch fehlenden Angaben ein. | ||
+ | - **vollständigen Namen** für den eMail-account, | ||
+ | - **eMail-Adresse** z.B. // | ||
+ | - **Benutzernamen für eingehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | - **Kennwort** für eingehende eMails, z.B. // | ||
+ | - **Benutzernamen für ausgehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | |||
+ | Mit einem abschließendem Tippen auf die Schaltfläche [**Weiter**] kommen wir zur letzten Anzeige. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Mit Anwählen der Schaltfläche [**Fertig**] ist die Konfiguration unseres Mailclients abgeschlossen. | ||
+ | |||
+ | <WRAP round tip> | ||
+ | |||
+ | - So richtig komfortabel ist, das noch nicht, sind doch noch viele Eingaben am Apple-Gerät notwendig. | ||
+ | - Der rote Hinweis < | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 2. Bsp.: komfortablere Konfigurations-Webseite ==== | ||
+ | Im vorangegangenem Beispiel mussten am Apple-Gerät noch sehr viel Eingaben und teilweise auch doppelt gemacht werden. In dem nun folgendem Beispiel werden dies ein wenig vereinfachen. | ||
+ | |||
+ | Folgende Daten fragen wir auf einer Webseite ab, von der sich der Anwender dann seine // | ||
+ | - **vollständigen Namen** für den eMail-account, | ||
+ | - **eMail-Adresse** z.B. // | ||
+ | - **Benutzernamen für eingehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | - **Benutzernamen für ausgehende eMails**, in unserem Fall entsprecht der Nutzername, der eMail-Adresse, | ||
+ | |||
+ | Da in unserer Konfiguration die Punkte **2**, **3** und **4** identisch sind, benötigen wir vom Anwender lediglich zwei Angaben, nämlich: | ||
+ | * **vollständigen Namen** | ||
+ | * **eMail-Adresse** | ||
+ | |||
+ | Das **Kennwort** darf dann der Benutzer selbst am Apple-Endgerät eingeben. Soweit, so gut, aber was benötigen wir zur Realisierung dieses Beispiels genau? Im Prinzip ist das ganze kein Hexenwerk und relativ einfach zu realisieren, | ||
+ | |||
+ | === Vorlage-XML-Datei === | ||
+ | Im ersten Schritt werden wir nun die benötigte Vorlagedatei erstellen und diese auf unserem Webserver hinterlegen. Hierzu legen wir uns nun auf unserem Webserver ein Verzeichnis an. | ||
+ | # mkdir / | ||
+ | |||
+ | Damit unser Systemuser auch dort die Datei lesen kann, passen wir die User und Gruppenrechte dieses Verzeichnisses an. | ||
+ | # chown apache.root / | ||
+ | |||
+ | # chmod 770 / | ||
+ | |||
+ | Nun erstellen wir uns die Vorlagedatei. Wie Eingangs schon erwähnt, werden wir für die benötigten Daten Variablen festlegen, die dann später mit den entsprechenden Werten befüllt werden sollen. | ||
+ | * **vollständigen Namen** entspricht **// | ||
+ | * **eMail-Adresse** entspricht **// | ||
+ | |||
+ | # vim / | ||
+ | <file XML / | ||
+ | < | ||
+ | <plist version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === PHP-Webseite === | ||
+ | Zur Abfrage der beiden Werte **vollständigen Namen** sowie **eMail-Adresse** und dem Einfügen in die Vorlagedatei benutzen wir nun ein kleines PHP-Scripts. (Hilfreiche Informationen, | ||
+ | |||
+ | Mit dem Editor unserer Wahl legen wir uns nun auf unserem Webserver im Webspace nachfolgende Datei an. Die Angaben im **HEADER**, im Teil **FORMULAR** und **FOOTER** passen wir natürlich individuell an! | ||
+ | # vim / | ||
+ | |||
+ | <file PHP / | ||
+ | <?php | ||
+ | // Definition der Variable $conf mit Angabe, wo das template-file liegt | ||
+ | $conf = file_get_contents('/ | ||
+ | // Die beiden abgefragten Werte an den entsprechenden Stellen in der | ||
+ | // Profil-Datei einfügen | ||
+ | $conf = str_replace(' | ||
+ | $conf = str_replace(' | ||
+ | // header für Download setzen | ||
+ | header(' | ||
+ | header(' | ||
+ | // Ausliefern der Profil-Datei mit dem Namen iPMC.mobileconfig | ||
+ | print $conf; | ||
+ | ?> | ||
+ | <?php else: ?> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <meta name=" | ||
+ | </ | ||
+ | < | ||
+ | <!-- ********** HEADER START ********** --> | ||
+ | <h2> | ||
+ | <a href=" | ||
+ | eMail-Services bei nausch.org | ||
+ | </h2> | ||
+ | <p> | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | </p> | ||
+ | < | ||
+ | <br> | ||
+ | <!-- ********** HEADER ENDE ********** --> | ||
+ | <!-- ********** FORMULAR START ********** --> | ||
+ | <form method=" | ||
+ | <p style=" | ||
+ | Zum Erstellen Deiner individuellen AutoKonfig-Datei f& | ||
+ | nun noch ein paar Angaben. Trage in die beiden Felder die gew& | ||
+ | erscheint dann bei der eMailadresse links neben der eMail-Adresse.< | ||
+ | <br> | ||
+ | Bsp.:< | ||
+ | < | ||
+ | ergibt:< | ||
+ | < | ||
+ | Zum Erstellen Deiner Konfigurationsdatei klicke bitte auf die Schaltfl& | ||
+ | <br> | ||
+ | <br> | ||
+ | < | ||
+ | < | ||
+ | <br> | ||
+ | <br> | ||
+ | <input type=" | ||
+ | </ | ||
+ | </ | ||
+ | <!-- ********** FORMULAR ENDE ********** --> | ||
+ | <!-- ********** FOOTER START ********** --> | ||
+ | <hr> | ||
+ | <!-- ********** FOOTER ENDE ********** --> | ||
+ | </ | ||
+ | </ | ||
+ | <?php endif ?> | ||
+ | </ | ||
+ | |||
+ | === Test === | ||
+ | Zum Testen unserer Konfiguration besuchen wir mit dem Webbrowser **Safari** die URL unseres Konfigurators: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nach Eingabe der Daten und Anwahl der Schaltfläche [**Senden**] fällt uns, bei Eingabe der notwendigen Daten in die beiden Felder, z.B. folgende Profil-Datei entgegen. | ||
+ | |||
+ | <file XML iPMC.mobileconfig> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | <plist version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | Am Apple-Endgerät wird uns entsprechend das heruntergeladene Profil angezeigt. Das Profil ist natürlich nicht signiert, daher auch der rote Hinweis < | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über den Menüpunkt [**Mehr Details**] findet man weitere Angaben zu den Inhalten des Konfigurationsprofils. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Auf die vorherige Seite kommen wir zurück über den Menüpunkt [**Profil installieren**]. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die Installation des Konfigurationsprofils starten wir nun über die Anwahl der Schaltfläche [**Installieren**]. Auf dem nun erscheinenden Fenster geben wir unser Passwort für den Mailaccount ein. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nach Anwahl der Schaltfläche [**Weiter**] baut der Client eine Verbindung zum Mailserver auf und testet, ob mit den angegebenen Daten eine Anmeldung möglich ist. Nach Abschluß dieses Tests wird uns der Erfolg bestätigt. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Mit Anwählen der Schaltfläche [**Fertig**] ist die Konfiguration unseres Mailclients abgeschlossen. | ||
+ | |||
+ | Als Erfolgskontrolle können wir nun den Apple-Mailclient aufrufen und bei bedarf unsere Mails abrufen bzw. natürlich auch verschicken. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | <WRAP round tip>Bei diesemKonfigurationsbeispiel ist nun die Einrichtung am Apple-Endgerät wesentlich einfacher und anwendungsfreundlicher. | ||
+ | |||
+ | Den mit unter Umständen verwirrenden roten Hinweis < | ||
+ | Der Transportweg des Konfigurationsprofils erfolgte zwar verschlüsselt von der Seite https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 3. Bsp. komfortablere Konfigurations-Webseite mit signierte Profildatei ==== | ||
+ | Wie schon im zweitem Beispiel, wollen wir hier nun dem User eine individuelle **// | ||
+ | |||
+ | Dazu fragen wir auch hier seine Daten ab: | ||
+ | * **vollständigen Namen** für den eMail-account, | ||
+ | * **eMail-Adresse** z.B. // | ||
+ | |||
+ | Das **Kennwort** darf dann der Benutzer selbst am Apple-Endgerät eingeben. | ||
+ | |||
+ | Wie schon beim vorherigen Beispiel benötigen wir eine Vorlagedatei und eine Webseite auf der wir den **vollständigen Namen** und die **eMail-Adresse** abfragen. Diese Werte fügen wir dann in die Vorlagedatei ein, **signieren** diese Datei mit einem [[http:// | ||
+ | |||
+ | === Vorlage-XML-Datei === | ||
+ | Wie in den beiden anderen Beispielen, werden wir nun die benötigte Vorlagedatei erstellen und diese auf unserem Webserver hinterlegen. | ||
+ | |||
+ | Wie Eingangs bereits erwähnt, werden wir für die benötigten Daten Variablen festlegen, die dann später mit den entsprechenden Werten befüllt werden sollen. | ||
+ | * **vollständigen Namen** entspricht **// | ||
+ | * **eMail-Adresse** entspricht **// | ||
+ | |||
+ | # vim / | ||
+ | <file XML / | ||
+ | < | ||
+ | <plist version=" | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | === PHP-Webseite === | ||
+ | Wir legen uns nun ein kleines PHP-Script an, welches uns folgende Arbeit abnimmt. | ||
+ | - Abfragen der beiden Werte **vollständigen Namen** sowie **eMail-Adresse** | ||
+ | - Einfügen der Daten in die Vorlagedatei | ||
+ | - Signieren der Profildatei mit einem x.509 Zertifikat | ||
+ | - Transfer der signierten Profildatei zum User | ||
+ | Hilfreiche Informationen, | ||
+ | |||
+ | Mit dem Editor unserer Wahl legen wir uns nun auf unserem Webserver im Webspace nachfolgende Datei an. Die Angaben im **HEADER**, im Teil **FORMULAR** und **FOOTER** passen wir natürlich individuell an! | ||
+ | # vim / | ||
+ | |||
+ | <file PHP / | ||
+ | <? | ||
+ | // Vorlagedatei holen und Werte ersetzen | ||
+ | $template = file_get_contents("/ | ||
+ | // | ||
+ | //$template = fread($filehandle, | ||
+ | // | ||
+ | |||
+ | $template = str_replace(' | ||
+ | $template= str_replace(' | ||
+ | |||
+ | // Timestamp holen für Temp-Filename | ||
+ | $timestamp = microtime(true); | ||
+ | |||
+ | // generiertes Konfigfile (conf) in einer Datei speichern | ||
+ | $filehandle = fopen("/ | ||
+ | fwrite($filehandle, | ||
+ | fclose($filehandle); | ||
+ | |||
+ | // holen und vorbereiten des privaten Schlüssels aus einer Datei. | ||
+ | $filehandle = fopen("/ | ||
+ | $private_key = fread($filehandle, | ||
+ | fclose($filehandle); | ||
+ | $privatekey = openssl_get_privatekey($private_key); | ||
+ | |||
+ | // holen und vorbereiten des Signing-Zertifikates aus einer Datei. | ||
+ | $filehandle = fopen("/ | ||
+ | $certificate = fread($filehandle, | ||
+ | fclose($filehandle); | ||
+ | |||
+ | // Konfigurations mit signing-Zertifikat signieren | ||
+ | if (!openssl_pkcs7_sign ( | ||
+ | $certificate, | ||
+ | $privatekey, | ||
+ | array(), | ||
+ | 0 , | ||
+ | realpath('/ | ||
+ | ) | ||
+ | ) | ||
+ | die (" | ||
+ | |||
+ | // Privatekey aus Speicher löschen | ||
+ | openssl_free_key($privatekey); | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | // signierte base64 codierte Konfigurationsdatei holen und den nicht | ||
+ | // benötigten Headerteil entfernen | ||
+ | $signed_data = file_get_contents("/ | ||
+ | $decoded_data = base64_decode(preg_replace('/ | ||
+ | |||
+ | // Ergebnis in einer Datei sichern. | ||
+ | $fp = fopen("/ | ||
+ | fwrite($fp, $decoded_data); | ||
+ | fclose($fp); | ||
+ | |||
+ | $iPhoneSignedResponse = file_get_contents(' | ||
+ | |||
+ | // header für Download setzen | ||
+ | header(' | ||
+ | header(' | ||
+ | |||
+ | // Konfigurationsfile zum Client schicken | ||
+ | // unsigniertes Profil | ||
+ | //$template = file_get_contents("/ | ||
+ | // signiertes Profil von openssl | ||
+ | //$template = file_get_contents("/ | ||
+ | // signiertes Profil mit Hilfe PHP openssl | ||
+ | $template = file_get_contents("/ | ||
+ | echo $template; | ||
+ | |||
+ | // Temporäre Dateien löschen | ||
+ | //echo unlink("/ | ||
+ | //echo unlink("/ | ||
+ | //echo unlink("/ | ||
+ | |||
+ | ?> | ||
+ | <?php else: ?> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <meta name=" | ||
+ | </ | ||
+ | < | ||
+ | <!-- ********** HEADER START ********** --> | ||
+ | <h2> | ||
+ | <a href=" | ||
+ | eMail-Services bei nausch.org | ||
+ | </h2> | ||
+ | <p> | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | & | ||
+ | <a href=" | ||
+ | </p> | ||
+ | < | ||
+ | <br> | ||
+ | <!-- ********** HEADER ENDE ********** --> | ||
+ | <!-- ********** FORMULAR START ********** --> | ||
+ | <form method=" | ||
+ | <p style=" | ||
+ | Zum Erstellen Deiner individuellen AutoKonfig-Datei f& | ||
+ | nun noch ein paar Angaben. Trage in die beiden Felder die gew& | ||
+ | erscheint dann bei der eMailadresse links neben der eMail-Adresse.< | ||
+ | <br> | ||
+ | Bsp.:< | ||
+ | < | ||
+ | ergibt:< | ||
+ | < | ||
+ | Zum Erstellen Deiner Konfigurationsdatei klicke bitte auf die Schaltfl& | ||
+ | <br> | ||
+ | <br> | ||
+ | < | ||
+ | < | ||
+ | <br> | ||
+ | <br> | ||
+ | <input type=" | ||
+ | </ | ||
+ | </ | ||
+ | <!-- ********** FORMULAR ENDE ********** --> | ||
+ | <!-- ********** FOOTER START ********** --> | ||
+ | <hr> | ||
+ | <!-- ********** FOOTER ENDE ********** --> | ||
+ | </ | ||
+ | </ | ||
+ | <?php endif ?> | ||
+ | </ | ||
+ | |||
+ | === Signier-Zertifikat und -Schlüssel === | ||
+ | Zum Signieren der Profildateien benötigen wir noch ein passendes x.509-Zertifikat. | ||
+ | Sofern uns das Zertifikat und der dazu gehörige Schlüssel noch nicht einzeln vorliegt, können wir diese auch aus einem P12-Zertifikatscontainer extrahieren. | ||
+ | |||
+ | In den folgenden Schritten exportieren wir nun das Zertifikat und den Schlüssel aus dem Zertifikatscontainer, | ||
+ | |||
+ | - **Schlüssel exportieren: | ||
+ | MAC verified OK | ||
+ | Enter PEM pass phrase: | ||
+ | Verifying - Enter PEM pass phrase:</ | ||
+ | - **Keydatei normalisieren: | ||
+ | friendlyName: | ||
+ | localKeyID: 8E D8 F2 19 82 E6 6D 14 08 19 67 0B B6 70 33 C4 24 39 20 85 | ||
+ | Key Attributes: <No Attributes> | ||
+ | -----BEGIN ENCRYPTED PRIVATE KEY----- | ||
+ | MIIFDjBABgBur$1ck1$T31NV011IDI07BkiG9w0BBQwwDgQI9KkTgM0blTECAggA | ||
+ | MBQGCCqGSIb3DQMHBAj/ | ||
+ | ... | ||
+ | </ | ||
+ | MIIFDjBABgBur$1ck1$T31NV011IDI07BkiG9w0BBQwwDgQI9KkTgM0blTECAggA | ||
+ | MBQGCCqGSIb3DQMHBAj/ | ||
+ | ... | ||
+ | </ | ||
+ | - **Passphrase des Schlüssels entfernen**: | ||
+ | writing RSA key | ||
+ | </ | ||
+ | - **Zertifikat exportieren**: | ||
+ | MAC verified OK | ||
+ | </ | ||
+ | - **Zertifikat normalisieren**: | ||
+ | friendlyName: | ||
+ | localKeyID: 8E D8 F2 19 14 08 19 67 49 0B B6 70 33 C4 24 39 20 85 | ||
+ | subject=/ | ||
+ | issuer=/ | ||
+ | -----BEGIN CERTIFICATE----- | ||
+ | MIIFoDCCA4igAwIBAgIDDTYBMA0GCSqGSIb3DQEBBQUAMHkxEDAO7gNVBAoTB1Jv | ||
+ | b3QgQ0ExHjAcBgNVBAsT4Eh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ | ||
+ | Q0EgQ2VydCBTaWduaW5 | ||
+ | ... | ||
+ | </ | ||
+ | MIIFoDCCA4igAwIBAgIDDTYBMA0GCSqGSIb3DQEBBQUAMHkxEDAO7gNVBAoTB1Jv | ||
+ | b3QgQ0ExHjAcBgNVBAsT4Eh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ | ||
+ | Q0EgQ2VydCBTaWduaW5 | ||
+ | ... | ||
+ | </ | ||
+ | - **temporäre Dateien vernichten**: | ||
+ | === Test === | ||
+ | Zum Testen unserer Konfiguration besuchen wir mit dem Webbrowser **Safari** die URL unseres Konfigurators: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nach Eingabe der Daten und Anwahl der Schaltfläche [**Senden**] fällt uns, bei Eingabe der notwendigen Daten in die beiden Felder, z.B. folgende Profil-Datei entgegen. | ||
+ | https:// | ||
+ | |||
+ | Am Apple-Endgerät wird uns entsprechend das heruntergeladene Profil angezeigt. Da das Profil signiert wurde, taucht nun kein rote Hinweis < | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über den Menüpunkt [**Mehr Details**] findet man weitere Angaben zu den Inhalten des Konfigurationsprofils. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Tippt man auf die Schaltfläche [**Signierungszertifikat**] erhält man detailierte Informationen zum verwendeten Signierungszertifikat, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über die Schaltfäche [**Profil Installieren**] kommen wir zurück zum Installationsfenster. Wir werden nun nach dem Konfigurationspasswort des Apple-Gerätes gefragt. Diese geben wir hier ein. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nun geben wir das Anmeldepasswort des Mailservers ein, welches wir vom Mailserverbetreiber erhalten haben. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Nun ist die Konfiguration des Mailclients vollständig und wir können den Mailclient nutzen, ohne großen zusätzlichen Konfigurationsaufwand und der Kenntnis der dazu nötigen Konfigurationsparameter. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wir können auch das installierte Profil " | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | <WRAP round tip>Bei diesem Konfigurationsbeispiel ist nun die Einrichtung am Apple-Endgerät sehr einfach und anwendungsfreundlich zu installieren. | ||
+ | |||
+ | Der grüne Haken :OK: < | ||
+ | Der Transportweg des Konfigurationsprofils erfolgte dabei verschlüsselt von der Seite https:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ====== Links ====== | ||
+ | * **[[centos: | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||
+ | |||