source: postlfs/security/cacerts.xml@ 0a43695

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts lazarus lxqt perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 0a43695 was 0a43695, checked in by Ken Moffat <ken@…>, 6 years ago

tags

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@19788 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 10.0 KB
RevLine 
[c9b953e6]1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
[4a16903]7 <!ENTITY certhost "https://hg.mozilla.org/">
8 <!ENTITY certpath "/lib/ckfw/builtins/certdata.txt">
[dcad3e9]9 <!ENTITY cacerts-buildsize "6.5 MB (with all runtime deps)">
[4a16903]10 <!ENTITY cacerts-time "0.2 SBU (with all runtime deps)">
11
[120b315]12 <!ENTITY make-ca-download "https://github.com/djlucas/make-ca/archive/v&make-ca-version;/make-ca-&make-ca-version;.tar.gz">
[92dea9ae]13 <!ENTITY make-ca-size "36 KB">
14 <!ENTITY make-ca-md5sum "851f9e267f343c54db8caa87ec5b3d75">
[c9b953e6]15]>
16
17<sect1 id="cacerts" xreflabel="Certificate Authority Certificates">
18 <?dbhtml filename="cacerts.html"?>
19
20 <sect1info>
21 <othername>$LastChangedBy$</othername>
22 <date>$Date$</date>
23 </sect1info>
24
25 <title>Certificate Authority Certificates</title>
26
[4a16903]27 <para>Public Key Infrastructure (PKI) is a method to validate the
[45db70f]28 authenticity of an otherwise unknown entity across untrusted networks. PKI
[4a16903]29 works by establishing a chain of trust, rather than trusting each individual
30 host or entity explicitly. In order for a certificate presented by a remote
[45db70f]31 entity to be trusted, that certificate must present a complete chain of
[4a16903]32 certificates that can be validated using the root certificate of a
33 Certificate Authority (CA) that is trusted by the local machine.</para>
34
35 <para>Establishing trust with a CA involves validating things like company
36 address, ownership, contact information, etc., and ensuring that the CA has
[da0166b2]37 followed best practices, such as undergoing periodic security audits by
38 independent investigators and maintaining an always available certificate
[4a16903]39 revocation list. This is well outside the scope of BLFS (as it is for most
40 Linux distributions). The certificate store provided here is taken from the
41 Mozilla Foundation, who have established very strict inclusion policies
42 described
43 <ulink url="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/">here</ulink>.</para>
[c9b953e6]44
[0a43695]45 &lfs82_checked;
[c9b953e6]46
47 <indexterm zone="cacerts">
48 <primary sortas="a-cacerts">Certificate Authority Certificates</primary>
49 </indexterm>
50
51 <sect2 role="package">
52 <title>Introduction to Certificate Authorities</title>
53
54 <bridgehead renderas="sect3">Package Information</bridgehead>
55 <itemizedlist spacing="compact">
56 <listitem>
[30b7db74]57 <para>Download (HTTP): <ulink url="&make-ca-download;"/></para>
[c9b953e6]58 </listitem>
59 <listitem>
[30b7db74]60 <para>Download size: &make-ca-size;</para>
61 </listitem>
62 <listitem>
63 <para>Download MD5 Sum: &make-ca-md5sum;</para>
[c9b953e6]64 </listitem>
65 <listitem>
66 <para>Estimated disk space required: &cacerts-buildsize;</para>
67 </listitem>
68 <listitem>
69 <para>Estimated build time: &cacerts-time;</para>
70 </listitem>
71 </itemizedlist>
72
73 <bridgehead renderas="sect3">Certificate Authority Certificates Dependencies</bridgehead>
[94b42903]74<!--
[c9b953e6]75 <bridgehead renderas="sect4">Required</bridgehead>
[4a16903]76 <para role="required"><xref linkend="openssl"/></para>
[94b42903]77-->
[4a16903]78 <bridgehead renderas="sect4">Optional (runtime)</bridgehead>
79 <para role="optional">
[96e9478]80 <xref role="runtime" linkend="java"/> or
81 <xref role="runtime" linkend="openjdk"/>,
82 <xref role="runtime" linkend="nss"/>, and
83 <xref role="runtime" linkend="p11-kit"/>
84 </para>
[c9b953e6]85
86 <para condition="html" role="usernotes">User Notes:
87 <ulink url='&blfs-wiki;/cacerts'/></para>
88 </sect2>
89
90 <sect2 role="installation">
91 <title>Installation of Certificate Authority Certificates</title>
92
[120b315]93 <para>The <application>make-ca</application> script will download and
94 process the certificates included in the <filename>certdata.txt</filename>
95 file for use in multiple certificate stores (if the associated applications
96 are present on the system). Additionally, any local certificates stored in
[da0166b2]97 <filename>/etc/ssl/local</filename> will be imported to the certificate
[4a16903]98 stores. Certificates in this directory should be stored as PEM encoded
99 <application>OpenSSL</application> trusted certificates.</para>
100
101 <para>To create an <application>OpenSSL</application> trusted certificate
[120b315]102 from a regular PEM encoded file, you need to add trust arguments to the
[4a16903]103 <command>openssl</command> command, and create a new certificate. There are
[c10fe29]104 three trust types that are recognized by the
[120b315]105 <application>make-ca</application> script, SSL/TLS, S/Mime, and code
[c10fe29]106 signing. For example, using the
[120b315]107 <ulink url="http://www.cacert.org/">CAcert</ulink> roots, if you want to
108 trust both for all three roles, the following commands will create
[3da11ac]109 appropriate OpenSSL trusted certificates (run as the <systemitem
110 class="username">root</systemitem> user):</para>
[c10fe29]111
[3da11ac]112<screen role="nodump"><userinput>install -vdm755 /etc/ssl/local &amp;&amp;
[c10fe29]113wget http://www.cacert.org/certs/root.crt &amp;&amp;
[120b315]114wget http://www.cacert.org/certs/class3.crt &amp;&amp;
[c10fe29]115openssl x509 -in root.crt -text -fingerprint -setalias "CAcert Class 1 root" \
116 -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
[120b315]117 > /etc/ssl/local/CAcert_Class_1_root.pem &amp;&amp;
118openssl x509 -in class3.crt -text -fingerprint -setalias "CAcert Class 3 root" \
119 -addtrust serverAuth -addtrust emailProtection -addtrust codeSigning \
120 > /etc/ssl/local/CAcert_Class_3_root.pem</userinput></screen>
[c10fe29]121
122 <para>If one of the three trust arguments is omitted, the certificate is
123 neither trusted, nor rejected for that role. Clients that use
124 <application>OpenSSL</application> or <application>NSS</application>
125 encountering this certificate will present a warning to the user. Clients
126 using <application>GnuTLS</application> without
127 <application>p11-kit</application> support are not aware of trusted
[4a16903]128 certificates. To include this CA into the ca-bundle.crt (used for
[45db70f]129 <application>GnuTLS</application>), it must have <envar>serverAuth</envar>
[c10fe29]130 trust. Additionally, to explicitly disallow a certificate for a particular
131 use, replace the <parameter>-addtrust</parameter> flag with the
132 <parameter>-addreject</parameter> flag.</para>
[4a16903]133
134 <para>To install the various certificate stores, first install the
[120b315]135 <application>make-ca</application> script into the correct location.
[4a16903]136 As the <systemitem class="username">root</systemitem> user:</para>
137
[120b315]138<screen role="root"><userinput>make install</userinput></screen>
[4a16903]139
[120b315]140 <para>As the <systemitem class="username">root</systemitem> user, download
141 and update the certificate stores with the following command:</para>
[4a16903]142
[a90ec5a7]143 <note>
144 <para>If running the script a second time with the same version of
145 <filename>certdata.txt</filename>, for instance, to add additional stores
146 as the requisite software is installed, add the <parameter>-f</parameter>
[120b315]147 switch to the command line. If packaging, run <command>make-ca
[a90ec5a7]148 --help</command> to see all available command line options.</para>
149 </note>
150
[120b315]151<screen role="root"><userinput>/usr/sbin/make-ca -g</userinput></screen>
[4a16903]152
[120b315]153 <para>You should periodically update the store with the above command
154 either manually, or via a <phrase revision="sysv">cron job.</phrase>
155 <phrase revision="systemd">systemd timer. A timer is installed at
156 <filename>/etc/systemd/system/update-pki.timer</filename> that, if enabled,
157 will check for updates weekly.</phrase></para>
[4a16903]158
[120b315]159 <para>The default <filename>certdata.txt</filename> file provided by make-ca
160 is obtained from the mozilla-release branch, and is modified to provide a
161 Mercurial revision. This will be the correct version for most
[4a16903]162 systems. There are, however, several other variants of the file available
[e6af89ca]163 for use that might be preferred for one reason or another, including the
164 files shipped with Mozilla products in this book. RedHat and OpenSUSE,
165 for instance, use the version included in <xref linkend="nss"/>. Additional
166 upstream downloads are available at the links below.</para>
[4a16903]167
168 <itemizedlist spacing="compact">
169 <listitem>
170 <para>Mozilla Release (the version provided by BLFS):
171 <ulink url="&certhost;releases/mozilla-release/raw-file/default/security/nss&certpath;"/>
172 </para>
173 </listitem>
174 <listitem>
[da0166b2]175 <para>NSS (this is the latest available version):
[a3e625dd]176 <ulink url="&certhost;projects/nss/raw-file/tip&certpath;"/>
[4a16903]177 </para>
178 </listitem>
179 <listitem>
180 <para>Mozilla Central:
181 <ulink url="&certhost;mozilla-central/raw-file/default/security/nss&certpath;"/>
182 </para>
183 </listitem>
184 <listitem>
185 <para>Mozilla Beta:
186 <ulink url="&certhost;releases/mozilla-beta/raw-file/default/security/nss&certpath;"/>
187 </para>
188 </listitem>
189 <listitem>
190 <para>Mozilla Aurora:
191 <ulink url="&certhost;releases/mozilla-aurora/raw-file/default/security/nss&certpath;"/>
192 </para>
193 </listitem>
194 </itemizedlist>
[8b9034a]195
[c9b953e6]196 </sect2>
197
198 <sect2 role="content">
199 <title>Contents</title>
200
201 <segmentedlist>
202 <segtitle>Installed Programs</segtitle>
203 <segtitle>Installed Libraries</segtitle>
204 <segtitle>Installed Directories</segtitle>
205
206 <seglistitem>
[120b315]207 <seg>make-ca</seg>
[c9b953e6]208 <seg>None</seg>
[4a16903]209 <seg>/etc/ssl/{certs,java,local} and /etc/pki/{nssdb,anchors}</seg>
[c9b953e6]210 </seglistitem>
211 </segmentedlist>
212
213 <variablelist>
214 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
215 <?dbfo list-presentation="list"?>
216 <?dbhtml list-presentation="table"?>
217
218 <varlistentry id="make-ca">
[120b315]219 <term><command>make-ca</command></term>
[c9b953e6]220 <listitem>
[4a16903]221 <para>is a shell script that adapts a current version of
[30b7db74]222 <filename>certdata.txt</filename>, and prepares it for use
223 as the system certificate store.</para>
[c9b953e6]224 <indexterm zone="cacerts make-ca">
225 <primary sortas="b-make-ca">make-ca</primary>
226 </indexterm>
227 </listitem>
228 </varlistentry>
229 </variablelist>
230
231 </sect2>
232</sect1>
Note: See TracBrowser for help on using the repository browser.