<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
>
<channel>
	<title>G-Loaded Journal &#187; Certificates</title>
	<atom:link href="http://www.g-loaded.eu/tag/certificates/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.g-loaded.eu</link>
	<description>An open-source software and technology related journal</description>
	<lastBuildDate>Mon, 05 Dec 2011 19:55:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
		<item>
		<title>Free Personal Email Certificates Program discontinued by Thawte</title>
		<link>http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/</link>
		<comments>http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 16:07:34 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[Certificates]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/?p=1298</guid>
		<description><![CDATA[I&#8217;ve been using Thawte&#8216;s free personal email digital certificates for some years now. Unfortunately, Thawte discontinues the Personal E-mail Certificate and Web of Trust services. All issued certificates will be revoked on November 16th 2009 and the particular services will no longer be available after that date. Read more information about this matter here. All [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <strong>Thawte</strong>&#8216;s free personal email digital certificates for some years now. Unfortunately, Thawte discontinues the <strong>Personal E-mail Certificate</strong> and <strong>Web of Trust</strong> services. All issued certificates will be <strong>revoked</strong> on November 16th 2009 and the particular services will no longer be available after that date.<br />
<span id="more-1298"></span><br />
Read more information about this matter <a href="https://siteseal.thawte.com/support/index.html?page=content&#038;id=SO12658" rel="nofollow">here</a>.</p>
<p> All current certificate owners will be offered a <em>free one-year digital certificate</em> for email encryption/signing by <strong>Verisign</strong>. Renewals of those certificates will cost $19.95 per email address (at the time of writing), while using Thwate&#8217;s program you could just pay an initial fee in order to verify your identity and then get your name to appear on all your digital certificates that had been issued by that service for your email addresses.</p>
<p>Although I believe that taking back what you have given is usually either a sign of greed and irresponsibility or proof of bad planning, I do understand Thawte&#8217;s given reasons for such a decision:</p>
<blockquote><p>[...] for the ever-expanding standards and technology requirements will outpace our ability to maintain these services at the high level of quality we require [...]</p></blockquote>
<p>When it comes to <em>secure authentication</em> or <em>digital identification</em>, <strong>quality is not negotiable</strong>. On the other hand, what is questionable is the high price of the certificate renewals, which do not involve any kind of paperwork and could also require no human intervention at all, provided that the initial verification of the certificate owner&#8217;s identity and the renewal procedure itself are being done correctly.</p>
<p>I am quite certain that there are other Certificate Authorities that offer free email certificates or email certificate programs at reasonable prices, but I didn&#8217;t have the time to check. Perhaps, a reader who has done some research on this could contribute some info.</p>
<p>I&#8217;ll be posting about this topic again soon. Stay tuned!</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/">Free Personal Email Certificates Program discontinued by Thawte</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/" rel="bookmark">Root Certificate Programs &#8211; The root of all trust</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/be-your-own-ca/" rel="bookmark">Be your own Certificate Authority (CA)</a></li>
<li><a href="http://www.g-loaded.eu/2007/06/23/high-traffic-on-the-email-server/" rel="bookmark">High traffic on the email server</a></li>
<li><a href="http://www.g-loaded.eu/2007/12/07/email-notifications-from-a-linux-system/" rel="bookmark">Email Notifications from a Linux System</a></li>
<li><a href="http://www.g-loaded.eu/2009/09/21/project-codetrax-discontinued/" rel="bookmark">Project CodeTRAX discontinued</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Root Certificate Programs &#8211; The root of all trust</title>
		<link>http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/</link>
		<comments>http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 02:36:50 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Certificates]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Trust]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/</guid>
		<description><![CDATA[A digital certificate[1]&#8216;s purpose of existence is to sign or encrypt other material, either the latter is an online transaction, an email message or software code. Root Certificates, their respective private key actually[1], are used by Certificate Authorities to sign and add certain extensions to other certificates they issue, thus making the latter valid for [...]]]></description>
			<content:encoded><![CDATA[<p>A digital certificate<code>[1]</code>&#8216;s purpose of existence is to <strong>sign</strong> or <strong>encrypt</strong> other material, either the latter is an online transaction, an email message or software code. <strong>Root Certificates</strong>, their respective private key actually[1], are used by <strong>Certificate Authorities</strong> to sign and add certain extensions to other certificates they issue, thus making the latter valid for certain uses. Web browsers, Linux distributions, Microsoft&#8217;s or Apple&#8217;s operating systems etc ship with a <strong>default set</strong> of Root Certificates. Taking into account that those Root Certificates are <strong>what we actually trust</strong> when we come across material that has been signed or encrypted by another certificate, which has been issued (signed) by a Certificate Authority&#8217;s Root Certificate, the method in which those Root Certs have made their way into the browser&#8217;s or operating system&#8217;s main distribution packages becomes very interesting.</p>
<p>Lately, I&#8217;ve been wondering about the above and I soon found out about the major web browser manufacturers&#8217; <strong>Root Certificate Programs</strong> (RCP). In other words, documents that outline the required procedure a company has to follow in order their Root Cert to finally be included into the browser. Here are links for the <a href="http://www.mozilla.org/projects/security/certs/policy/">Mozilla</a>, <a href="http://www.microsoft.com/technet/archive/security/news/rootcert.mspx">Microsoft</a>, <a href="http://www.apple.com/certificateauthority/ca_program.html">Apple</a>, <a href="http://www.opera.com/docs/ca/">Opera</a> programs. The process is not simple and requires a lot of auditing by 3rd parties. That&#8217;s good!</p>
<p>But, what is even more interesting is the fact that <strong>not all browsers, Linux distributions, et cetera ship with the same default set of Root Certificates</strong>. This means that:</p>
<ul>
<li>either some Certificate Authorities have been rejected by some Root Certificate Programs</li>
<li>or that some Certificate Authorities simply were not interested in enrolling into certain Root Certificate Programs</li>
</ul>
<p>Anyhow, different default sets of Root Certificates mean you might get <strong>warned</strong> about material that has been signed by a digital certificate, which has been issued by a particular Certificate Authority, depending on <em><strong>how you access that same material</strong></em>. This does not make any sense and, generally, does not help much when you have to decide whether to trust the signed material or not.</p>
<p>Judging by the Root Certificate Programs mentioned above none of them asks for money in order to include a Root Certificate into the browser. So, there is no direct profit involved in this situation. Then, why isn&#8217;t there <strong>one common Root Certificate Program</strong> and some kind of independent authority that manages a set of Root Certificates which all browsers, operating systems, mobile phones etc should include by default? At least I would expect all Linux distributions to ship with the same default root certificates or to be able to update that set from the same source&#8230;</p>
<p><em>Notes</em>:<br />
<code>[1]</code> For the sake of simplicity, the term &#8220;certificate&#8221; refers to either the private key or the public certificate depending on the action.</p>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/">Root Certificate Programs &#8211; The root of all trust</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/" rel="bookmark">Free Personal Email Certificates Program discontinued by Thawte</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/be-your-own-ca/" rel="bookmark">Be your own Certificate Authority (CA)</a></li>
<li><a href="http://www.g-loaded.eu/2007/08/10/ssl-enabled-name-based-apache-virtual-hosts-with-mod_gnutls/" rel="bookmark">SSL-enabled Name-based Apache Virtual Hosts with mod_gnutls</a></li>
<li><a href="http://www.g-loaded.eu/2006/05/02/guis-for-python-programs/" rel="bookmark">GUIs For Python Programs</a></li>
<li><a href="http://www.g-loaded.eu/2007/12/16/security-guides-for-operating-systems-by-the-nsa/" rel="bookmark">Security Guides for Operating Systems by the NSA</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Be your own Certificate Authority (CA)</title>
		<link>http://www.g-loaded.eu/2005/11/10/be-your-own-ca/</link>
		<comments>http://www.g-loaded.eu/2005/11/10/be-your-own-ca/#comments</comments>
		<pubDate>Thu, 10 Nov 2005 13:33:40 +0000</pubDate>
		<dc:creator>George Notaras</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Certificates]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[HOWTO]]></category>
		<category><![CDATA[OpenSSL]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Servers]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[TLS]]></category>
		<guid isPermaLink="false">http://www.g-loaded.eu/2005/11/10/be-your-own-ca/</guid>
		<description><![CDATA[This article describes how to become your own Certificate Authority (CA) and issue your own server certificates. Be advised that noone else, apart from you, your internal network's people or your friends, will or should trust this kind of certificates (self-signed). These are intended only for providing secure communication with your own services or for testing purposes.]]></description>
			<content:encoded><![CDATA[<p>I declare from the beginning that I am no authority on digital <strong>certificates</strong>.<br />
This document is a summary of all the articles I have read about <strong>openssl</strong>. It describes in short how to become your own <strong>Certificate Authority</strong> (CA) and how to create and sign your own <strong>certificate requests</strong>. Make no mistake, these certificates are good only for personal use or for use in your intranet in order to provide a secure way to login or communicate with your services, so that passwords or other data is not transmitted in the clear. Noone else will or should trust these certificates.<br />
<span id="more-94"></span></p>
<h4>Prerequisites</h4>
<p>The package <strong>openssl</strong> should be installed in the machine you will use to manage your certificates or create the certificate requests.</p>
<h4>First things first&#8230;</h4>
<p>The <strong>openssl</strong> package comes with some scripts that can help you create your server certificates fast, but here I will describe how to set things up from scratch in a new directory, so that you can customize things later if you like or delete everything without touching openssl&#8217;s or the system&#8217;s default files. This article is based on a Fedora installation, but will do for all distributions.</p>
<h5>Creating the necessary directories</h5>
<p>First of all we will create a directory tree where all certificate stuff will be kept. Fedora&#8217;s default directory is <strong>/etc/pki/tls/</strong>. So, as root, we create our own directories:</p>
<pre class="console"># mkdir -m 0755 /etc/pki_jungle</pre>
<p>And then we create our CA&#8217;s directory tree:</p>
<pre class="console">
# mkdir -m 0755 \
     /etc/pki_jungle/myCA \
     /etc/pki_jungle/myCA/private \
     /etc/pki_jungle/myCA/certs \
     /etc/pki_jungle/myCA/newcerts \
     /etc/pki_jungle/myCA/crl
</pre>
<ul>
<li><strong>myCA</strong> is our Certificate Authority&#8217;s directory.</li>
<li><strong>myCA/certs</strong> directory is where our server certificates will be placed.</li>
<li><strong>myCA/newcerts</strong> directory is where openssl puts the created certificates in PEM (unencrypted) format and in the form <em>cert_serial_number.pem</em> (eg 07.pem). Openssl needs this directory, so we create it.</li>
<li><strong>myCA/crl</strong> is where our certificate revokation list is placed.</li>
<li><strong>myCA/private</strong> is the directory where our private keys are placed. Be sure that you set restrictive permissions to all your private keys so that they can be read only by root, or the user with whose priviledges a server runs. If anyone steals your private keys, then things get really bad.</li>
</ul>
<h5>Initial openssl configuration</h5>
<p>We are going to copy the default openssl configuration file (<strong>openssl.cnf</strong>) to our CA&#8217;s directory. In Fedora, this file exists in <strong>/etc/pki/tls</strong>. So, we copy it to our CA&#8217;s dir and name it <strong>openssl.my.cnf</strong>. As root:</p>
<pre class="console"># cp /etc/pki/tls/openssl.cnf /etc/pki_jungle/myCA/openssl.my.cnf</pre>
<p>This file does not need to be world readable, so we change its attributes:</p>
<pre class="console"># chmod 0600 /etc/pki_jungle/myCA/openssl.my.cnf</pre>
<p>We also need to create two other files. This file serves as a database for openssl:</p>
<pre class="console"># touch /etc/pki_jungle/myCA/index.txt</pre>
<p>The following file contains the next certificate&#8217;s serial number. Since we have not created any certificates yet, we set it to &quot;<strong>01</strong>&quot;:</p>
<pre class="console"># echo '01' > /etc/pki_jungle/myCA/serial</pre>
<h4>Things to remember</h4>
<p>Here is a small legend with <strong>file extensions</strong> we will use for the created files and their meaning. All files that will be created will have one of these extensions:</p>
<ul>
<li><strong>KEY</strong> &#8211; Private key (Restrictive permissions should be set on this)</li>
<li><strong>CSR</strong> &#8211; Certificate Request (This will be signed by our CA in order to create the server certificates. Afterwards it is not needed and can be deleted)</li>
<li><strong>CRT</strong> &#8211; Certificate (This can be publicly distributed)</li>
<li><strong>PEM</strong> &#8211; We will use this extension for files that contain both the Key and the server Certificate (Some servers need this). Permissions should be restrictive on these files.</li>
<li><strong>CRL</strong> &#8211; Certificate Revokation List (This can be publicly distributed)</li>
</ul>
<h4>Create the CA Certificate and Key</h4>
<p>Now, that all initial configuration is done, we may create a self-signed certificate, that will be used as our CA&#8217;s certificate. In other words, we will use this to sign other certificate requests.</p>
<p>Change to our CA&#8217;s directory. <span style="text-decoration:underline;">This is where we should issue all the openssl commands because here is our openssl&#8217;s configuration file (openssl.my.cnf).</span> As root:</p>
<pre class="console"># cd /etc/pki_jungle/myCA/</pre>
<p>And then create your CA&#8217;s Certificate and Private Key. As root:</p>
<pre class="console"># openssl req -config openssl.my.cnf -new -x509 -extensions v3_ca -keyout private/myca.key -out certs/myca.crt -days 1825</pre>
<p>This creates a self-signed certificate with the default CA extensions which is valid for 5 years. You will be prompted for a <strong>passphrase</strong> for your CA&#8217;s private key. <span style="text-decoration:underline;">Be sure that you set a strong passphrase.</span> Then you will need to provide some info about your CA. Fill in whatever you like. Here is an example:</p>
<pre class="codesnp">Country Name (2 letter code) [GB]:GR
State or Province Name (full name) [Berkshire]:Greece
Locality Name (eg, city) [Newbury]:Thessaloniki
Organization Name (eg, company) [My Company Ltd]:My Network
Organizational Unit Name (eg, section) []:My Certificate Authority
Common Name (eg, your name or your server's hostname) []:server.example.com
Email Address []:whatever@server.example.com</pre>
<p>Two files are created:</p>
<ul>
<li><strong>certs/myca.crt</strong> &#8211; This is your CA&#8217;s certificate and can be publicly available and of course world readable.</li>
<li><strong>private/myca.key</strong> &#8211; This is your CA&#8217;s private key. Although it is protected with a passphrase you should restrict access to it, so that only root can read it:
<pre class="console"># chmod 0400 /etc/pki_jungle/myCA/private/myca.key</pre>
</li>
</ul>
<h4>More openssl configuration (mandatory)</h4>
<p>Because we use a custom directory for our certificates&#8217; management, some modifications to <strong>/etc/pki_jungle/myCA/openssl.my.cnf</strong> are necessary. Open it in your favourite text editor as root and find the following part (around line 35):</p>
<pre class="codesnp">[ CA_default ]
dir     = ../../CA      # 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 must be
                    # commented out to leave a V1 CRL
crl     = $dir/crl.pem      # The current CRL
private_key = $dir/private/cakey.pem    # The private key
RANDFILE    = $dir/private/.rand    # private random number file
x509_extensions = usr_cert      # The extentions to add to the cert
</pre>
<p>You should modify the following settings in order to coform to our custom directory and our custom CA key and certificate:</p>
<pre class="codesnp">[ CA_default ]
dir     = <strong>.</strong>                # <strong>&lt;&#45;&#45;CHANGE THIS</strong>
certs       = $dir/certs
crl_dir     = $dir/crl
database    = $dir/index.txt
#unique_subject = no
new_certs_dir   = $dir/newcerts
certificate = $dir/<strong>certs/myca.crt</strong>   # <strong>&lt;&#45;&#45;CHANGE THIS</strong>
serial      = $dir/serial
#crlnumber  = $dir/crlnumber
crl     = $dir/crl.pem
private_key = $dir/private/<strong>myca.key</strong>    # <strong>&lt;&#45;&#45;CHANGE THIS</strong>
RANDFILE    = $dir/private/.rand
x509_extensions = usr_cert</pre>
<h4>Create a Server certificate</h4>
<p>Further openssl.my.cnf file&#8217;s customization is possible, so that we define our policy for certificate creation and signing or define our desired extensions for the new certificates. I may add this info to a future version of this document. It&#8217;s easy though, just try to familiarize yourself with the openssl.cnf&#8217;s structure and you&#8217;ll figure it out.</p>
<p>Anyway, the certificates we are going to create, without customizing openssl.my.cnf any further, are <strong>general purpose certificates</strong> and their usage in not restricted to server authentication only. One thing that you should take a note of is that <strong>the private keys will not be protected by a passphrase</strong>, so that when the services are restarted they do not ask for a passphrase. This means that you should <strong>set restrictive permissions on the private keys</strong>, so that only root or the user under whose priviledges a server runs can read these files.</p>
<h5>Generate a Certificate Request</h5>
<p>First, we change to our CA&#8217;s directory:</p>
<pre class="console"># cd /etc/pki_jungle/myCA/</pre>
<p>Then we create the certificate request:</p>
<pre class="console"># openssl req -config openssl.my.cnf -new -nodes -keyout private/server.key -out server.csr -days 365</pre>
<p>The <strong>-nodes</strong> option is needed so that the private key is not protected with a passphrase. If you do not intend to use the certificate for server authentication, you should not include it in the above command.<br />
You can customize the number of days you want this certificate to be valid for.</p>
<p>You will be prompted for the certificate&#8217;s info. Here is an example:</p>
<pre class="codesnp">Country Name (2 letter code) [GB]:GR
State or Province Name (full name) [Berkshire]:Greece
Locality Name (eg, city) [Newbury]:Thessaloniki
Organization Name (eg, company) [My Company Ltd]:My Network
Organizational Unit Name (eg, section) []:My Web Server
Common Name (eg, your name or your server's hostname) []:www.server.example.com
Email Address []:whatever@server.example.com</pre>
<p>The <strong>Common Name (CN)</strong> is the info that uniquely distinguishes your service, so be sure that you type it correctly.<br />
When prompted for some extra attributes (challenge password, optional company name) just hit the [Enter] key.</p>
<p>Two files are created:</p>
<ul>
<li><strong>server.csr</strong> &#8211; this is the certificate request.</li>
<li><strong>private/server.key</strong> &#8211; this is the private key, which is not protected with a passphrase.</li>
</ul>
<p>Set restrictive permissions on the private key. Only root or the user that is used to run the server should be able to read it. For example:</p>
<pre class="console"># chown root.root /etc/pki_jungle/myCA/private/server.key
# chmod 0400 /etc/pki_jungle/myCA/private/server.key</pre>
<p>Or:</p>
<pre class="console"># chown root.apache /etc/pki_jungle/myCA/private/server.key
# chmod 0440 /etc/pki_jungle/myCA/private/server.key</pre>
<h5>Sign the Certificate Request</h5>
<p>Now we are going to sign the certificate request and generate the server&#8217;s certificate.</p>
<p>First, we change to our CA&#8217;s directory:</p>
<pre class="console"># cd /etc/pki_jungle/myCA/</pre>
<p>Then we sign the certificate request:</p>
<pre class="console"># openssl ca -config openssl.my.cnf -policy policy_anything -out certs/server.crt -infiles server.csr</pre>
<p>You will need to supply the CA&#8217;s private key in order to sign the request. You can check the openssl.my.cnf file about what <strong>policy_anything</strong> means. In short, the fields about the Country, State or City is not required to match those of your CA&#8217;s certificate.</p>
<p>After all this is done two new files are created:</p>
<ul>
<li><strong>certs/server.crt</strong> &#8211; this is the server&#8217;s certificate, which can be made available publicly.</li>
<li><strong>newcerts/01.pem</strong> &#8211; This is exactly the same certificate, but with the certificate&#8217;s serial number as a filename. It is not needed.</li>
</ul>
<p>You can now delete the certificate request (server.csr). It&#8217;s no longer needed:</p>
<pre class="console"># rm -f /etc/pki_jungle/myCA/server.csr</pre>
<h5>Verify the certificate</h5>
<p>You can see the certificate&#8217;s info with the following:</p>
<pre class="console"># openssl x509 -subject -issuer -enddate -noout -in /etc/pki_jungle/myCA/certs/server.crt</pre>
<p>Or the following:</p>
<pre class="console"># openssl x509 -in certs/server.crt -noout -text</pre>
<p>And verify that the certificate is valid for server authentication with the following:</p>
<pre class="console"># openssl verify -purpose sslserver -CAfile /etc/pki_jungle/myCA/certs/myca.crt /etc/pki_jungle/myCA/certs/server.crt</pre>
<h5>Server certificate and key in one file</h5>
<p>Some servers, for example vsftpd, require that both the private key and the certificate exist in the same file. In a situation like that just do the following:</p>
<pre class="console"># cat certs/server.crt private/server.key > private/server-key-cert.pem</pre>
<p>You should restrict access to the final file and delete server.crt and server.key since thay are no longer needed.</p>
<pre class="console"># chown root.root private/server-key-cert.pem
# chmod 0400 private/server-key-cert.pem
# rm -f certs/server.crt
# rm -f private/server.key</pre>
<h4>Revoke a Server Certificate</h4>
<p>If you do not want a certificate to be valid any more, you have to revoke it. This is done with the command:</p>
<pre class="console"># openssl ca -config openssl.my.cnf -revoke certs/server.crt</pre>
<p>Then you should generate a new CRL (Certificate Revokation List):</p>
<pre class="console"># openssl ca -config openssl.my.cnf -gencrl -out crl/myca.crl</pre>
<p>The CRL file is <strong>crl/myca.crl</strong>.</p>
<h4>Distribute your certificates and CRL</h4>
<p>Your CA&#8217;s certificate and your servers&#8217; certificates should be distributed to those who trust you so they can import them in their client software (web browsers, ftp clients, email clients etc). The CRL should also be published.</p>
<h4>Further Reading</h4>
<p>As I have said from the beginning, this document is just a summary of what I have read. Here are some useful links that will get you started:</p>
<ol>
<li><a href="http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/index.html">The SSL Certificates HOWTO</a></li>
<li><a href="http://sial.org/howto/openssl/">The OpenSSL Documentation</a></li>
<li><a href="http://www.technoids.org/openssl.cnf.html">The openssl.cnf documentation</a></li>
<li><a href="http://sial.org/howto/openssl/ca/">OpenSSL Certificate Authority Setup</a></li>
</ol>
<div class="cc-block"><em><a href="http://www.g-loaded.eu/2005/11/10/be-your-own-ca/">Be your own Certificate Authority (CA)</a></em>, unless otherwise expressly stated, is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License</a>. Terms and conditions beyond the scope of this license may be available at <a href="http://www.g-loaded.eu/about/disclaimer-and-license/">www.g-loaded.eu</a>.</div>
<h4>Related Articles</h4>
<ul><li><a href="http://www.g-loaded.eu/2007/11/22/root-certificate-programs-the-root-of-all-trust/" rel="bookmark">Root Certificate Programs &#8211; The root of all trust</a></li>
<li><a href="http://www.g-loaded.eu/2007/08/10/ssl-enabled-name-based-apache-virtual-hosts-with-mod_gnutls/" rel="bookmark">SSL-enabled Name-based Apache Virtual Hosts with mod_gnutls</a></li>
<li><a href="http://www.g-loaded.eu/2009/10/12/free-personal-email-certificates-program-discontinued-by-thawte/" rel="bookmark">Free Personal Email Certificates Program discontinued by Thawte</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/ssh-with-keys/" rel="bookmark">Setup the SSH server to use keys for authentication</a></li>
<li><a href="http://www.g-loaded.eu/2005/11/10/configure-vnc-server-in-fedora/" rel="bookmark">Set up the VNC Server in Fedora</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.g-loaded.eu/2005/11/10/be-your-own-ca/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>

