Module: sip-router Branch: master Commit: 3f48edc9726e2402756ec1e307698c482db471bf URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=3f48edc9...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Thu Sep 9 22:08:29 2010 +0200
tls: doc - CRL howto and expected default ca section
- note about the expected default_ca section paths in openssl.cnf (dir = ./demoCA a.s.o), needed for the example/howto to work.
- added a section about revoking a certificate
---
modules/tls/README | 63 +++++++++++++++++++++++++++++++++++---- modules/tls/doc/certs_howto.xml | 62 +++++++++++++++++++++++++++++++++++--- 2 files changed, 114 insertions(+), 11 deletions(-)
diff --git a/modules/tls/README b/modules/tls/README index 8d5cb83..24fe818 100644 --- a/modules/tls/README +++ b/modules/tls/README @@ -223,6 +223,43 @@ make -C modules/tls extra_defs="-DTLS_WR_DEBUG -DTLS_RD_DEBUG" keys), so make sure the corresponding files are readable only by trusted people. You should use a password for your CA private key.
+Assumptions +------------ + +The default openssl configuration (usually /etc/ssl/openssl.cnf) +default_ca section is the one distributed with openssl and uses the default +directories: + +... + +default_ca = CA_default # The default ca section + +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +... + +If this is not the case create a new openssl config file that uses the above +paths for the default CA and add to all the openssl commands: + -config filename. E.g.: + openssl ca -config my_openssl.cnf -in ser1_cert_req.pem -out ser1_cert.p +em + + Creating CA certificate ----------------------- 1. create CA dir @@ -235,6 +272,7 @@ Creating CA certificate mkdir demoCA/newcerts touch demoCA/index.txt echo 01 >demoCA/serial + echo 01 >demoCA/crlnumber
2. create CA private key openssl genrsa -out demoCA/private/cakey.pem 2048 @@ -249,7 +287,8 @@ Creating a server/client certificate ------------------------------------ 1. create a certificate request (and its private key in privkey.pem) openssl req -out ser1_cert_req.pem -new -nodes - WARNING: the organization name should be the same as in the ca certificate. + WARNING: the organization name should be the same as in the ca certifica +te.
2. sign it with the ca certificate openssl ca -in ser1_cert_req.pem -out ser1_cert.pem @@ -265,8 +304,7 @@ Setting sip-router to use the certificate
2. copy your sip-router certificate, private key and ca list file to your intended machine (preferably in your sip-router configuration directory, - this is the - default place sip-router searches for) + this is the default place sip-router searches for).
3. set up sip-router.cfg to use the certificate if your ser certificate name is different from cert.pem or it is not @@ -275,9 +313,8 @@ Setting sip-router to use the certificate
4. set up sip-router to use the private key if your private key is not contained in the same file as the certificate - (or the - certificate name is not the default cert.pem), add to your sip-router.c -fg: + (or the certificate name is not the default cert.pem), add to your + sip-router.cfg: modparam("tls", "private_key", "/path/private_key_file")
5. set up sip-router to use the ca list (optional) @@ -289,6 +326,20 @@ fg: modparam("tls", "require_certificate", 1) (for more information see the module parameters documentation)
+ +Revoking a certificate and using a CRL +-------------------------------------- +1. revoking a certificate: + openssl ca -revoke bad_cert.pem + +2. generate/update the certificate revocation list: + openssl ca -gencrl -out my_crl.pem + +3. copy my_crl.pem to your ser config. dir + +4. set up sip-router to use the CRL: + modparam("tls", "crl", "path/my_crl.pem") + 1.9. Parameters
Revision History diff --git a/modules/tls/doc/certs_howto.xml b/modules/tls/doc/certs_howto.xml index a5cdae1..f75461a 100644 --- a/modules/tls/doc/certs_howto.xml +++ b/modules/tls/doc/certs_howto.xml @@ -24,6 +24,41 @@ </para> <para> <programlisting> +Assumptions +------------ + +The default openssl configuration (usually /etc/ssl/openssl.cnf) +default_ca section is the one distributed with openssl and uses the default +directories: + +... + +default_ca = CA_default # The default ca section + +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several ctificates with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key +RANDFILE = $dir/private/.rand # private random number file + +... + +If this is not the case create a new openssl config file that uses the above +paths for the default CA and add to all the openssl commands: + -config filename. E.g.: + openssl ca -config my_openssl.cnf -in ser1_cert_req.pem -out ser1_cert.pem +
Creating CA certificate ----------------------- @@ -37,6 +72,7 @@ Creating CA certificate mkdir demoCA/newcerts touch demoCA/index.txt echo 01 >demoCA/serial + echo 01 >demoCA/crlnumber 2. create CA private key openssl genrsa -out demoCA/private/cakey.pem 2048 @@ -50,7 +86,7 @@ Creating a server/client certificate ------------------------------------ 1. create a certificate request (and its private key in privkey.pem) openssl req -out ser1_cert_req.pem -new -nodes - WARNING: the organization name should be the same as in the ca certificate. + WARNING: the organization name should be the same as in the ca certificate. 2. sign it with the ca certificate openssl ca -in ser1_cert_req.pem -out ser1_cert.pem @@ -65,8 +101,8 @@ Setting sip-router to use the certificate cat cacert.pem >>calist.pem 2. copy your sip-router certificate, private key and ca list file to your - intended machine (preferably in your sip-router configuration directory, this is the - default place sip-router searches for) + intended machine (preferably in your sip-router configuration directory, + this is the default place sip-router searches for). 3. set up sip-router.cfg to use the certificate if your ser certificate name is different from cert.pem or it is not @@ -74,8 +110,9 @@ Setting sip-router to use the certificate modparam("tls", "certificate", "/path/cert_file_name") 4. set up sip-router to use the private key - if your private key is not contained in the same file as the certificate (or the - certificate name is not the default cert.pem), add to your sip-router.cfg: + if your private key is not contained in the same file as the certificate + (or the certificate name is not the default cert.pem), add to your + sip-router.cfg: modparam("tls", "private_key", "/path/private_key_file") 5. set up sip-router to use the ca list (optional) @@ -87,6 +124,21 @@ Setting sip-router to use the certificate modparam("tls", "require_certificate", 1) (for more information see the module parameters documentation)
+ +Revoking a certificate and using a CRL +-------------------------------------- +1. revoking a certificate: + openssl ca -revoke bad_cert.pem + +2. generate/update the certificate revocation list: + openssl ca -gencrl -out my_crl.pem + +3. copy my_crl.pem to your ser config. dir + +4. set up sip-router to use the CRL: + modparam("tls", "crl", "path/my_crl.pem") + + </programlisting> </para>