Methods, systems, and computer program products for negotiating a secure
end-to-end connection using a proxy server as an intermediary. The client
first negotiates a secure connection between the client and the proxy so
that any credentials exchanged will be encrypted. After the exchange of
authentication credentials, the secure client-proxy connection is altered
so that no further encryption takes place. The client and server then
negotiate a secure end-to-end connection through the proxy, with the
secure end-to-end connection being encapsulated within the insecure
client-proxy connection. In this way, the overhead of creating a separate
client-proxy connection for the secure end-to-end connection may be
avoided, but the insecure client-proxy connection introduces only minimal
overhead because it no longer encrypts any data that it carries.