Setting up a local SSL development environment for multiple sites

The environment should also work on a notebook while working at a coffee shop. The need for a NIC that is always connected. 1. Add a loopback adapter... [WIN] + [R] | hdwwiz.exe 2. Open the “Network and Sharing Center” … 3. Click “Change adapter settings” and identify the loopback adapter… 4. Rename the loopback adapter… 5. Open loopback adapter’s properties… 6. Disable IP v6… 7. Edit IP v4 settings and assign an IP Address… 8. Click advanced an add another IP address for each SSL-Site to be hosted… 9. Open “IIS Manager” and click “Server Certificates”… 10. Click “Create self signed certificate” for each SSL site to be hosted and choose the host name as friendly name… 11. Assign each site to be hosted a dedicated IP address plus certificate… 12. Associated IP addresses with host names in the hosts file (or install DNS Services when on Server 2008)… Done!

NRW Conf 09

Auch in diesem Jahr veranstaltet der Just Community e.V. wieder das größte Developer und IT-Pro Community Event. Unter dem Motto „Check-In zum Wissensvorsprung“ holen wir am 28.08.2009 zahlreiche nationale und internationale Speaker nach Wuppertal. Neben den Vorträgen haben Sie natürlich auch dieses Jahr wieder viel Zeit für das Networking mit anderen ITlern aus Nah und Fern. Alle Informationen, wie die Agenda und eine Übersicht über die Speaker gibt es unter http://www.nrwconf.de/. Wir freuen uns, Ihnen auch dieses Jahr sowohl bekannte Gesichter, als auch neue Speaker vorstellen zu dürfen. Die Veranstaltung wurde in diesem Jahr möglich durch unsere Sponsoren: Hewlett Packard, devcoach, Microsoft Deutschland, Brockhaus AG, Itemis AG, sepago GmbH, MT AG, sowie weiteren Unternehmen. Eine weitere Neuerung in diesem Jahr ist der Workshop Day, der am Vortag der eigentlichen Konferenz – sprich am 27.08.2009 – in den Räumlichkeiten unseres Sponsoren Ontaris GmbH stattfindet. Der Developer-Workshop befasst sich mit der Microsoft Web Platform und behandelt die Themen Rich Internet Applications mit Silverlight 3.0 und Web 2.0 Applikationen mit ASP.NET AJAX und JQuery. Die Workshops haben eine begrenzte Teilnehmerzahl (je acht) um den Lernerfolg zu garantieren. Also schnell einchecken…

Project Springboard

Am 5. Juni war ich als Sprecher beim “Project Springboard” zu Gast. Dennis Zielke und das Student Partner Team haben ganze Arbeit geleistet und ein Spitzen Event auf die Beine gestellt – nochmal nochmal nochmal! Mein Vortrag “IIS, PHP & WCF – Web Services InterOp” hat wirklich Laune gemacht und ist laut Feedback bester Vortrag der Konferenz – DANKE, IHR WARD EINE SUPER AUDIENCE!!!   Hier nun wie versprochen das Slide und der Code (PHP gehostet über FastCGI im IIS 7.0 ruft über SSL und Basic Athentication einen WCF Service mit einer Complex-SOAP-Message auf…): springbreak_IIS_PHP_und_WCF.zip

MSDN Germany - Security Editorial

Michael hat das Februar Editorial für das Security Portal von MSDN Germany geschrieben und wirft dabei interessante Vorschläge in den Raum: Wie wäre es, wenn bei den allseits bekannten Programmtests der Fachzeitschriften ein Non-Admin-Test hinzu käme? Wenn ein Programm auch danach beurteilt würde, ob es mit einem ganz normalen Benutzeraccount einwandfrei funktioniert? Meiner Meinung nach: Recht hat er. http://www.microsoft.com/germany/msdn/security/februareditorial.mspx

Encrypting Files using DPAPI

