Archiv für Kategorie Microsoft

Microsoft Outlook & RSS: “Der RSS-Inhalt kann von Outlook nicht über ‘https://…’ verarbeitet werden. Der Hyperlink zeigt möglicherweise nicht auf eine gültige RSS-Quelle.”

Unser Build-Server stellt einen RSS-Feed mit den letzten Subversion-Commits bereit. Nach einer internen Umstellung der Einstellungen ist der Feed dabei nicht mehr über HTTP sondern über HTTPS zu erreichen.
Wenn man nun versucht, diesen Feed in den internen Feed-Reader von Outlook aufzunehmen, erscheint die Fehlermeldung Der RSS-Inhalt kann von Outlook nicht über ‘https://…’ verarbeitet werden. Der Hyperlink zeigt möglicherweise nicht auf eine gültige RSS-Quelle..

Die Fehlermeldung deutet nicht an, was denn an dem RSS-Feed nicht stimmt. Ich wusste allerdings, dass der RSS-Feed vollkommen in Ordnung ist und das der Feed über HTTP richtig geladen wurde. Deshalb vermutete ich, dass mit dem selbst-signierten Zertifikat des Webservers etwas nicht stimmte.
Damit nun Outlook den Feed annimmt, muss das Zertifkat der Website im Zertifikate-Speicher installiert werden. Dazu hier das Vorgehen.

  • Im Internet Explorer die URL des Feeds aufrufen
  • Oben rechts in der URL-Leiste auf das rote Schild-Symbol klicken und Zertifikat anzeigen lassen
  • Im nun erscheinenden Zertifkat-Fenster im Tab Allgemein auf Zertfikat installieren klicken
  • Im Zertifikatsimport-Assistent auf Weiter, Weiter, Fertig stellen und Ja klicken
  • Outlook neu starten
  • RSS-Feed nochmal hinzufügen und glücklich sein

Update Unter Windows 7 kann je nach Active Directory-Einstellungen und Berechtigungen dieses Vorgehen nicht funktionieren, da der Button Zertifikat installieren im Internet Explorer deaktiviert ist. Das Zertifikat muss daher lokal gespeichert werden, z.B. als .DER-Datei.
Nach einem Doppelklick auf Datei erscheint der Button Zertifikat installieren. Das Zertifikat muss dann bei der Zertifikatespeicher-Auswahl unter “Vertrauenswürdige Stammzertfizierungsstellen” o.ä. installiert werden.

, , , , , , ,

1 Kommentar

Gelöst: Encoding-Probleme mit MS SQL und PHP

Seit letzter Woche habe ich mich mit einem äußerst ominösen Problem beschäftigt – wär ja sonst auch langweilig: Ich habe für einen Kunden ein Import-Script geschrieben, dass aus mehreren Text-Dateien die Daten in eine MS SQL Server 2005-Datenbank importiert.
Bei unseren Tests hier in der Firma funktionierte alles wunderbar, es gab keine UTF-8- oder sonstigen Zeichensatz-Probleme – die Umlaute wurden korrekt dargestellt.

Nun meldete sich der Kunde und teilte uns mit, dass die Umlaute falsch dargestellt wären. Aus einem “für” wurde ein “fnr” u.s.w. Ein Schelm, wer jetzt denkt, es würde an UTF-8 liegen. Daran lag es nämlich nicht.

Der Kunde setzte einen amerikanischen Windows Server 2003 und ebenfalls einen amerikanischen Microsoft SQL Server 2005 ein – wir hingegen hatten die jeweils deutschen Versionen eingesetzt. Lag es an den unterschiedlichen Länder-Einstellungen? Nein, daran lag es nicht – wie wir nach dem Aufsetzen der gleichen Maschine feststellten.

UTF-8-Probleme auf Seiten PHP konnte ich ebenfalls ausschließen, da sonst substr() aus dem “für” ein “fn” hätte machen sollen.

