IIS


Jag har tidigare skrivit om det här felet som uppstår om man skall kommunicera med en server via SSL och det certifikat som servern använder på något sätt inte är gilltigt. Antigen litar maninte på utfärdaren, det kan vara spärrad, ingen spärrlistainformation finns med, något är fel med datumen eller någonting annat.

I mitt förra inlägg skrev jag exempel på hur man i kod kan undvika kontroll av sådana SSL-certifikat. Nu är det ju inte alltid man vill eller kan ändra koden, så hur gör man om man annars då? Jo, först och främst kan man se om man inte kan installera root-certifikatet till den som har utfärdat SSL-certifikatet. Det bör man kunna göra även om man har ett internt certifikat. Har man använt SelfSSL eller liknande kan det uppstå problem, men skapar man det på den dator som skall ta emot responsen borde även det fungera eftersom det då blir den datorn (klienten) som har utfärdat certifikatet (detta har jag dock inte provat!).

Men sen kan man ha flera problem, exempelvis att certifikatet inte innehåller någon revocation-information eller att namnet inte stämmer med de anrop du gör. Detta löser man genom att i machine.config ändra värden i servicePointManager. Om man inte vill göra något namn- eller revokeringskontroll ställer man in den enligt följande:

<servicePointManager checkCertificateName="false" checkCertificateRevocationList="false" />

Enda nackdelen är väl att man sätter delar av säkerheten ur spel, så gör det här endast i utvecklings- och testmiljöer!

Du kan hitta mera info om detta på MSDN

Microsoft har släppt en ny site som omhandlar IIS, och speciellt i syfte att nå ut med IIS 7.0 som kommer med Vista och Longhorn Server. Du hittar den på http://www.iis.net