In one of my current projects (yes, there are more at the moment and yes that is the reason why it's a bit quiet around here) i neede to write an encrypted file to the hard disc using DPAPI (Data Protection API). After I unsuccessfully searched the web and the msdn (the sample reads all bytes to the buffer at once - not so nice), I wrote the following sample app: using System; using System.IO; using System.Security.Cryptography;   public class DataProtectionSample {     public static void Main()     {         using(MemoryStream ms = new MemoryStream())         {             StreamWriter swriter = new StreamWriter(ms);             swriter.WriteLine("Text to encrypt to file.");             swriter.Flush();               Console.WriteLine("Protecting data ...");             DataProtection.Protect("D:\\_temp\\DPAPI.dat", ms, false);         }         Console.WriteLine("Unprotecting data ...");         using(MemoryStream ms2 =             (MemoryStream)DataProtection.Unprotect("D:\\_temp\\DPAPI.dat", false))        {             StreamReader sreader = new StreamReader(ms2);             Console.WriteLine("");             Console.WriteLine("Decrypted string: " + sreader.ReadToEnd());         }         Console.ReadLine();     } }   public class DataProtection {     private static byte[] _additionalEntropy = { 9, 8, 7, 6, 5 };     private static int _bufferLength = 1024;       public static void Protect(string filename, Stream stream,         bool machineLevel)     {         if (File.Exists(filename))         {             File.Delete(filename);         }         using (FileStream fs = new FileStream(filename, FileMode.CreateNew))         {             byte[] buffer = new byte[_bufferLength];             long byteCount;             stream.Position = 0;             while ((byteCount =                stream.Read(buffer, 0, buffer.Length)) > 0)             {                 buffer = ProtectedData.Protect(buffer, _additionalEntropy,                     ((machineLevel) ? DataProtectionScope.LocalMachine :                     DataProtectionScope.CurrentUser));                 fs.Write(buffer, 0, buffer.Length);                 fs.Flush();             }         }     }       public static Stream Unprotect(string filename, bool machineLevel)     {         MemoryStream ms = new MemoryStream();                 using (FileStream fs = new FileStream(filename, FileMode.Open))         {             byte[] buffer = new byte[_bufferLength + 146];             long byteCount;               while ((byteCount =                fs.Read(buffer, 0, buffer.Length)) > 0)             {                 buffer = ProtectedData.Unprotect(buffer, _additionalEntropy,                     ((machineLevel) ? DataProtectionScope.LocalMachine :                     DataProtectionScope.CurrentUser));                 ms.Write(buffer, 0, buffer.Length);                 ms.Flush();             }         }         ms.Position = 0;         return ms;     } }      

Friday Night Andreas Hoffmann 2nd Lead Of The VfLNiederRhein User Group Picked Me Up Ad We Drove The Long Way Down To The

Friday night Andreas Hoffmann (2nd lead of the VfL-NiederRhein user group) picked me up ad we drove the long way down to the south.   Our destination for Saturday morning was the “Chaostage” event of the .NET user group Deggendorf  (http://dotnet-deggendorf.sefnet.de/). I had a session “Introducing the concepts and architecture of ASP.NET“ in the morning and a second one “Hello WebServices – Message-Oriented Programming for distributed systems” in the evening. We checked in at our hotel in Garching (I won’t tell the name but I’ll tell you a bit about the worst service). Because the waitress served me frozen potatoes with my steak I stood up and walked over to the bar. Just in this moment a voice behind me asked “Is this a codezone keychain? Are you gonna be at Microsoft on Monday?” It was Nicki Wruck (http://spaces.msn.com/members/icebloginfo/PersonalSpace.aspx) the organizer of the ICE 2005 Community together with Frank Solinske (http://spaces.msn.com/members/solinske/PersonalSpace.aspx) IT-Pro Security Guru. Only one nano-second later we drank the first beer together. The geek meet was so exciting that I was just about to forget the bad service of our hotel J Sunday we fetched Stephan Oetzel (http://stephanon.net/) in Poing. We picked up Michael Willers (http://www.staff.newtelligence.net/michaelw/) Developer Security Guru from the Airport to merge the Security guys in the “Hofbräukeller”. Uwe Baumann (http://blogs.msdn.com/uweinside/) discussed about technical stuff with Andreas and me meanwhile. Later Nicki joined us together with Nico Lüdemann (https://www.openbc.com/hp/Nico_Luedemann/) and Carola Helfert (https://www.openbc.com/hp/Carola_Helfert/). Monday - Launch Day – started with the Community GetTogether. Stephan and Andreas and I presented the results of the .NET Summit NRW (our community event). As always the time to do some “networking” was toooooooo short - even if we had at least the day before to talk to a few guys. The Launch Party was great. Steve Balmer’s Launch talk was transmitted per satellite into the Lobby of Microsoft in Germany – Great. The only problem again: So many people and such a small amount of time :-)