Über die Lösung des Problems bin ich mehr durch Zufall gestolpert: Das Tool cliconfig.exe (zu finden unter %WINDOWS%\system32) bietet unter dem Tab DB-Library Options die Option Automatic ANSI to OEM conversion. Auf unseren System war diese Option deaktiviert, beim Kunden hingegen aktiviert. Warum? Ganz einfach: die Datenbank beim Kunden lief vor einigen Monaten noch unter MS SQL Server 2000 und wurde dann auf SQL Server 2005 geupgradet. Die Standard-Einstellungen für o.g. hatten sich vom Versions-Wechsel anscheinend geändert und somit konnten wir eben nicht die exakt gleichen Bedingungen nachstellen.

Was für ein Gefrickel, aber: Wieder ein Problem weniger auf der Welt.

Update: Ganz wichtig in diesem Zusammenhang ist, dass das Umlautproblem nur auftritt, wenn das PHP-Script von der Kommandozeile aufgerufen wird. Der Aufruf des Scripts als ausgeführtes CGI-Script in einer Apache-/IIS-/…-Umgebung liefert die richtigen Resultate.

, , , , , , , , , , ,

Keine Kommentare

Sharepoint mit Apache als Reverse Proxy veröffentlichen

Heute stand ich vor der Aufgabe, dass unsere interne Sharepoint-Seite im Apache veröffentlicht werden sollte. An sich hätte das kein Problem sein sollen – war es im Endeffekt aber.

Bei uns schaut es schematisch so aus, dass der Apache alle Anfragen anhand des Domain-Namens auf die virtuellen Server weiterreicht bzw. als Proxy fungiert: Internet -> Apache / DMZ -> Virtueller Host / Backend Server.

Anhand des Blog-Eintrags von Todd Klint den Sharepoint-Service so eingerichtet, dass er auf die richtige URL lauscht. Die Konfigurationsdatei des virtuellen Hosts sah dann folgendermaßen aus:

<VirtualHost *:443>
SSLEngine On
SSLProxyEngine On
SSLCertificateFile "$CERT_FILE"
SSLCertificateKeyFile "$CERT_KEY_FILE"
SSLProxyCACertificateFile "$CERT_CA_FILE"
ProxyRequests Off
ProxyVia On

ServerAdmin admin@sps.mydomain.com
DocumentRoot $VHOST_DIR/sps/web
ServerName sps.mydomain.com:443
ErrorLog "|rotatelogs.exe $VHOST_DIR/sps/logs/%Y%m%d_ssl_error.log 86400"
CustomLog "|rotatelogs.exe $VHOST_DIR/sps/logs/%Y%m%d_ssl_access.log 86400" common

# AddDefaultCharset ISO
LogLevel debug
ProxyPreserveHost Off
KeepAlive Off

ProxyPass /  http://backend-srv:8080/
ProxyPassReverse /  http://backend-srv:8080/

<Proxy *>
Order allow,deny
Allow from all
</Proxy>

<Directory "$VHOST_DIR/sps/">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

Es ist noch zu sagen, dass der Sharepoint nicht mit HTTPS sondern mit Plain-HTTP läuft. Der Apache kümmert sich um die Verschlüsselung. Im IIS muss außerdem als Authentifizierungsmethode für die Sharepoint-Seite Standardauthentifizerung und nicht Integrierte Windows-Authentfizierung benutzt werden. Apache 2.0.63 kam bei mir mit der Benutzung von NTLM nicht klar.

Ein weiterer Fehler der auftrat war, dass der Sharepoint-Server über zwei Netzwerkkarten verfügte, die zu veröffentlichende SharePoint-Instanz aber an keine IP fest gebunden gewesen ist. Der Apache hatte Probleme damit arge Probleme (sporadisches "Verbindung fehlgeschlagen"), deshalb habe ich die SP-Instanz einer IP direkt im IIS zugewiesen.

, , , , , , , , , ,

Keine Kommentare

