# How are messages from server secured when using SSL certificate

In case of using SSL the certificate server has a primary key and a public key that is published to all clients - as far as I understood. So in this case when message is encrypted by public key (on client side) only the owner of private key (which is the server in this case) has ability to decrypt it.

But I do not understand how this works the other way, I mean when the message is encrypted by private key then does it mean that whoever has the public key can decrypt it? That would mean that only the messages toward the server are secured and messages which come from the server can be read by anybody with public the key.

Update:
in my case I have web server in DMZ hosts multiple web services (WCF), the clients are non-server application (they are standalone .NET application) reaching these web services via internet using https protocol.

My server has SSL certificate issued by Versign, the point is that my client do not have any type of credential and any machine with that application (or similar app) should be able to consume the services, the point is that the information passing between client machine and server must be encrypted and signed, so this is my question is having the certificate and using the transport security enough to make sure that nobody can read the messages passing between client and server or do I have to somehow come up with some kind of ad hoc client credential and add message security. This link describes that SSL is good for Intranet and for internet message security is suggested why? what does happen if I only use SSL and no message security for the internet scenario?

• What you're missing is that message is a symmetric key. $\;$ – user991 May 11 '15 at 21:07
• OK, I still don't understand it, if the client does not have credential (an anonymous user) then there is no message level encryption, so you mean that this connection is not secure? – Fred Jand May 11 '15 at 21:15
• The message level encryption uses the symmetric key(s). $\;$ – user991 May 11 '15 at 21:22
• – cpast May 11 '15 at 21:25
• I've already read this stuff if it was clear to me I would not have any questions. in all of these only talk about the point to point transport level security with SSL. – Fred Jand May 11 '15 at 22:30

• Nothing has really changed. Yes, you can create a secure channel even though only one site is authenticated by establishing session keys. The disadvantage of course is that the server doesn't know who it is talking to if it only authenticates itself. You need additional methods to do that. Simplest form of session key agreement: generate random key at client $K_{session}$, calculate $C = E(P_{server}, K_{session})$ then at server perform $K_{session} = D(S_{server}, C)$ (just as example to show how it can be done) – Maarten Bodewes May 12 '15 at 23:01