<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SteveOH &#187; iis</title>
	<atom:link href="http://www.steve-oh.com/blog/index.php/tag/iis/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.steve-oh.com/blog</link>
	<description>Steve O Hernandez - Technology, Real Life, Advice</description>
	<lastBuildDate>Fri, 07 May 2010 18:13:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ASP.NET ServerVariable Collection</title>
		<link>http://www.steve-oh.com/blog/index.php/aspnet-servervariable-collection/</link>
		<comments>http://www.steve-oh.com/blog/index.php/aspnet-servervariable-collection/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 20:58:10 +0000</pubDate>
		<dc:creator>Steve Hernandez</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.steve-oh.com/blog/index.php/2009/01/21/aspnet-servervariable-collection/</guid>
		<description><![CDATA[Syntax



Request.ServerVariables (server_variable)





Parameter
Description


server_variable
Required. The name of the server variable to retrieve


Server Variables


Variable
Description


ALL_HTTP
Returns all HTTP headers sent by the client. Always prefixed with HTTP_ and capitalized


ALL_RAW
Returns all headers in raw form


APPL_MD_PATH
Returns the meta base path for the application for the ISAPI DLL


APPL_PHYSICAL_PATH
Returns the physical path corresponding to the meta base path


AUTH_PASSWORD
Returns the value entered in the client&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<h3>Syntax</h3>
<table border="1" width="100%" cellPadding="3" cellSpacing="0" class="ex">
<tr>
<td vAlign="top">
<pre>Request.ServerVariables (server_variable)</pre>
</td>
</tr>
</table>
<table border="1" width="100%" cellPadding="3" cellSpacing="0" class="ex">
<tr>
<th width="20%" align="left" vAlign="top">Parameter</th>
<th width="80%" align="left" vAlign="top">Description</th>
</tr>
<tr>
<td vAlign="top">server_variable</td>
<td vAlign="top">Required. The name of the <a href="http://www.w3schools.com/asp/coll_servervariables.asp#sv">server variable</a> to retrieve</td>
</tr>
</table>
<h3><a name="sv"></a>Server Variables</h3>
<table border="1" width="100%" cellPadding="3" cellSpacing="0" class="ex">
<tr>
<th width="20%" align="left" vAlign="top">Variable</th>
<th width="80%" align="left" vAlign="top">Description</th>
</tr>
<tr>
<td vAlign="top">ALL_HTTP</td>
<td vAlign="top">Returns all HTTP headers sent by the client. Always prefixed with HTTP_ and capitalized</td>
</tr>
<tr>
<td vAlign="top">ALL_RAW</td>
<td vAlign="top">Returns all headers in raw form</td>
</tr>
<tr>
<td vAlign="top">APPL_MD_PATH</td>
<td vAlign="top">Returns the meta base path for the application for the ISAPI DLL</td>
</tr>
<tr>
<td vAlign="top">APPL_PHYSICAL_PATH</td>
<td vAlign="top">Returns the physical path corresponding to the meta base path</td>
</tr>
<tr>
<td vAlign="top">AUTH_PASSWORD</td>
<td vAlign="top">Returns the value entered in the client&#8217;s authentication dialog</td>
</tr>
<tr>
<td vAlign="top">AUTH_TYPE</td>
<td vAlign="top">The authentication method that the server uses to validate users</td>
</tr>
<tr>
<td vAlign="top">AUTH_USER</td>
<td vAlign="top">Returns the raw authenticated user name</td>
</tr>
<tr>
<td vAlign="top">CERT_COOKIE</td>
<td vAlign="top">Returns the unique ID for client certificate as a string</td>
</tr>
<tr>
<td vAlign="top">CERT_FLAGS</td>
<td vAlign="top">bit0 is set to 1 if the client certificate is present and bit1 is set to 1 if the cCertification authority of the client certificate is not valid</td>
</tr>
<tr>
<td vAlign="top">CERT_ISSUER</td>
<td vAlign="top">Returns the issuer field of the client certificate</td>
</tr>
<tr>
<td vAlign="top">CERT_KEYSIZE</td>
<td vAlign="top">Returns the number of bits in Secure Sockets Layer connection key size</td>
</tr>
<tr>
<td vAlign="top">CERT_SECRETKEYSIZE</td>
<td vAlign="top">Returns the number of bits in server certificate private key</td>
</tr>
<tr>
<td vAlign="top">CERT_SERIALNUMBER</td>
<td vAlign="top">Returns the serial number field of the client certificate</td>
</tr>
<tr>
<td vAlign="top">CERT_SERVER_ISSUER</td>
<td vAlign="top">Returns the issuer field of the server certificate</td>
</tr>
<tr>
<td vAlign="top">CERT_SERVER_SUBJECT</td>
<td vAlign="top">Returns the subject field of the server certificate</td>
</tr>
<tr>
<td vAlign="top">CERT_SUBJECT</td>
<td vAlign="top">Returns the subject field of the client certificate</td>
</tr>
<tr>
<td vAlign="top">CONTENT_LENGTH</td>
<td vAlign="top">Returns the length of the content as sent by the client</td>
</tr>
<tr>
<td vAlign="top">CONTENT_TYPE</td>
<td vAlign="top">Returns the data type of the content</td>
</tr>
<tr>
<td vAlign="top">GATEWAY_INTERFACE</td>
<td vAlign="top">Returns the revision of the CGI specification used by the server</td>
</tr>
<tr>
<td vAlign="top">HTTP_&lt;<em>HeaderName</em>&gt;</td>
<td vAlign="top">Returns the value stored in the header <em>HeaderName</em></td>
</tr>
<tr>
<td vAlign="top">HTTP_ACCEPT</td>
<td vAlign="top">Returns the value of the Accept header</td>
</tr>
<tr>
<td vAlign="top">HTTP_ACCEPT_LANGUAGE</td>
<td vAlign="top">Returns a string describing the language to use for displaying content</td>
</tr>
<tr>
<td vAlign="top">HTTP_COOKIE</td>
<td vAlign="top">Returns the cookie string included with the request</td>
</tr>
<tr>
<td vAlign="top">HTTP_REFERER</td>
<td vAlign="top">Returns a string containing the URL of the page that referred the request to the current page using an &lt;a&gt; tag. If the page is redirected, HTTP_REFERER is empty</td>
</tr>
<tr>
<td vAlign="top">HTTP_USER_AGENT</td>
<td vAlign="top">Returns a string describing the browser that sent the request</td>
</tr>
<tr>
<td vAlign="top">HTTPS</td>
<td vAlign="top">Returns ON if the request came in through secure channel or OFF if the request came in through a non-secure channel</td>
</tr>
<tr>
<td vAlign="top">HTTPS_KEYSIZE</td>
<td vAlign="top">Returns the number of bits in Secure Sockets Layer connection key size</td>
</tr>
<tr>
<td vAlign="top">HTTPS_SECRETKEYSIZE</td>
<td vAlign="top">Returns the number of bits in server certificate private key</td>
</tr>
<tr>
<td vAlign="top">HTTPS_SERVER_ISSUER</td>
<td vAlign="top">Returns the issuer field of the server certificate</td>
</tr>
<tr>
<td vAlign="top">HTTPS_SERVER_SUBJECT</td>
<td vAlign="top">Returns the subject field of the server certificate</td>
</tr>
<tr>
<td vAlign="top">INSTANCE_ID</td>
<td vAlign="top">The ID for the IIS instance in text format</td>
</tr>
<tr>
<td vAlign="top">INSTANCE_META_PATH</td>
<td vAlign="top">The meta base path for the instance of IIS that responds to the request</td>
</tr>
<tr>
<td vAlign="top">LOCAL_ADDR</td>
<td vAlign="top">Returns the server address on which the request came in</td>
</tr>
<tr>
<td vAlign="top">LOGON_USER</td>
<td vAlign="top">Returns the Windows account that the user is logged into</td>
</tr>
<tr>
<td vAlign="top">PATH_INFO</td>
<td vAlign="top">Returns extra path information as given by the client</td>
</tr>
<tr>
<td vAlign="top">PATH_TRANSLATED</td>
<td vAlign="top">A translated version of PATH_INFO that takes the path and performs any necessary virtual-to-physical mapping</td>
</tr>
<tr>
<td vAlign="top">QUERY_STRING</td>
<td vAlign="top">Returns the query information stored in the string following the question mark (?) in the HTTP request</td>
</tr>
<tr>
<td vAlign="top">REMOTE_ADDR</td>
<td vAlign="top">Returns the IP address of the remote host making the request</td>
</tr>
<tr>
<td vAlign="top">REMOTE_HOST</td>
<td vAlign="top">Returns the name of the host making the request</td>
</tr>
<tr>
<td vAlign="top">REMOTE_USER</td>
<td vAlign="top">Returns an unmapped user-name string sent in by the user</td>
</tr>
<tr>
<td vAlign="top">REQUEST_METHOD</td>
<td vAlign="top">Returns the method used to make the request</td>
</tr>
<tr>
<td vAlign="top">SCRIPT_NAME</td>
<td vAlign="top">Returns a virtual path to the script being executed</td>
</tr>
<tr>
<td vAlign="top">SERVER_NAME</td>
<td vAlign="top">Returns the server&#8217;s host name, DNS alias, or IP address as it would appear in self-referencing URLs</td>
</tr>
<tr>
<td vAlign="top">SERVER_PORT</td>
<td vAlign="top">Returns the port number to which the request was sent</td>
</tr>
<tr>
<td vAlign="top">SERVER_PORT_SECURE</td>
<td vAlign="top">Returns a string that contains 0 or 1. If the request is being handled on the secure port, it will be 1. Otherwise, it will be 0</td>
</tr>
<tr>
<td vAlign="top">SERVER_PROTOCOL</td>
<td vAlign="top">Returns the name and revision of the request information protocol</td>
</tr>
<tr>
<td vAlign="top">SERVER_SOFTWARE</td>
<td vAlign="top">Returns the name and version of the server software that answers the request and runs the gateway</td>
</tr>
<tr>
<td vAlign="top">URL</td>
<td vAlign="top">Returns the base portion of the URL</td>
</tr>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.steve-oh.com/blog/index.php/aspnet-servervariable-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET: Accessing files on a Network Share</title>
		<link>http://www.steve-oh.com/blog/index.php/aspnet-accessing-files-on-a-network-share/</link>
		<comments>http://www.steve-oh.com/blog/index.php/aspnet-accessing-files-on-a-network-share/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 20:27:49 +0000</pubDate>
		<dc:creator>Steve Hernandez</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.steve-oh.com/blog/index.php/2008/07/11/aspnet-accessing-files-on-a-network-share/</guid>
		<description><![CDATA[Now, there are plenty of places to find resources on this issue, because it&#8217;s quite common to have to do so.  My issue, was a little different, in that there were multiple layers of security (authentication and authorization) for me to access the files that were needed.  Here&#8217;s what the setup looked like:
Web Server -&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Now, there are plenty of places to find resources on this issue, because it&#8217;s quite common to have to do so.  My issue, was a little different, in that there were multiple layers of security (authentication and authorization) for me to access the files that were needed.  Here&#8217;s what the setup looked like:</p>
<p>Web Server -&gt; WorkGroup -&gt; Firewall -&gt; Domain -&gt; File Server -&gt; Network Share -&gt; SAN</p>
<p>As you can see, there are several issues are hand.  Not only do the accounts have to exist to allow for this communication (and an Administrator account is the only way to go), all sorts of permissions have to be valid for this to function (ie. Local Permissions within each OS on each Server, NTFS (file permissions) on each local server, Access permissions through the Firewall, Access permissions of Domain Resources, Local process level permissions, etc).  It was a nightmare, but I believe I figured it out.</p>
<p>There are a few things that needed to be done in this situation.  First, the permissions on the SAN needed to allow Administrators full control.  Additionally, the local user on the file server needed to have administrative privileges, to both the system and the SAN, thus allowing the network share.   Next, the firewall rules needed to allow file traffic (I can&#8217;t remember the SMB ports right now &#8211; and Windows needs netBios and something else to let file transfers go through, as well as authentication).  Finally, the Web Server local user needs admin rights.</p>
<p>To get this to work, I needed everything involved to run with elevated privileges, from IIS, to each thread in the application.  Since there was going to be a large amount of file movement, as well as resource and memory manipulation, it&#8217;s required.</p>
<p>Therefore, the admin credentials were inputted into IIS to map the network share from the Web Server to the File Server.  Next, I had to impersonate the admin user in each thread within the application, a pain, but the guide can be found via Google (if I have time, I&#8217;ll track them down again). Next, the machine.config needed to be modified to allow the ASP.NET process to run with the elevated permissions.  The web.config needs to be altered to allow impersonation with the credentials as well.</p>
<p>Now here&#8217;s the kicker, and something that&#8217;s not quite known but buried within Microsoft&#8217;s documentation.  For this to work (Work Group computer to authenticate to another computer) is to <strong><em>mirror</em></strong> the accounts (same username and password) on both servers (these are local accounts, not domain accounts &#8211; since the share was local on the server, the domain can be bypassed. If it were a domain resource, we would have to authenticate via NTLM to an Active Directory server, which would have been a bit more complicated).  This allows the hash sent from one system to another to be identical, and thus, you will authenticate (if you know the username and password on one workgroup computer, and it&#8217;s the same on another, chances are you&#8217;re who you say you are).</p>
<p>This took me a week to figure out, which was not enjoyable.  I hope this saves you some time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steve-oh.com/blog/index.php/aspnet-accessing-files-on-a-network-share/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Where is ASP.NET 3.5 on IIS?</title>
		<link>http://www.steve-oh.com/blog/index.php/where-is-aspnet-35-on-iis/</link>
		<comments>http://www.steve-oh.com/blog/index.php/where-is-aspnet-35-on-iis/#comments</comments>
		<pubDate>Wed, 07 May 2008 15:45:39 +0000</pubDate>
		<dc:creator>Steve Hernandez</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[develop]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[operating system]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://www.steve-oh.com/blog/index.php/2008/05/07/where-is-aspnet-35-on-iis/</guid>
		<description><![CDATA[Where is ASP.NET 3.5 on IIS ?
Most people on installing .NET 3.5 on the server &#8220;expect&#8221; an entry for  v3.5  under the ASP.NET version Tab in IIS manager. And not finding that entry start  panicking. If you have been one of those read on. The more tech savvy folks try  to run [...]]]></description>
			<content:encoded><![CDATA[<h1 class="entryviewheading">Where is ASP.NET 3.5 on IIS ?</h1>
<p>Most people on installing .NET 3.5 on the server &#8220;expect&#8221; an entry for  v3.5  under the ASP.NET version Tab in IIS manager. And not finding that entry start  panicking. If you have been one of those read on. The more tech savvy folks try  to run aspnet_regiis -i from the v3.5 framework folder&#8230; but even that is  missing <img src='http://www.steve-oh.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-no35_2.jpg"><img src="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-no35_thumb.jpg" style="border-width: 0px" alt="vijaysk-no35" border="0" height="252" width="455" /></a></p>
<p>That brings us to the question</p>
<p><strong>What exactly is ASP.NET 3.5 ?</strong></p>
<p>Take a look at the v3.5 framework folder you will <strong>not</strong> find  most of the files needed for ASP.NET to run like aspnet_isapi.dll /  aspnet_filter.dll / aspnet_regiis.exe / aspnet_regsql.exe&#8230;</p>
<p>The reason being .NET 3.5 is not a stand alone framework like v2.0 or v1.1 .  It is just an extension of the 2.0 framework. The extension provides developers  with new language features like Anonymous Types, Extension Methods, Lambda  Expressions and of course LINQ &#8230;. and AJAX is now integrated &#8230; also you have  a few new ASP.NET controls &lt;asp:ListView&gt;, &lt;asp:LinqDataSource&gt;,  &lt;asp:DataPager&gt;</p>
<p><strong>Will I get ASP.NET version 3.5 under the ASP.NET tab in IIS 6.0  ?</strong></p>
<p>Nope. Because as far as IIS is concerned nothing has changed. The  aspnet_isapi.dll from the version 2.0 folder will still handle the requests and  there is no new ISAPI dll specific to version 3.5. So you don&#8217;t have to change  any Script Mappings in IIS &#8230;just leave the web application pointing to v2.0  under the ASP.NET Tab. And this brings us to the next question</p>
<p><strong>What exactly is the extension ?</strong></p>
<p>For that if you have Visual Studio 2008 go ahead and create a Website  targeting the .NET 3.5 framework. Then go to the Property Pages of the Website  and select References. You will find an entry like this</p>
<p><a href="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-references_2.jpg"><img src="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-references_thumb.jpg" style="border-width: 0px" alt="vijaysk-references" border="0" height="367" width="620" /></a></p>
<p>And those four assembly references provide the new features of v3.5.  Here is  a 10,000 ft view of the functionality implemented in these assemblies</p>
<p>System.Core &#8211; Provides namespaces like System.Linq, System.IO</p>
<p>System.Data.DataSetExtensions &#8211; LINQ to DataSet</p>
<p>System.Web.Extensions &#8211; AJAX</p>
<p>System.Xml.Linq &#8211; New XML API.. supports LINQ to XML</p>
<p><strong>Do I have to configure anything manually ?</strong></p>
<p>No. When you install the .NET 3.5 redistributable on the server it installs  these assemblies in the GAC. And any website that refers to these assemblies can  fetch them from the GAC so you do not have to configure anything manually. All  you need to do is publish the content to a web application that is marked with  ASP.NET v2.0</p>
<p>And now you should be thinking</p>
<p><strong>The new language features should require a new compiler. How exactly  is the new compiler used ?</strong></p>
<p>The answer is your web.config file. When you create an ASP.NET 3.5 website in  Visual Studio 2008 an entry is made in the web.config something like</p>
<p style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4">&lt;system.codedom&gt;
  &lt;compilers&gt;
    &lt;compiler language=<span style="color: #006080">"c#;cs;csharp"</span> extension=<span style="color: #006080">".cs"</span> warningLevel=<span style="color: #006080">"4"</span>
              type=<span style="color: #006080">"Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"</span>&gt;
      &lt;providerOption name=<span style="color: #006080">"CompilerVersion"</span> <span style="color: #0000ff">value</span>=<span style="color: #006080">"v3.5"</span>/&gt;
      &lt;providerOption name=<span style="color: #006080">"WarnAsError"</span> <span style="color: #0000ff">value</span>=<span style="color: #006080">"false"</span>/&gt;
    &lt;/compiler&gt;</pre>
<p>The new features do require a new compiler to be used and the web.config  tells .NET that the v3.5 compiler has to be used.</p>
<p><strong>What about IIS 7.0 ?</strong></p>
<p>IIS 7.0 is no different.</p>
<p><a href="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-iis7apppool_2.jpg"><img src="http://blogs.msdn.com/blogfiles/vijaysk/WindowsLiveWriter/RunningASP.NET3.5onIIS_C467/vijaysk-iis7apppool_thumb.jpg" style="border-width: 0px" alt="vijaysk-iis7apppool" border="0" height="291" width="321" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.steve-oh.com/blog/index.php/where-is-aspnet-35-on-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing Microsoft Virtual Server using SelfSSL</title>
		<link>http://www.steve-oh.com/blog/index.php/securing-microsoft-virtual-server-using-selfssl/</link>
		<comments>http://www.steve-oh.com/blog/index.php/securing-microsoft-virtual-server-using-selfssl/#comments</comments>
		<pubDate>Tue, 26 Jun 2007 20:01:57 +0000</pubDate>
		<dc:creator>Steve Hernandez</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[encrypt]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ZIP]]></category>

		<guid isPermaLink="false">http://www.steve-oh.com/blog/?p=20</guid>
		<description><![CDATA[I found this great article regarding using SelfSSL (Self Signed Certificates).  The original document can be found here.  Virtual Server can be found here.
I followed the very easy instructions and it ran great.  Here is a shorter version of the directions and the links to get everything you need:

Download and install IIS 6.0 Resource kit: [...]]]></description>
			<content:encoded><![CDATA[<p>I found this great article regarding using SelfSSL (Self Signed Certificates).  The original document can be found <a target="_blank" href="http://thelazyadmin.com/blogs/thelazyadmin/archive/2006/06/26/Configure-SSL-for-Virtual-Server-2005-Using-SelfSSL.aspx">here</a>.  Virtual Server can be found <a target="_blank" href="http://www.steve-oh.com/downloads/MicrosoftVirtualServer2005R2.zip">here</a>.</p>
<p>I followed the very easy instructions and it ran great.  Here is a shorter version of the directions and the links to get everything you need:</p>
<ol>
<li>Download and install IIS 6.0 Resource kit: <a target="_blank" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499">here</a></li>
<li>Open the IIS Manager (Start &gt; Run &gt; inetmgr), open the properties of the Virtual Server website (usually the 2nd one) (right click &gt; Properties)</li>
<li>Change the SSL port to 1024 (default VS port) and change the TCP port to 1020 (or any other port number) &gt; Apply</li>
<li>Open a command promt (Start &gt; Run &gt; cmd) and go to the SelfSSL director (/program files/iis resources/selfssl) and run the following command &gt; <em>selfssl /N:CN=&lt;FQDN&gt;/K:1024 /V:730 /S:2 /P:1024</em>
<ol>
<li>Where &lt;FQDN&gt; is the website domain name (ie. steve-oh.com, yahoo.com, etc) and /S:2 means the second site on the server.</li>
</ol>
</li>
<li>Now browse to the Virtual Server website and install the certificate and you&#8217;re done!</li>
</ol>
<p>Now you have a Secure Socket Layer (SSL) connection from any remote computer to your server at 1028 bit encryption, so you can rest easy when logging in over the internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.steve-oh.com/blog/index.php/securing-microsoft-virtual-server-using-selfssl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
