Testing servers through encrypted connections

Posted on August 15th, 2007 in General,Linux System Administration by Brandon

When testing out Web or Mail servers, I often find myself telneting to the server and issuing raw commands directly. Doing this is incredibly useful for tracking down the source of many problems. Until now, I have never know how to do the same thing over encrypted channels like HTTPS or POP3S. However, I just discovered that the openSSL library has a simple tool that works great. Run the command:

openssl s_client -connect hostname:port

That will perform all of the SSL handshake and display the output for you, and then give you a regular prompt, just like telnet would. For SMTP over TLS it is a little more complicated because you generally would connect to the remote server and then issue the STARTTLS command to negotiate encryption. In that case, you could use the command:

openssl s_client -starttls smtp -crlf -connect host:port

That will tell the openssl client to connect, and send ‘STARTTLS’ before attempting to negotiate the encryption. After that, you’ll end up with a 220 response at which to proceed with your normal SMTP session
Modern versions of openSSL also allow STARTTLS with pop3:

openssl s_client -starttls pop3  -connect host:port

One Response to 'Testing servers through encrypted connections'

Subscribe to comments with RSS or TrackBack to 'Testing servers through encrypted connections'.

  1. Kevin said,

    on August 16th, 2007 at 12:02 am

    Reading your post reminded me of a post I had been meaning to write on plain smtp auth, it’s somewhat related:



Post a comment