[syslog-ng]syslog-ng & stunnel, the saga continues
syslog-ng@lists.balabit.hu
syslog-ng@lists.balabit.hu
Sat, 14 Aug 2004 10:40:52 +0100
Thanks very much! :)
My next step was to actually attempt to acquire the makefile just
to see what the differences were between client-server certificates,
you've just made my life much easier. :)
cheers
mark
On Sat, Aug 14, 2004 at 11:35:56AM +0200, Michael Arndt wrote:
> Heippa Mark,
>
> i hope you give me the chance to add a good dip, if i have to eat
> some certificates ;-)
>
> Have a look at:
> http://www.stunnel.org/examples/syslog-ng.html
> there you see that you also need a client PEM.
>
> a) One for all clients if you just want encryption
> b) One different for any client if you also need authentication
> (i.e. you need to establish the corecctness of client identity)
>
> Step by Step:
>
>
> http://www.emaze.net/~yad/openssl_stunnel_ServerClientAuth.txt
>
> One addition: Look out in the stunnel FAQ for how to generate a link
> to the stunnel:
>
> $ /usr/local/ssl/misc/c_hash clientcert.pem
> You will see a output similar to:
> 89f05566.0 => clientcert.pem
>
> Now create a sumbolic link to this file:
> $ ln -s clientcert.pem 89f05566.0
> (Stunnel will use a 'hash' to lookup the filename. It wont work without
> this.).
>
> this recipe will also cook on any BSE implementation ;-), i hope
>
> But if you have access to any Redhat Box, you can make your
> life much more easier:
>
> They kindly have spared anyone much work by just building a Makefile
> that generates all needed keys and gives them the right names
> all thats left to you is snip up private from public part and
> distribute them ...
>
> Makefile attached, just modifiy the path inside the Makefile
>
>
> hth
> Micha
> .PHONY: usage
> .SUFFIXES: .key .csr .crt .pem
> .PRECIOUS: %.key %.csr %.crt %.pem
>
> usage:
> @echo "This makefile allows you to create:"
> @echo " o public/private key pairs"
> @echo " o SSL certificate signing requests (CSRs)"
> @echo " o self-signed SSL test certificates"
> @echo
> @echo "To create a key pair, run \"make SOMETHING.key\"."
> @echo "To create a CSR, run \"make SOMETHING.csr\"."
> @echo "To create a test certificate, run \"make SOMETHING.crt\"."
> @echo "To create a key and a test certificate in one file, run \"make SOMETHING.pem\"."
> @echo
> @echo "To create a key for use with Apache, run \"make genkey\"."
> @echo "To create a CSR for use with Apache, run \"make certreq\"."
> @echo "To create a test certificate for use with Apache, run \"make testcert\"."
> @echo
> @echo Examples:
> @echo " make server.key"
> @echo " make server.csr"
> @echo " make server.crt"
> @echo " make stunnel.pem"
> @echo " make genkey"
> @echo " make certreq"
> @echo " make testcert"
>
> %.pem:
> umask 77 ; \
> PEM1=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
> PEM2=`/bin/mktemp /tmp/openssl.XXXXXX` ; \
> /usr/bin/openssl req -newkey rsa:1024 -keyout $$PEM1 -nodes -x509 -days 365 -out $$PEM2 ; \
> cat $$PEM1 > $@ ; \
> echo "" >> $@ ; \
> cat $$PEM2 >> $@ ; \
> $(RM) $$PEM1 $$PEM2
>
> %.key:
> umask 77 ; \
> /usr/bin/openssl genrsa -des3 1024 > $@
>
> %.csr: %.key
> umask 77 ; \
> /usr/bin/openssl req -new -key $^ -out $@
>
> %.crt: %.key
> umask 77 ; \
> /usr/bin/openssl req -new -key $^ -x509 -days 365 -out $@
>
> KEY=/etc/httpd/conf/ssl.key/server.key
> CSR=/etc/httpd/conf/ssl.csr/server.csr
> CRT=/etc/httpd/conf/ssl.crt/server.crt
>
> genkey: $(KEY)
> certreq: $(CSR)
> testcert: $(CRT)
>
> $(CSR): $(KEY)
> umask 77 ; \
> /usr/bin/openssl req -new -key $(KEY) -out $(CSR)
>
> $(CRT): $(KEY)
> umask 77 ; \
> /usr/bin/openssl req -new -key $(KEY) -x509 -days 365 -out $(CRT)