Rautiges 2009-05-26

  • Samstag ging es spannend in Wolfsburg zu. Den Mittag über verfolgte ich auf n-tv die Wahl zum Bundespräsidenten. Interessanterweise erfuhr ich heute, dass Lammerts Verhalten nach bzw. während der Wahl für ein Nachspiel sorgt.
    Nach der Wahl lernte ich Mathe weiter und machte mich gegen 15 Uhr auf in die Wolfsburger Innenstadt. Was da los war, war echt unglaublich. Und gegen 17.15 Uhr wurde der Traum eines jeden Wolfsburger Fußball-Fan wahr: Vfl wurde deutscher Meister. Die Stimmung war natürlich fantastisch, ich machte mich aber wieder auf den Weg zurück zur Wohnung.
    Zu später Stunde holte ich dann einen volltrunkenen Timo von der Bushaltestelle ab und fuhr ihn noch zu Lippe.
  • Das Modul “Mathematisch-logische Grundlagen” geht in die heiße Phase. Die meisten Aufgaben – bis auf 3 – habe ich eingereicht und sind soweit in Ordnung. Seit Donnerstag sitze ich an der Zusammenfassung aller Kapitel. Großer Vorteil: Beim zweiten Mal lesen verstehe ich die Texte wesentlich besser :)
    Nächstes Wochenende folgt dann Abschlusstest und Online-Klausur, damit ich am 19. Juni meine Klausur in Witten schreiben kann.
    Das nächste Modul wird wohl Web-Design werden und zusätzlich nebenbei noch Mathe 1. Mit M1 werde ich mir aber keinen Stress machen, so wie ich das bei MLG gemacht habe.
  • Florian ist momentan dabei, eine eigene kleine Ubuntu-basierende Distribution zusammenzustellen. Diese lädt nach dem Start EFA, Elektronisches Fahrtenbuch – ein Tool für Rudervereine, und sichert automatisch die EFA-Datenbank auf hot-plugged USB-Sticks. Dabei kam dann heraus, dass VirtualBox und VMWare massive Probleme beim Durchreichen von USB-Geräten haben. Ubuntu 8.10 bzw. der Kernel der 8.10er verliert nach einigen Sekunden die Verbindung zu den USB-Geräten.
    Sobald das Projekt abgeschlossen ist, wird Florian hoffentlich die Anleitung dazu auf seinem Blog veröffentlichen.
  • Nur damit ich es nicht vergesse: Auf SlickTools gibt es zwei .NET CF 2.0 Anwendungen. Eine ist ein mobiles Metronom, die andere eine Stoppuhr. Beides werde ich bei den nächsten Bandproben mal einsetzen.
  • Auch für nächsten Monat sind einige kleine Anschaffungen geplant:
    • Steckdosenleiste mit Überspannungsschutz für Server, Router und Kabelmodem. Ich trau’ dem Blitzableiter im Haus nicht.
    • Roland Micro Cube für das Üben in der Wohnung. Hab kein Nerv, immer mein MG 30 DFX mit nach oben zu schleppen. Und ohne Verstärker E-Gitarre zocken ist langweilig.
    • Eventuell ein Mikrofonständer. Da bin ich aber noch am Überlegen, ob ich so etwas wirklich brauche. Im Proberaum haben wir die Ständer.
    • Neues Server-Board. Da drücke ich mich noch vor. Bin am Überlegen, ob ich mir nicht doch ein Ion hole oder eines von den neuen Intel Embedded-Boards.
  • Bandmäßig schaut es so aus, dass Dennis nun als Bassist(in) mit an Bord ist. Am Vatertag haben Jan und ich ein kleines Akustik-Gitarren-Konzert gegeben, was meiner Meinung nach ganz okay war.

, , , , , , , , ,

2 Kommentare

In aller Kürze: Unter Linux WAV zu MP3s konvertieren

Nach der gestrigen Bandprobe bekam ich unsere Samples als WAV zugeschickt. Als ich mit lame versuchte, die Dateien mit lame in.wav out.mp3 zu konvertieren, bekam ich den Fehler Unsupported data format: 0×0011. Der Fehler enstand dadurch, dass die WAV-Datei mit einer Kamera aufgenommen wurde. Die Kamera wandelt den Audio-Stream automatisch nach Microsoft ADPCM und nicht pures PCM um. Außerdem wird eine Sample Rate von 8000 Hz benutzt. Ungünstig.

