When a Web browser (client) wants to connect to a secure site, an SSL handshake happens:
■
The browser sends a message over the network requesting a secure session (typically, by
requesting a URL that begins with https instead of http).
■
The server responds by sending its certicate (including its public key).
■
The browser veries that the server's certicate is valid and is signed by a CA whose
certicate is in the browser's database (and who is trusted). It also veries that the CA
certicate has not expired.
■
If the certicate is valid, the browser generates a one time, unique session key and encrypts it
with the server's public key. The browser then sends the encrypted session key to the server
so that they both have a copy.
■
The server decrypts the message using its private key and recovers the session key.
After the handshake, the client has veried the identity of the Web site, and only the client and
the Web server have a copy of the session key. From this point forward, the client and the server
use the session key to encrypt all their communications with each other. Thus, their
communications are ensured to be secure.
The newest version of the SSL standard is called TLS (Transport Layer Security). The Enterprise
Server supports the Secure Sockets Layer (SSL) 3.0 and the Transport Layer Security (TLS) 1.0
encryption protocols.
To use SSL, the Enterprise Server must have a certicate for each external interface, or IP
address, that accepts secure connections. The HTTPS service of most Web servers will not run
unless a digital certicate has been installed. Use the procedure described in
“Generating a
Certicate Using the keytool Utility” on page 114
to set up a digital certicate that your Web
server can use for SSL.
About Ciphers
A cipher is a cryptographic algorithm used for encryption or decryption. SSL and TLS protocols
support a variety of ciphers used to authenticate the server and client to each other, transmit
certicates, and establish session keys.
Some ciphers are stronger and more secure than others. Clients and servers can support
dierent cipher suites. Choose ciphers from the SSL3 and TLS protocols. During a secure
connection, the client and the server agree to use the strongest cipher they both have enabled for
communication, so it is usually sucient to enable all ciphers.
Using Name-based Virtual Hosts
Using name-based virtual hosts for a secure application can be problematic. This is a design
limitation of the SSL protocol itself. The SSL handshake, where the client browser accepts the
server certicate, must occur before the HTTP request is accessed. As a result, the request
information containing the virtual host name cannot be determined prior to authentication,
and it is therefore not possible to assign multiple certicates to a single IP address.
Introductionto Certicatesand SSL
SunGlassFishEnterpriseServer2.1AdministrationGuide • December2008110