summaryrefslogtreecommitdiff
path: root/doc/gnutls.texi
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2007-02-06 12:27:00 +0000
committerSimon Josefsson <simon@josefsson.org>2007-02-06 12:27:00 +0000
commite533c2a07c4b20b48608fb015da3bd4106586aad (patch)
treeb97f0867557878b4eda7725e0f8d8164181070b5 /doc/gnutls.texi
parentdaffff6d5dce12400940ed8c4cf482f5204a86a9 (diff)
downloadgnutls-e533c2a07c4b20b48608fb015da3bd4106586aad.tar.gz
Add.
Diffstat (limited to 'doc/gnutls.texi')
-rw-r--r--doc/gnutls.texi60
1 files changed, 60 insertions, 0 deletions
diff --git a/doc/gnutls.texi b/doc/gnutls.texi
index 4b955c95eb..9eafbb7526 100644
--- a/doc/gnutls.texi
+++ b/doc/gnutls.texi
@@ -2340,6 +2340,66 @@ Usage: gnutls-serv [options]
--copyright prints the program's license
@end verbatim
+@subsection Setting up a test HTTPS server
+@cindex HTTPS server
+@cindex debug server
+
+Running your own TLS server based on GnuTLS can be useful when
+debugging clients and/or GnuTLS itself. This section describes how to
+use @code{gnutls-serv} as a simple HTTPS server.
+
+The most basic server can be started as:
+
+@example
+$ gnutls-serv --http
+@end example
+
+It will only support anonymous ciphersuites, which many TLS clients
+refuse to use.
+
+The next step is to add support for X.509. First we generate a CA:
+
+@example
+$ certtool --generate-privkey > key-ca.pem
+Generating a private key...
+Generating a 1024 bit RSA private key...
+$ echo 'cn = GnuTLS test CA' > ca.tmpl
+$ echo 'ca' >> ca.tmpl
+$ echo 'cert_signing_key' >> ca.tmpl
+$ certtool --generate-self-signed --load-privkey key-ca.pem \
+ --template ca.tmpl --outfile ca.pem
+...
+@end example
+
+Then generate a server certificate. Remember to change the dns_name
+value to the name of your server host, or skip that command to avoid
+the field.
+
+@example
+$ certtool --generate-privkey > key-server.pem
+Generating a private key...
+Generating a 1024 bit RSA private key...
+$ echo 'cn = GnuTLS test server' > server.tmpl
+$ echo 'tls_www_server' >> server.tmpl
+$ echo 'encryption_key' >> server.tmpl
+$ echo 'signing_key' >> server.tmpl
+$ echo 'dns_name = test.gnutls.org' >> server.tmpl
+$ certtool --generate-certificate --load-privkey key-server.pem \
+ --load-ca-certificate ca.pem --load-ca-privkey key-ca.pem \
+ --template server.tmpl --outfile server.pem
+...
+@end example
+
+Then start the server again:
+
+@example
+gnutls-serv --http --x509cafile ca.pem \
+ --x509keyfile key-server.pem --x509certfile server.pem
+@end example
+
+Try connecting to the server using your web browser. Note that the
+server listens to port 5556 by default.
+
@node Invoking certtool
@section Invoking certtool
@cindex certtool