You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Ralf Glauberman <rg...@michaeli-gymnasium.de> on 2004/11/07 21:30:32 UTC
Re: [users@httpd] Newbie Qs: Simple SSL setup 2 secure comm (& other things)?
plain txt please, no html!
hi,
as you seem to be really new to ssl, i explain it in detail:
ssl is a protocol which implements client/server autentication and a
public/private key encryption, not only for http. you might have seen ssh,
smtps, pop3s, ... as well. when opening an https connection, the server
autenticates to the client and vise versa, then the actual http-data is
transfered over ssl, meaning it is all encrypted. for ssl, the server must
and the client may use certificates. you can create(sign) new certificates
with your existant certificate, meaning you say "i guarantee that you can
trust this one". you can also sign a certificate for yourself, but the
client has to decide if he wants to trust you. browsers do have a buildin
list of certificates of the cas, if they open an https connection and get a
server-certificate which is signed by a ca, they see, "someone whom i trust
(the ca) has guaranteed that i can trust this certificate". so, but your
certificate is not signed by a ca, but by yourself. as the browser doesn't
recognise you, it asks the user wheter he trusts you. the only way to get
arround this is to get signed by a ca (expensive) or to import your own
certificate into the users browser.
ok, this handles point 1, 3 and 4 on your list and 2 can be done using basic
authentication.
hope it gets clearer now.
ralf
----- Original Message -----
From: Matthew England
To: openssl-users@openssl.org ; users@httpd.apache.org
Sent: Sunday, November 07, 2004 8:42 PM
Subject: [users@httpd] Newbie Qs: Simple SSL setup 2 secure comm (& other
things)?
Hello,
I'm looking for the least-intrusive for a user (as in a web-browser client
user) to access a "secure" server in order to fulfill these goals:
1) Establish secure communication between web server and web client (so that
a 3rd party can not, among other things, steal login/password and other
sensitive info provided by either the server or client).
2) Enable the server to authenticate clients via login/password and possibly
via client IP num/range.
3) Enabled the server to authenticate clients by a means of a distributed
"key" (possibly with something like managed SSL-client certificates).
4) Enable the client to authenticate that the server is who it claims to be
(such that a "Trojan Horse" won't steal login/passwords, etc).
In the documentation I've read thus far, the SSL/Apache community seems
rather fixated on #4. While I suspect this is quite important, it's *last*
on my list. When trying to setup capability for #1, I am seemingly forced
to deal with all the stuff associated with #4 (if I want to try and hide
popup/warning msgs at my user's client browsers, anyway).
Why? Why not clearly separate the 2 mechanisms? Maybe I simply
misunderstand and do not know how to do so?
I have a few more comments and questions below?
More Details
----------------
I am new to SSL and Apache web-server management, and I've been browsing
various doc sources.
I want a means to securely the communication from my web servers to my
clients (and vice versa) such that a 3rd party can not snoop/steal info from
said communication. A popular means to do this seems to be: 1) use
public/private key SSL-based encryption to provide a secure communications
channel, and 2) use Apache authentication mechanisms (like htpasswd, IP
num/range checks, etc).
I also want to do this in such a way that my users have the least-intrusive
and "comfortable" experience possible. Read: I don't want to see the
"Website Certified by an Unknown Authority" popup window (that occurs in my
Firefox 1.0PR browser); I just want to connect to my server via my browser
and get an instant, secure, "https:"-based communication, no fuss, no muss.
So, first big question: can I do this without having to get a formal
certification from CA? http://www.openssl.org/docs/apps/CA.pl.html suggests
that maybe I can. Alas, if not, I'm still wondering why the development
community decided to mix up my goal #1 (above) with my goal #4. I see many
server managers and client users who care a lot about #1 and very little
about #4 (even though possibly they should?).
[An aside: It seems rather difficult to spoof a server. The only way I can
think to do it is to put a rouge DNS server out on the net that remaps my
server name(s) to an "evil", Trojan-horse-type server that will try suck
down the authentication login/passwds for my legitimate server. Also, maybe
one can "copy" the IP address and try to use it for their server, although
this 2nd method seems less reliable and much more easily discoverable by me.
Bottom line: do I legitimately need be concerned about server
impersonation? Maybe I simply do not understand what's going on in this
realm?]
The means to fulfill goal #2 above seems well documented, thorough, and
cleanly implemented.
2nd Q: Even if I do get a CA cert and build in the appropriate
keys/configuration on my server, will a client still see these "popup"
windows?
I'm curious because I can see that my logins to places such as etrade.com
and other things have secured, "https:", connections, but I for the life of
me never remember having to "verify" Etrade's server identity via a browser
popup window. Do they have some magic that I can easily use on my
server(s)?
3rq Q: As for the client-authentication: It seems like
SSL-client-key-certification is a good if not "best" route for this for
beyond "login/passwd" or "IP-address-based" authentication; in other words
an authentication mechanism that's tougher for someone to "steal". (Would
any care to add comments?) The most-important part of this Q: I want to
develop the "simplest" means for a user to do this (even if I have to do
some significant work to set this up). I envision emailing a SSL-cert file
"key" and simple browser-file-key-import instructions to each user; even
better, it would be nice if I could provide a program that once executed
will automatically install the client certificate on the user's
computer/browser automatically so that said user can be verified on their
next attempt to login to my secure server. Regardless, can anyone provide
guides/pointers/recommendations/RTFM poi nts?< br>
That's all the questions I can think of for now. Thanks for reading thus
far!
-Matt
--------------------------------------------------------------------- The
official User-To-User support forum of the Apache HTTP Server Project. See
for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org "
from the digest: users-digest-unsubscribe@httpd.apache.org For additional
commands, e-mail: users-help@httpd.apache.org
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org