SSL SERVER WITH MUTUAL AUTHENTICATION SUPPORT

This server code (msslserver.cs) is an updated version from
http://pages.infinit.net/ctech/200411.html

It has been updated to support mutual authentication and accept any (or no)
client certificates. The server listen to port 4443 (i.e. not the standard SSL
port) to coexists with other web servers possibily present on the computer.


TEST CASES

1. Mutual authentication with automatic SSL/TLS detection (TLS by default)

wget --no-check-certificate --certificate=mutual.pem --private-key=mutual.pem https://localhost:4433


2. Mutual authentication with SSL3

wget --no-check-certificate --secure-protocol=sslv3 --certificate=mutual.pem --private-key=mutual.pem https://localhost:4433


3. Mutual authentication with TLS1

wget --no-check-certificate --secure-protocol=tlsv1 --certificate=mutual.pem --private-key=mutual.pem https://localhost:4433


4. Optional mutual authentication with automatic SSL/TLS detection (TLS by default)

wget --no-check-certificate https://localhost:4433


5. Optional mutual authentication with SSL3

wget --no-check-certificate --secure-protocol=sslv3 https://localhost:4433


6. Optional mutual authentication with TLS1

wget --no-check-certificate --secure-protocol=tlsv1 https://localhost:4433


NOTES

* Mono.Security.dll version

	This sample/test requires Mono.Security.dll from Mono 1.1.9 or later.

* SSL versions

	--secure-protocol=sslv2 is for SSL2 which isn't supported.

* Convertion from PKCS#12 to PEM (wget/OpenSSL)

	openssl pkcs12 -in ../mutual/client.p12 -out mutual.pem -nodes
