Netcat is generally known as a TCP/IP Swiss Army Knife and is incredibly helpful for both debugging and mocking up network services
Following is an example on how to setup a mock RESTful service that communicates over HTTPS.
On the “server” side, run the following command. The -l command instructs Netcat to listen.
while true; do { echo -e “HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>” | nc -vl –ssl 8080; } done
On the “client” side, run the following to PUT a sample json document.
curl https://localhost:8080/foo/blah -k -XPUT -d @sample.json
Alternatively, you can also generate a key cert pair to use if you have to test importing of certs
To do so, first generate a self-signed cert and an ssl key without a passphrase for your nc “server”. Place the server.key and server.cert file in /var/tmp/server-cert
openssl req -nodes -new -x509 -keyout server.key -out server.cert
Then run nc as follows:
while true; do { echo -e “HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>” | nc -vl –ssl 8080 –ssl-key /var/tmp/server-cert/server.key –ssl-cert /var/tmp/server-cert/server.cert; } done