Mit ADPCM kommt hingegen ffmpeg klar. Leider ist aus lizenzrechtlichen Gründen in den Binaries von Ubuntu der MP3-Outputstream nicht mit kompiliert wurden. Deshalb braucht man einen zusätzlichen Konverter, wie z.B. Bladeenc.

Damit nun alles funktioniert und Bladeenc nicht den Fehler ERROR: Sample ‘sample.wav’ is not in 32, 44.1 or 48 kHz!
meldet, muss folgendermaßen vorgegangen werden:

ffmpeg -y -i sample_low.wav -ar 44100 sample_high.wav
bladeenc sample_high.wav sample.mp3

, , ,

Keine Kommentare

Microsoft Tag – 2D Barcode – Protokollanalyse und Sicherheit

Marc berichtete gestern über Microsoft Tag. Tag ist ein 2D-Barcode, der mittels 4 verschiedenen Farben und deren Kombinationen einen Hash bildet.
Mit der Kamera des Handys wird der Tag aufgenommen und dann an einen Microsoft-Server geschickt. Dieser überprüft, ob der Hash registriert ist und liefert an den Client zurück, ob dieser Hash existiert. Hinter einem Hash kann sich ein Link, ein Freitext, eine Telefonnummer oder eine vCard verbergen.
Wenn der Hash existiert, werden eben diese Informationen zurückgesendet. Das Prinzip ist also ganz simpel.
Mir stellte sich nun die Frage, wohin gehen denn überhaupt die Daten und was wird an den Client gesendet?

Zur Überprüfung schloss ich mein HTC Touch Diamond mittels USB-Kabel an den PC an, startete Wireshark und schaute mir die Verbindungen an.
Sobald das Handy eine Anfrage an den Server stellt, wird an rs.tag.microsoft.com über TCP/80 (normales HTTP) ein GET-Request gesendet. Der GET-Request sieht folgendermaßen aus

GET /6FADWESYVPYSPHHQ5TMKHGSWF3ODWWRP.aspx?Level=1&amp;amp;amp;amp;amp;amp;VID=1%2B71&amp;amp;amp;amp;amp;amp;TH=_%2BxrkrK8F013hNEWheA%24&amp;amp;amp;amp;amp;amp;PL=zqMa3C48QBs_4fI9cRZKGpvix1XhvxuqEQ1eFlqKqwlbXzl%2BgvWxM7zTaq0xRFcdWuneeC5VRGuYitVRubwb1kswVAc19dpoJDZEf5HpqlbHvw7WPzpVYibwvX02LygEnOXbXbTbeM04VzICWva2GVdYXXKekdxPvL8evEZbJG5Xi8t9PUlVHOL_yS_dsXi2XT5cejeRsGArLzVpkvjcPLyyG6csBzoOTeHuKiZLTnKYgLcyxqMQvDQtIQ5J6rYFW19SZ4r1

rs.tag.microsoft.com liefert danach dann

<PAYLOAD><NAME>Deine</NAME><PIN>0</PIN><DATA>r6QEsUVaVGZOm9MVWDszHo_0vTzeonHOUytWESKQ3gVLLjl5kfK5IsvFGaJYLDsDGqrrMzErE1C3rNcrtKwYrE1J</DATA></PAYLOAD>

zurück.

Um etwas strukturierter an die Sache zu gehen, hier die Tests mit den einzelnen Typen.

Dialer

Request:

GET /7KDWMBOYE474DQA7PMH5KVDLDK4SGSZJ.aspx?Level=1&VID=1%2B71&TH=_%2BxrkrK8F01ahPoWheA%24&PL=tr8e2zMtRBU68uguaBwhGIz43Bv8ujayaxlTASP4zA8jQz15n%2BS1PbnAcL4oTjwfTfPFZDNOQ3PinthGwM580DMsUAAo5N5mISVebIjjwVTQpRXKIiFSelzksGpPXU8C5PnfWqnKfMM9RCgRQ_zdG0BCRm6DittXxqsTqz8pQ2gvl896IFhREufs0zzEuxO0SiRHZiqKt3hROzh%2B64q7OsSuH6AxFj4ASPL0OT9BJXCPmqwu27gXpE45LBkwmNEDI0NWYJfk

