SSL enables Web browsers
and Web servers to communicate over a secured connection by encrypting
data. Both browsers and servers encrypt data before the data is transmitted.
The receiving browser or server then decrypts the data before it is
processed.
Note: SSL now has a renegotiation
feature that prevents unauthorized text to be added to the beginning
or end of an encrypted data stream. This feature is specifically used
by certificate-based client authentication. This feature disables
SSL renegotiation in the Java Secure Sockets Extension (JSSE) by default.
As a result, when you attempt to access a Web resource that requires
certificate-based client authentication through the interception proxy,
the following Java SSL error message is generated:
(javax.net.ssl.SSLException): HelloRequest followed by an unexpected handshake message
However,
it is still possible to re-enable the SSL renegotiation in Java by
setting the new system property
sun.security.ssl.allowUnsafeRenegotiation
to
true before the JSSE library is initialized.