<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>CertificateAuthority</title><revhistory><revision><revnumber>10</revnumber><date>2014-01-15 15:59:09</date><authorinitials>ClintonEbadi</authorinitials><revremark>cacert has some scripts that look useful for us</revremark></revision><revision><revnumber>9</revnumber><date>2013-01-23 19:28:45</date><authorinitials>ClintonEbadi</authorinitials><revremark>navajos</revremark></revision><revision><revnumber>8</revnumber><date>2012-09-06 07:18:47</date><authorinitials>ClintonEbadi</authorinitials></revision><revision><revnumber>7</revnumber><date>2008-07-07 04:28:06</date><authorinitials>localhost</authorinitials><revremark>converted to 1.6 markup</revremark></revision><revision><revnumber>6</revnumber><date>2008-04-22 01:10:52</date><authorinitials>MichaelOlson</authorinitials><revremark>Update CA URL</revremark></revision><revision><revnumber>5</revnumber><date>2008-04-01 15:06:46</date><authorinitials>AdamChlipala</authorinitials><revremark>Fix markup bug</revremark></revision><revision><revnumber>4</revnumber><date>2008-04-01 05:35:54</date><authorinitials>MichaelOlson</authorinitials><revremark>Document ca-install</revremark></revision><revision><revnumber>3</revnumber><date>2007-12-06 16:29:09</date><authorinitials>MichaelOlson</authorinitials><revremark>Document ca-sign script</revremark></revision><revision><revnumber>2</revnumber><date>2007-12-04 23:01:48</date><authorinitials>MichaelOlson</authorinitials></revision><revision><revnumber>1</revnumber><date>2007-11-17 18:10:52</date><authorinitials>MichaelOlson</authorinitials><revremark>Initial contents</revremark></revision></revhistory></articleinfo><para>This page explains how to sign user SSL certificates, among other things. </para><section><title>Introduction</title><para>The page <ulink url="http://www.rajeevnet.com/crypto/ca/ca-paper.html"/> was very helpful in figuring out which commands to run.  I took the initial copy of the OpenSSL configuration file from <ulink url="http://sial.org/howto/openssl/ca/openssl.cnf"/>, and then added things to it from the first link. </para><para>All of our CA stuff is stored at <code>/var/local/lib/ca</code> on deleuze. </para><para>The public-accessible CA stuff is at <code>/afs/hcoop.net/user/h/hc/hcoop/public_html/ca</code>, or <ulink url="http://hcoop.net/ca"/>. </para></section><section><title>Scripts</title><para>There are a couple of scripts in <code>/afs/hcoop.net/common/etc/scripts</code> that facilitate signing and installing of certificates. </para><para>We should investigate <ulink url="http://wiki.cacert.org/CSRGenerator">CACert's scripts for generating CSRs</ulink>. </para><section><title>Signing</title><para><code>ca-sign</code> is the script that given a certificate request, produces a signed certificate.  It stores a copy of the certificate request in <code>/var/local/lib/ca/requests</code>, and stores a copy of the certificate in <code>/var/local/lib/ca/newcerts</code>.  It also updates the certificate revocation list, which is a publicly-accessible list of certificates that have been revoked. </para><para>Here is an example of how to invoke it: </para><screen><![CDATA[ca-sign days request.csr out-cert-file.pem]]></screen><itemizedlist><listitem><para><emphasis role="strong">days</emphasis> is the number of days that the certificate should be valid.  Users get to choose this value. </para></listitem><listitem><para><emphasis role="strong">request.csr</emphasis> is the certificate request. </para></listitem><listitem><para><emphasis role="strong">out-cert-file.pem</emphasis> is where you want the generated certificate to be placed. </para></listitem></itemizedlist></section><section><title>Installing</title><para><code>ca-install</code> is the script which installs a certificate (including the RSA private key) to the user web nodes.  It does sanity-checking on the certificate before allowing it to be installed, so as not to bring down Apache. </para><para>Usage: </para><screen><![CDATA[ca-install member domain cert-file.pem [key-file.pem]]]></screen><!--rule (<hr>) is not applicable to DocBook--><para> <ulink url="https://wiki.hcoop.net/CertificateAuthority/CategorySystemAdministration#">CategorySystemAdministration</ulink> </para></section></section></article>