Response:

<PAYLOAD><NAME>Dialer</NAME><PIN>0</PIN><DATA>r6QEsUVaVGZOm9MVWDszHo_0vTzKymK1QjZaFzWG3RpKMy9onPusWcm3GKpCPVd5TvK9biFaSXqGgLRSycY$</DATA></PAYLOAD>

vCard (ohne Passwort)

Request:

GET /DYMDUQZA5HDH3KXOEV7X5DPS7S4U2ZSN.aspx?Level=1&VID=1%2B71&TH=_%2BxrkrK8FE1lhPwWheA%24&PL=utsO1EIiWgwg8OM9CRszE46boA79tyW5aQpEF1LpqREvJy127uurJKPCe61JSS4UT%2BW5fDJDSHjgjc9Qsd8Zzj9IQA9Z68B_OydVf%2Bnk01_Ss2nSIyxZcV73p3w%2BTCoc6J3PVdjFYtonRiMCIvvPEEJUOnaCh9BcxLgEvU44JnYj8991UVdPC_3u2C%2BlvAG_SDI7fiuHvHNTKC9ompveJMjKD69AGSAZUvD_Kl5GN3uNjNA22rUcr0wqOw9BibQdLydGb%2Bbr

Response:

<PAYLOAD><NAME>vCard unprotected</NAME><PIN>0</PIN><DATA>r6QEsUVaVGZOm9MVWDszHo_0vzrHpAndKDpLHSSHyAZULyRvgP+wN7DHcbFDPjsFOoTMGCswJXWBifsdzb0Pp1A4Sw9CjLRFaC8oCJezj3z7niaDZBR7HS2o_1FiZXxun5PHapHbEKVEKUZpKunHdUo9OxjV2KUqwdIJ3F0zIn43lNINNhJ0aO6Ryj7FrQqgWChJEU3WlwFeK1obio6qQKjLetIqMxw_S4bRfUogOAXwx+M8y7cErTw+XAA27sQbUCU4coD_0wSelQ2CYw8rIxrjiFxUKCIOhY63Rd_EcqJaMTs$</DATA></PAYLOAD>

URL

Request:

GET /7JGMIVQUKMNDPCW5ET5CRG4JP4KB35LK.aspx?Level=1&VID=1%2B71&TH=_%2BxrkrK8FE1mhNkWheA%24&PL=sNsc3yQ5RQU%2B9IVKZBI5d%2B6Q2HmepDnPZWwqF1zsxQclJz99iPC0Lb3GHdokQCRwL%2B7BClFOSA7s66FQv9p12DVIUgQ_8N92JSMzCITt2TuyuBGkQCFZB1KRyXwwSUYK4p3dXr7efdM5QkV1T_LFdCJfQgDhitAqyN5qvUA9SmAp881%2BN0xQAuPqvljItQvbKDlDCEiKvAVfTkFolJ6yMsLKHaQmAj8QTPSZXTNPPR_th6hAubgc2UBMVQ9PjNgLJSdUZIDw

Response:

Location: http://wap.ecw.de

Hier eine kurze Anmerkung: Bei einer URL wird im HTTP-Header ein Location-Feld zurückgeliefert. Sobald der Tag mit der Software geladen wurde und Microsoft die Antwort liefert, wird der Standard-Browser des Handys aufgerufen – ohne Nachfrage! Sicherheitstechnisch äußerst bedenklich – man stelle sich nur mal vor, dass man z.B. eine Bank mit einer falschen URL taggt. Der Benutzer nimmt das Tag auf, der Browser öffnet sich und der Nutzer sieht die gefälschte Bank-Seite.

vCard (mit Passwort)

Request:

