views:

78

answers:

3

I am working on a project that requires user login/registration. I'd like to avoid setting up private SSL since I am using a shared hosting provider and would like to host multiple domains off of the same plan (but since a private SSL certificate requires a dedicated ip, I can only have 1 certificate per plan...but would still like to secure all of my sites).

I am debating between

  1. resorting to OpenID (although for a non-technical audience all the complaints I found on SO would be further multiplied)
  2. using my host's shared SSL (which will pop up those annoying certificate warnings in the browser saying that the sites don't match).

What seems like a better option? Or would you suggest run away from both and just suggest sucking it up and purchasing additional/better hosting plans?

+1  A: 

Why not roll your own from the ground up? If your database is accessible from each domain, you could keep one user store that every domain could access.

Is there a particular reason you do not want to create your own user model? It's easy to do but you may have other factors that are leaning you towards something like OpenId that I am not aware of.

Cody C
hmm. simply because I did not think of doing this. Only downside I can think of is perhaps it will cause difficulty later if I decide to migrate each site to separate hosting. Thanks for the insight!
es11
thinking about what you wrote more I realize that I am not sure exactly what you mean...each certificate is associate with a certain domain..so how could I use a single certificate which is associated with a certain domain to encrypt communication on multiple other domains?
es11
A: 

From my experience in dealing with SO and a fairly simple site using Google App Engine (and their authentication system), I'd give the following advice:

  • Do NOT use OpenID for identification. It can work for authentication with your own identity management, but there are issues as soon as you try to identify a specific user.
  • Its amazing how many open ids people will have, so be prepared to support multiple OpenID auth URLs (definitely more than 1, probably more than 2)
  • If high security is a requirement, be very wary of OpenID. Many people will use providers that they normally only use for low-security tasks (and therefore have weak passwords). This particular issue struck Jeff Atwood directly (his account was stolen due to exactly this mistake)!
  • Keep things simple for your users. If you do go with OpenID, emphasize one or two providers that they likely already have (eg, Google), and then provide a deemphasized selection for generic providers. Don't make the more simple-minded users think about OpenID.
  • Along with that thinking, a simple "Login with your Google Account" button works surprisingly well. I thought people would find it confusing to login to a third party site with their google account, but in practice this has not been a problem with our .appspot.com domain.

The bottom line is that you shouldn't expect your users to prefer openid, but it can be an acceptable compromise. I don't think that showing an invalid certificate is a reasonable option for many end-users.

Of course, the separate certs option is the cleanest, but you have to decide if thats really worth it for the value gained. I'm a cheapskate and would tend to avoid it myself. :)

jsight
I did consider having the simple "login with your google account" option but did not yet take the time to estimate what percentage of my target audience would already have an account with google (or yahoo)..of course then there's the issue that I experienced with SO of google not enable openID by default...if thats annoying to technically inclined people, I can't imagine the grief it would cause computer illiterate users...ultimately which is why I think I will avoid OpenId like the plague
es11
@es111 - I think you may have google confused with someone else. As far as I know, google does not currently require you to enable OpenID in order for it to work with a plain vanilla google account (it does require it if you use their Blogger OpenID provider).
jsight
A: 

If you use the shared SSL's URL, you shouldn't get the popups. That's the whole point of shared SSL. What you is the identity of your site's URL when the user jumps to the secure connection.

I would talk to your hosting provider about your options when it comes to private SSL. They're really not that expensive (even free if you're ok with poor IE support). I've been with shared providers in the past that would allocate you a dedicated IP for use with SSL for a tiny extra fee (like $2/mo).

To me, the extra $54 per year ($30 for the cert + $24 for the IP) was well worth the peace of mind for me and my users.

Bob Somers
right but my main issue is that I have multiple sites hosted under the same plan...as such, I was clearly told that I could only have a single private SSL...why do you say I wouldn't get the popups with shared SSL? My host defines 'shared ssl' as having the domain of the hosting provider (not my site), so the browser should warn of a domain mismatch
es11
Only if you actually link to your domain instead of the hosting providers. For example, if you're shared SSL is under shared-ssl.myhost.com/mysite/login if you try to get their via https://www.mysite.com/login you'll get the popup, but if you link to https://shared-ssl.myhost.com/mysite/login and have the login page kick them back to your non-SSL domain, no popup. That's generally how most hosting providers do shared SSL. Also, did they say they can't give you multiple IPs, one for each site? If not, hmm... might be time to change providers...
Bob Somers
You can't see it in the post above, but those links are prefixed with https colon slash slash.
Bob Somers