Ncat can encrypt its traffic using SSL. In connect mode, simply add the
  --ssl
  option. --ssl works with TCP (the default) and
  SCTP
  (--sctp
  option). Here is the syntax for connecting to
  an HTTPS server:
  
ncat -C --ssl <server> 443
  Sometimes an SSL server will require a client certificate for
  authentication. When this is the case, use the
  --ssl-cert
  and
  --ssl-key
  options to give the locations of PEM-encoded files containing the
  certificate and private key, respectively. The certificate and key may
  be in the same file.
  
  
  
  By default the client will not do any server certificate verification, so it
  will not be detected if the server has the wrong certificate or no
  certificate at all. Use the --ssl-verify option to
  require verification of the certificate and matching of the domain
  name.
  
ncat -C --ssl-verify <server> 443
  Verification is done using the
  ca-bundle.crt
  certificate bundle shipped with Ncat, plus whatever trusted
  certificates the operating system may provide. If you want to verify a
  connection to a server whose certificate isn't signed by one of the
  default certification authorities, use the
  --ssl-trustfile to name a file containing
  certificates you trust. The file must be in PEM format.
  
ncat -C --ssl-verify --ssl-trustfile < custom-certs.pem><server> 443
Verification should be done whenever it is feasible. Even with encryption, an unverified connection is vulnerable to a man-in-the-middle attack. Ncat does not do certificate revocation checking.
    
    SSL connections depend on the client and server agreeing on a common
    ciphersuite: a combination of key exchange, symmetric cipher, and message
    integrity mechanism. The choice of which ciphersuites to offer (as a
    client) or accept (as a server) is a matter of choice between the greatest
    compatibility and the greatest security. The default set, expressed as an
    OpenSSL cipherlist, is
    ALL:!aNULL:!eNULL:!LOW:!EXP:!RC4:!MD5:@STRENGTH, a reasonable balance
    between the two ends of the spectrum. To set a different priority or
    initial choice, use the --ssl-ciphers option.
    
    
      ncat --ssl-ciphers <HIGH:!aNULL:!eNULL> <server> 443
    
  Ncat can act as an SSL server as well. The server must provide a
  certificate that clients can verify if they choose. If you start an
  SSL server without using the --ssl-cert and
  --ssl-key options, Ncat will automatically generate a
  certificate and 2,048-bit RSA key. The certificate will of course not
  be trusted by any application doing certificate verification. In
  verbose mode, the key's fingerprint will be printed so you can do
  manual verification if desired.
  Example 2
  shows sample output.
  
  Using an existing certificate and key is recommended whenever possible
  because it allows for robust server authentication. Use the
  --ssl-cert and --ssl-key options to
  pass in PEM-encoded files.
  For testing purposes you can generate a self-signed certificate and
  private key. If you have OpenSSL
  installed, use this command:
  
openssl req -new -x509 -keyout test-key.pem -out test-cert.pem.
  For purposes of certificate verification, the
  commonName
  in the certificate should match the fully qualified domain
  name
  of the host that will run the server. After generating the files,
  start the server:
  
ncat --listen --ssl --ssl-cert test-cert.pem --ssl-key test-key.pem.
  To make a verified client connection, copy the
  test-cert.pem file somewhere where the client can
  access it, then run
  
ncat --ssl-verify --ssl-trustfile test-cert.pem.