source: postlfs/security/openssl.xml@ 462878e4

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 462878e4 was 462878e4, checked in by DJ Lucas <dj@…>, 15 years ago

Moved root certificates handling to OpenSSL page.

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

  • Property mode set to 100644
File size: 11.6 KB
Line 
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
7 <!ENTITY openssl-download-http "http://www.openssl.org/source/openssl-&openssl-version;.tar.gz">
8 <!ENTITY openssl-download-ftp "ftp://ftp.openssl.org/source/openssl-&openssl-version;.tar.gz">
9 <!ENTITY openssl-md5sum "a5cb5f6c3d11affb387ecf7a997cac0c">
10 <!ENTITY openssl-size "3.7 MB">
11 <!ENTITY ca-bundle-download "http://anduin.linuxfromscratch.org/files/BLFS/BLFS-ca-bundle-&ca-bundle-version;.tar.bz2">
12 <!ENTITY ca-bundle-size "192 KB">
13 <!ENTITY ca-bundle-md5sum "a5e85c3df9ef9a192eb5e5cdf94ebb72">
14 <!ENTITY openssl-buildsize "47 MB">
15 <!ENTITY openssl-time "1.3 SBU (additional 0.3 SBU to run the test suite)">
16]>
17
18<sect1 id="openssl" xreflabel="OpenSSL-&openssl-version;">
19 <?dbhtml filename="openssl.html"?>
20
21 <sect1info>
22 <othername>$LastChangedBy$</othername>
23 <date>$Date$</date>
24 </sect1info>
25
26 <title>OpenSSL-&openssl-version;</title>
27
28 <indexterm zone="openssl">
29 <primary sortas="a-OpenSSL">OpenSSL</primary>
30 </indexterm>
31
32 <sect2 role="package">
33 <title>Introduction to OpenSSL</title>
34
35 <para>The <application>OpenSSL</application> package contains management
36 tools and libraries relating to cryptography. These are useful for
37 providing cryptography functions to other packages, notably
38 <application>OpenSSH</application>, email applications and web browsers
39 (for accessing HTTPS sites).</para>
40
41 <bridgehead renderas="sect3">Package Information</bridgehead>
42 <itemizedlist spacing="compact">
43 <listitem>
44 <para>Download (HTTP): <ulink url="&openssl-download-http;"/></para>
45 </listitem>
46 <listitem>
47 <para>Download (FTP): <ulink url="&openssl-download-ftp;"/></para>
48 </listitem>
49 <listitem>
50 <para>Download MD5 sum: &openssl-md5sum;</para>
51 </listitem>
52 <listitem>
53 <para>Download size: &openssl-size;</para>
54 </listitem>
55 <listitem>
56 <para>CA Bundle Download: <ulink url="&ca-bundle-download;"/></para>
57 </listitem>
58 <listitem>
59 <para>CA Bundle size: &ca-bundle-size;</para>
60 </listitem>
61 <listitem>
62 <para>CA Bundle MD5 sum: &ca-bundle-md5sum;</para>
63 </listitem>
64 <listitem>
65 <para>Estimated disk space required: &openssl-buildsize;</para>
66 </listitem>
67 <listitem>
68 <para>Estimated build time: &openssl-time;</para>
69 </listitem>
70 </itemizedlist>
71
72 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
73 <itemizedlist spacing='compact'>
74 <listitem>
75 <para>Required patch: <ulink
76 url="&patch-root;/openssl-&openssl-version;-fix_manpages-1.patch"/></para>
77 </listitem>
78 </itemizedlist>
79
80 <bridgehead renderas="sect3">OpenSSL Dependencies</bridgehead>
81
82 <bridgehead renderas="sect4">Recommended</bridgehead>
83 <para role="recommended"><xref linkend="bc"/>(if you run the test suite
84 during the build)</para>
85
86 <bridgehead renderas="sect4">Optional</bridgehead>
87 <para role="optional"><xref linkend="mitkrb"/> or
88 <xref linkend="heimdal"/></para>
89
90 <para condition="html" role="usernotes">User Notes:
91 <ulink url='&blfs-wiki;/OpenSSL'/></para>
92
93 </sect2>
94
95 <sect2 role="installation">
96 <title>Installation of OpenSSL</title>
97
98 <para>Install <application>OpenSSL</application> by running
99 the following commands:</para>
100
101<screen><userinput>patch -Np1 -i ../openssl-&openssl-version;-fix_manpages-1.patch &amp;&amp;
102tar -vxf ../BLFS-ca-bundle-&ca-bundle-version;.tar.bz2 &amp;&amp;
103./config --prefix=/usr \
104 --openssldir=/etc/ssl \
105 shared \
106 zlib-dynamic &amp;&amp;
107make</userinput></screen>
108
109 <para>To test the results, issue: <command>make test</command>.</para>
110
111 <!-- <para>To test the results, issue: <command>make test</command>. Note that the
112 test results/output depend on the availability of /etc/ssl/openssl.cnf. If
113 running the tests for the first time run the following as the
114 <systemitem class="username">root</systemitem> user before running the
115 tests:</para>
116
117<screen role="root"><userinput>install -v -m755 d /etc/ssl &amp;&amp;
118install -v ./apps/openssl.cnf /etc/ssl/</userinput></screen> -->
119
120 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
121
122<screen role="root"><userinput>make MANDIR=/usr/share/man install &amp;&amp;
123
124cp -v -r certs /etc/ssl &amp;&amp;
125
126install -v -d -m755 /usr/share/doc/openssl-&openssl-version; &amp;&amp;
127cp -v -r doc/{HOWTO,README,*.{txt,html,gif}} \
128 /usr/share/doc/openssl-&openssl-version;</userinput></screen>
129
130 <para>While still the <systemitem class="username">root</systemitem> user,
131 create a single file that contains all of the installed certificates:</para>
132
133<screen role="root"><userinput>for pem in /etc/ssl/certs/*.pem
134do
135 cat $pem
136 echo ""
137done &gt; /etc/ssl/ca-bundle.crt</userinput></screen>
138
139 </sect2>
140
141 <sect2 role="commands">
142 <title>Command Explanations</title>
143
144 <para>
145 <command>tar -vxf ../BLFS-ca-bundle-&ca-bundle-version;.tar.bz2</command>:
146 OpenSSL no longer includes any root certificates. This package adds root
147 certificates as provided by mozilla.org.</para>
148
149 <para><parameter>shared</parameter>: This parameter forces the creation of
150 shared libraries along with the static libraries.</para>
151
152 <para><parameter>zlib-dynamic</parameter>: This parameter adds
153 compression/decompression functionality using the
154 <filename class="libraryfile">libz</filename> library.</para>
155
156 <para><option>no-rc5 no-idea</option>: When added to the
157 <command>./config</command> command, this will eliminate the building
158 of those encryption methods. Patent licenses may be needed for you to
159 utilize either of those methods in your projects.</para>
160
161 <para><command>make MANDIR=/usr/share/man install</command>: This command
162 installs <application>OpenSSL</application> with the man pages in
163 <filename class='directory'>/usr/share/man</filename> instead of
164 <filename class='directory'>/etc/ssl/man</filename>.</para>
165
166 <!-- <para><option>enable-tlsext</option>: When added to the
167 <command>./config</command> command, this switch will enable TLS
168 Extensions. Currently this is only RFC 3546 and 4507bis for Server Name
169 Indication. This allows the use of multiple SSL certificates with multiple
170 virtual hosts in Apache, while using only one IP address and one port for
171 all virtual hosts.</para> -->
172
173 <!-- <para><option>zlib-dynamic</option>: When added to the
174 <command>./config</command> command, this switch will enable
175 use of <filename>libz.so</filename> for compression/decompression.</para> -->
176
177 <para><command>cp -v -r certs /etc/ssl</command>: This installs both the
178 sample certificates and documentation included with OpenSSL, and the
179 certificates that were extrated from the BLFS-ca-bundle-&ca-bundle-version;
180 package.</para>
181
182 <para><command>for pem in /etc/ssl/certs/*.pem...</command>: This group of
183 commands creates a single-file certificate bundle
184 (<filename>/etc/ssl/ca-bundle.crt</filename>) that is usable by many
185 other software packages. <filename>ca-bundle.crt</filename> should be
186 recreated anytime that a certificate is added to
187 <filename class="directory">/etc/ssl/certs</filename>.</para>
188
189 </sect2>
190
191 <sect2 role="configuration">
192 <title>Configuring OpenSSL</title>
193
194 <sect3 id="openssl-config">
195 <title>Config Files</title>
196
197 <para><filename>/etc/ssl/openssl.cnf</filename></para>
198
199 <indexterm zone="openssl openssl-config">
200 <primary sortas="e-etc-ssl-openssl.cnf">/etc/ssl/openssl.cnf</primary>
201 </indexterm>
202
203 </sect3>
204
205 <sect3>
206 <title>Configuration Information</title>
207
208 <para>Most people who just want to use <application>OpenSSL</application>
209 for providing functions to other programs such as
210 <application>OpenSSH</application> and web browsers won't need to worry
211 about configuring <application>OpenSSL</application>. Configuring
212 <application>OpenSSL</application> is an advanced topic and so those
213 who do would normally be expected to either know how to do it or to be
214 able to find out how to do it.</para>
215
216 </sect3>
217
218 </sect2>
219
220 <sect2 role="content">
221 <title>Contents</title>
222
223 <segmentedlist>
224 <segtitle>Installed Programs</segtitle>
225 <segtitle>Installed Libraries</segtitle>
226 <segtitle>Installed Directories</segtitle>
227
228 <seglistitem>
229 <seg>c_rehash and openssl</seg>
230 <seg>libcrypto.{so,a}, libssl.{so,a}, and additional encryption
231 libraries in /usr/lib/engines/ (lib4758cca.so, libaep.so,
232 libatalla.so, libcapi.so, libchil.so, libcswift.so, libgmp.so, libnuron.so,
233 libsureware.so, and libubsec.so)</seg>
234 <seg>/etc/ssl, /usr/include/ssl, /usr/lib/engines
235 and /usr/share/doc/openssl-&openssl-version;</seg>
236 </seglistitem>
237 </segmentedlist>
238
239 <variablelist>
240 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
241 <?dbfo list-presentation="list"?>
242 <?dbhtml list-presentation="table"?>
243
244 <varlistentry id="c_rehash">
245 <term><command>c_rehash</command></term>
246 <listitem>
247 <para>is a <application>Perl</application> script that scans
248 all files in a directory and adds symbolic links to their hash
249 values.</para>
250 <indexterm zone="openssl c_rehash">
251 <primary sortas="b-c_rehash">c_rehash</primary>
252 </indexterm>
253 </listitem>
254 </varlistentry>
255
256 <varlistentry id="openssl-prog">
257 <term><command>openssl</command></term>
258 <listitem>
259 <para>is a command-line tool for using the various cryptography
260 functions of <application>OpenSSL</application>'s crypto
261 library from the shell. It can be used for various functions which are
262 documented in <command>man 1 openssl</command>.</para>
263 <indexterm zone="openssl openssl-prog">
264 <primary sortas="b-openssl">openssl</primary>
265 </indexterm>
266 </listitem>
267 </varlistentry>
268
269 <varlistentry id="libcrypto">
270 <term><filename class='libraryfile'>libcrypto.{so,a}</filename></term>
271 <listitem>
272 <para>implements a wide range of cryptographic algorithms used in
273 various Internet standards. The services provided by this library
274 are used by the <application>OpenSSL</application> implementations of
275 SSL, TLS and S/MIME, and they have also been used to implement
276 <application>OpenSSH</application>, <application>OpenPGP</application>,
277 and other cryptographic standards.</para>
278 <indexterm zone="openssl libcrypto">
279 <primary sortas="c-libcrypto">libcrypto.{so,a}</primary>
280 </indexterm>
281 </listitem>
282 </varlistentry>
283
284 <varlistentry id="libssl">
285 <term><filename class='libraryfile'>libssl.{so,a}</filename></term>
286 <listitem>
287 <para>implements the Secure Sockets Layer (SSL v2/v3) and Transport
288 Layer Security (TLS v1) protocols. It provides a rich API, documentation
289 on which can be found by running <command>man 3 ssl</command>.</para>
290 <indexterm zone="openssl libssl">
291 <primary sortas="c-libssl">libssl.{so,a}</primary>
292 </indexterm>
293 </listitem>
294 </varlistentry>
295
296 </variablelist>
297
298 </sect2>
299
300</sect1>
Note: See TracBrowser for help on using the repository browser.