GET /KV4PWBAKHRXTHEGERKNRYY3YKY4PIMYZ.aspx?Level=1&VID=1%2B71&TH=_%2BxrkrK8FE1shOYWheA%24&PL=u6Ad3j4pJwMiiPcxZAsqBO2GzWTuvHS7FghEEkeI3g4uXD58kuDWK6G6b6EkWTcDLPjUCSFXN3qfj89VpL5u0T4zUwUl4L1wOV9Bc4T0ykixrgSnMDgmcyH1p3krLV0D6ebcX6TOH9UlPjcOT%2BvWByFJVwORk69eu7oEuFtZUWkiiMx_LVwyBP%2BWzCPIrBioKy9WCziTw3EsKi9tj_qpO8mxHKU8El0WUIjrJjNWLmzukb1DyaFjrTMoOwpU6MMCLlxVZZrg

Response:

<PAYLOAD><NAME>vCard protected</NAME><PIN>1</PIN><DATA>s61ur1A7XGooj8JqXDc9HIPlxTnMvxujU1pdGjOKug5IJk5xlZ64O9bTYM5HMjUHNpW2GyArNwv66e0a2rB9r0wxIRFX7bxJDjs5d5O_gX73j1yAbw9pY1bI6VZ1aA5mg5qtdIS6GKkiPVcWLuXJd0YsQRvew7dUurIf20o+UHYrnbgTI3N8ZIiF20HBoQSiVDkzEkbNhX8lS0wcnYPYSLTCEMw_UhQzLZLAAk4sNgf81pk_wKwW00deSgch47YTTCxSbJWe2wj4gRz9ZwMlIRby8l9fMzBw_u6hQsjJAKpGOFE$</DATA></PAYLOAD>

Freitext
Request:

GET /I6YA3RA6VSFCYMAO5AI7XYQAZKBJNJZD.aspx?Level=1&VID=1%2B71&TH=_%2BxrkrK8FE1vhN4WheA%24&PL=pKQToEA4JxxD7IQ6exQsDI2Iwh3ipma9bA9VGUCIqQsxWDAC7PHWNMDeHKo7RjELTPbbdS1MSHzliN5eo74Z1CE3XXtb8b1vWDsyeJvrzEDRoAvbPCNZdVvytnIsLSoG9uLSIdrfH8pEWkQFUPTQD0FHWH%2BdiNBYwb0Vs1xZJmw9jMIBU00yG57yvyjXsx6gSyFZdzSIvHdWLT5miPrePta1EttCA10JMeyYLSxJKGSOn7I_xbocq0kvKgFT6LQHMVhbG%2BTx

Response:

<PAYLOAD><NAME>Free Text</NAME><PIN>0</PIN><DATA>r6QEsUVaVGZOm9MVWDszHo_0vTzeonHOUytWESKQ3gVLLjl5kfK5IsvFGaJYLDsPHq_pOTExB1i37Mo4z70FoCc$</DATA></PAYLOAD>

Anmerkungen
Die zu ladende Datei (….aspx) und der GET-Parameter “TH” ergeben eventuell die ID. Ich habe zwei verschiedene Schnappschüsse des FreeText-Tags gemacht und jedesmal war die ASP-Seite und der TH-Parameter identisch. Der PL-Parameter änderte sich hingegen. Liefert Microsoft da eventuell irgendwelche GPS-Koordinaten mit? Ich kann leider die Daten nicht entschlüsseln – die Strings scheinen zwar Base64-codiert zu sein. Ein Encoding brachte aber kein verwertbares Ergebnis.

Vielleicht kann irgendwer mit diesen Erkenntnissen etwas anfangen. Viel interessanter fände ich es, wenn man seinen eigenen Tag-Provider hinterlegen könnte und wenn das Protokoll vor allem offen und standardisiert wäre.

Btw: Mit Hilfe des Tags könnte man z.B. eine Türklingel für das Eingangsschild der Wohnung realisieren: Tag an das Namensschild, Gast ent-taggt das Foto, Windows Live ruft eine URL auf dem Home-Server des Gastgebers auf. Das dahinter-hinterliegende Script startet den Musik-Player… Eigentlich ganz cool :)

, , , , , , , , ,

Keine Kommentare