<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>nunos's Blog : IIS</title><link>http://blogs.msdn.com/nunos/archive/tags/IIS/default.aspx</link><description>Tags: IIS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Accessing an external CRL through a proxy</title><link>http://blogs.msdn.com/nunos/archive/2004/03/12/88473.aspx</link><pubDate>Fri, 12 Mar 2004 18:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:88473</guid><dc:creator>nunos</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/nunos/comments/88473.aspx</comments><wfw:commentRss>http://blogs.msdn.com/nunos/commentrss.aspx?PostID=88473</wfw:commentRss><description>&lt;DIV class=itemBodyStyle&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;One of the good ways to safely authenticate users in a web application is using client certificates.&amp;nbsp;When&amp;nbsp;accessing the web application, IIS will ask the client for a certificate installed&amp;nbsp;on the local machine, check if it's valid or not&amp;nbsp;and then allows you to read&amp;nbsp;the certificate and grant rights to the user.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;When checking the certificate, one of the steps performed is&amp;nbsp;accessing a CRL, or a&amp;nbsp;Certificate Revocation List, that contains all certificates issued by a particular entity that have been revoked. One thing that everyone must understand is that if the CRL cannot be reached, than the certificate will be assumed revoked for security reasons. In that case, IIS will return an HTTP error 403.13 (see &lt;/FONT&gt;&lt;A href="http://support.microsoft.com/?id=294305"&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#005bba size=1&gt;http://support.microsoft.com/?id=294305&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;FONT face=Verdana size=1&gt;).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;In the problem we were facing none of the proposed solutions worked. If we opened a browser on the web server&amp;nbsp;and&amp;nbsp;tried accessing the CRL with it's URL&amp;nbsp;that would work. So, it had to do with proxy settings on the server.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;After some investigation I found the following KB articles:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face=Verdana size=1&gt;819961 How to Configure Client Proxy Server Settings by Using a Registry File&lt;BR&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;A href="http://support.microsoft.com/?id=819961"&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#004183 size=1&gt;http://support.microsoft.com/?id=819961&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;&lt;STRONG&gt;218970 Proxy Settings Can Be Set Only on a Per-User Basis&lt;/STRONG&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;A href="http://support.microsoft.com/?id=218970"&gt;&lt;STRONG&gt;&lt;FONT face=Verdana color=#005bba size=1&gt;http://support.microsoft.com/?id=218970&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;The first article tells us how to force proxy settings for users. Because proxy settings are set in a per-user basis these values will not be read when accessing the CRL because the Local System account is used to run the IIS Admin and the W3SVC services. That's why opening a browser and accessing the CRL works. In this case we are running in the context of a real user and using the proxy settings defined through IE. You can actually try to change the account running IIS Admin and W3SVC to a user account. This will work but at the end of the day you'll create a lot more problems and it is not a supported configuration.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;The second article tells us about a registry value called "ProxySettingsPerUser". If we force it to 0, we tell the machine to read proxy settings from HKLM instead of HKCU thus forcing a general proxy setting for all users (by the way, the article mentions an hotfix but in Windows 2000 it isn't needed).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;So, I tried adding the following registry information:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;&lt;STRONG&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings] &lt;BR&gt;&lt;/STRONG&gt;"AutoConfigProxy"="wininet.dll" &lt;BR&gt;"ProxyEnable"=dword:00000001 &lt;BR&gt;"ProxyOverride"="&lt;LOCAL&gt;" &lt;BR&gt;"MigrateProxy"=dword:00000001 &lt;BR&gt;"ProxyServer"="x.x.x.x:8080" &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT face=Verdana&gt;&lt;STRONG&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings] &lt;BR&gt;&lt;/STRONG&gt;"ProxySettingsPerUser"=dword:00000000&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;And it worked. I must point out again that we do not fully support this configuration. If a web server needs to contact a CRL, there shouldn't be any proxy or firewall restricting its access. However, this workaround does work rather nicely :D&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;Hope it helps&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=1&gt;This posting is provided "AS IS" with no warranties, and confers no rights.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=88473" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/nunos/archive/tags/Windows/default.aspx">Windows</category><category domain="http://blogs.msdn.com/nunos/archive/tags/IIS/default.aspx">IIS</category></item></channel></rss>