HOME PC Alamode About Us HELP
Reviews Columns Features Archives Other  

Small Business Server
Lessons Learned

Configuring Multiple Web Sites
in SBS 2003

January 2005

Larry Lentz is a Past President of Alamo PC. He is the owner of Lentz Computer Services. He has been a professional in the computer field since 1981.


Recently I decided to implement Microsoft's CRM system. CRM is primarily a web-based application and so requires configuration of its web site. Small Business Server also relies on the web server for many of its facilities such as the CompanyWeb (see December 2004 article), Remote Web Workplace, OWA, OMA, etc. The problem is configuring these independent web sites to 'play pretty' with each other on the same box. Although my objective involved MS CRM, the techniques described here would pertain to most other scenarios as well.

When hosting multiple web sites, you must have some way to distinguish amongst them. IIS has three methods you can use: Host Header; Port; and IP Address.  Host header is actually fairly easy to set up. When you configure a web site, there is an entry for host header. For instance I can specify www.LentzComputer.net for my main web site and CRM.LentzComputer.net for my CRM. This actually works well and is how I initially set up my CRM when I first installed it. Then I decided I reeaaalllyyy wanted to be able to take CRM with me on my Pocket PC using the new CRM Mobile. The problem? Microsoft CRM Mobile does not support (or allow) host headers! I hate it when that happens. Back to the drawing board or in this case the Internet Services Manager to reconfigure.

The next thing I tried was using a unique port. The standard port for web access is 80, so my www.LentzComputer.net defaults to 80. I decided to use port 85 for my CRM. That way I could get to CRM using www.LentzComputer.net:85 or CRM.LentzComputer.net:85. Access to my 'regular' web is www.LentzComputer.net:80, or you can leave off the port since 80 is the standard default. This also worked great even though it required my typing a few extra characters, and remembering the port number.

But then I started working on the other requirement for CRM Mobile. It has to use a secure SSL connection. No problem thinks I. The default SSL port is 443. CompanyWeb uses 444. I'll just use 445. Configuring it is easy, sort of. I set up a Certificate Authority on my SBS server so I could issue my own certificates and not pay $100s per certificate (I'll end up needing a couple) from a commercial 'trusted' source. Then I configured the site to use port 445 for SSL. This worked fine as long as I kept my default site turned off. When I turned on (started) my default site, I could no longer access CRM. I fought every which way all weekend trying to get it working. Finally I posted my problem on the CRM newsgroup and my friend from Australia and SBS MVP, Wayne Small, informed me it basically couldn't be done. Boy! It sure felt good to quit hitting my head against that wall.

So I was down to my last option, using different IP addresses to distinguishing between web sites. My server follows the preferred SBS model of having two NICs, one for the Internet and one for the local network. My Internet provider only provides me with one public IP address and I'm too cheap to pay for more (see certificates above), so I decided to give it a try on the internal interface card. I can assign multiple IP addresses to the internal NIC. My 'regular' IP is 192.168.16.2 so I assigned 192.168.16.3 as well. Then I configure my CRM web site to use this address. This is relatively easy to do as well. Except... It won't start! When I try, it tells me the IP is invalid! But I can ping it and everything. It's there, only IIS can't see it. Off to Google I go and find an article that refers to a tool I've heard of but never seen, httpcfg. This is provided with SBS in the support tools on the SECOND SBS CD! You have to use this tool to tell IIS to listen to the second IP (use httpcfg /? for the correct syntax). Once I did this, my CRM web site started right up. I added an entry for CRM in my local DNS pointing to 192.168.16.3 so I could access CRM from the local (internal) network. Worked great! But I also want to access it from the Internet. One caveat: SBS’s CEICW doesn’t like multiple IPs so you’ll have to temporarily remove the second IP if you need to rerun the wizard.

Enter ISA Server, which comes with SBS 2003 Premium Edition. With ISA, I can 'publish' a web server and tell the world how to access it. I created a Destination Set for CRM and configured ISA to route any requests for CRM.LentzComputer.net to my web page at 192.168.16.3. Worked great. Only one more little hurdle to negotiate. CRM Mobile requires the web site to be secured using SSL.

This shouldn't be a problem. I create a certificate for CRM.LentzComputer.net and configure the web site to use it on port 443. Accessing it on the local network worked fine, however access from the Internet was another story. Any time I'd try I would get an error indicating the target principal name was incorrect, whatever the heck that means. I found that wall and started banging my head on it again. I did a Google search and found an article by my friend and ISA guru Dr. Tom Shinder. Tom's article goes into very fine detail explaining exactly what was happening and how to fix it. Basically what it boils down to is the address ISA Server uses to publish a secure web site must exactly match the name on the certificate. I was publishing to 192.168.16.3 using a certificate issued to CRM.LentzComputer.local. Changing ISA to publish to CRM.LentzComputer.local instead resolved the dreaded target principal name error. I can now access my CRM securely from anywhere using CRM.LentzComputer.net. Now if only I could get CRM Mobile to work. It's even got Microsoft's PSS Tech Support guys stumped and they're calling in the developers! But when they figure it out, my secure CRM web site will be ready.
 


Copyright© 1996-2010
Alamo PC Organization, Inc.
San Antonio, TX USA