~andersk/ubuntu/oneiric/openssl/spurious-reboot

« back to all changes in this revision

Viewing changes to .pc/pod_s_server.misspell.patch/doc/apps/s_server.pod

  • Committer: Package Import Robot
  • Author(s): Steve Beattie
  • Date: 2011-09-14 22:06:03 UTC
  • mfrom: (11.1.23 sid)
  • Revision ID: package-import@ubuntu.com-20110914220603-tsuxw8z3kt4lx9oc
Tags: 1.0.0e-2ubuntu1
* Resynchronise with Debian, fixes CVE-2011-1945, CVE-2011-3207 and
  CVE-2011-3210 (LP: #850608). Remaining changes:
  - debian/libssl1.0.0.postinst:
    + Display a system restart required notification bubble on libssl1.0.0
      upgrade.
    + Use a different priority for libssl1.0.0/restart-services depending
      on whether a desktop, or server dist-upgrade is being performed.
  - debian/{libssl1.0.0-udeb.dirs, control, rules}: Create
    libssl1.0.0-udeb, for the benefit of wget-udeb (no wget-udeb package
    in Debian).
  - debian/{libcrypto1.0.0-udeb.dirs, libssl1.0.0.dirs, libssl1.0.0.files,
    rules}: Move runtime libraries to /lib, for the benefit of
    wpasupplicant.
  - debian/patches/aesni.patch: Backport Intel AES-NI support, now from
    http://rt.openssl.org/Ticket/Display.html?id=2065 rather than the
    0.9.8 variant.
  - debian/patches/Bsymbolic-functions.patch: Link using
    -Bsymbolic-functions.
  - debian/patches/perlpath-quilt.patch: Don't change perl #! paths under
    .pc.
  - debian/rules:
    + Don't run 'make test' when cross-building.
    + Use host compiler when cross-building.  Patch from Neil Williams.
    + Don't build for processors no longer supported: i486, i586 (on
      i386), v8 (on sparc).
    + Fix Makefile to properly clean up libs/ dirs in clean target.
    + Replace duplicate files in the doc directory with symlinks.
* debian/libssl1.0.0.postinst: only display restart notification on
  servers (LP: #244250)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
=pod
 
3
 
 
4
=head1 NAME
 
5
 
 
6
s_server - SSL/TLS server program
 
7
 
 
8
=head1 SYNOPSIS
 
9
 
 
10
B<openssl> B<s_server>
 
11
[B<-accept port>]
 
12
[B<-context id>]
 
13
[B<-verify depth>]
 
14
[B<-Verify depth>]
 
15
[B<-crl_check>]
 
16
[B<-crl_check_all>]
 
17
[B<-cert filename>]
 
18
[B<-certform DER|PEM>]
 
19
[B<-key keyfile>]
 
20
[B<-keyform DER|PEM>]
 
21
[B<-pass arg>]
 
22
[B<-dcert filename>]
 
23
[B<-dcertform DER|PEM>]
 
24
[B<-dkey keyfile>]
 
25
[B<-dkeyform DER|PEM>]
 
26
[B<-dpass arg>]
 
27
[B<-dhparam filename>]
 
28
[B<-nbio>]
 
29
[B<-nbio_test>]
 
30
[B<-crlf>]
 
31
[B<-debug>]
 
32
[B<-msg>]
 
33
[B<-state>]
 
34
[B<-CApath directory>]
 
35
[B<-CAfile filename>]
 
36
[B<-nocert>]
 
37
[B<-cipher cipherlist>]
 
38
[B<-quiet>]
 
39
[B<-no_tmp_rsa>]
 
40
[B<-ssl2>]
 
41
[B<-ssl3>]
 
42
[B<-tls1>]
 
43
[B<-no_ssl2>]
 
44
[B<-no_ssl3>]
 
45
[B<-no_tls1>]
 
46
[B<-no_dhe>]
 
47
[B<-bugs>]
 
48
[B<-hack>]
 
49
[B<-www>]
 
50
[B<-WWW>]
 
51
[B<-HTTP>]
 
52
[B<-engine id>]
 
53
[B<-tlsextdebug>]
 
54
[B<-no_ticket>]
 
55
[B<-id_prefix arg>]
 
56
[B<-rand file(s)>]
 
57
 
 
58
=head1 DESCRIPTION
 
59
 
 
60
The B<s_server> command implements a generic SSL/TLS server which listens
 
61
for connections on a given port using SSL/TLS.
 
62
 
 
63
=head1 OPTIONS
 
64
 
 
65
=over 4
 
66
 
 
67
=item B<-accept port>
 
68
 
 
69
the TCP port to listen on for connections. If not specified 4433 is used.
 
70
 
 
71
=item B<-context id>
 
72
 
 
73
sets the SSL context id. It can be given any string value. If this option
 
74
is not present a default value will be used.
 
75
 
 
76
=item B<-cert certname>
 
77
 
 
78
The certificate to use, most servers cipher suites require the use of a
 
79
certificate and some require a certificate with a certain public key type:
 
80
for example the DSS cipher suites require a certificate containing a DSS
 
81
(DSA) key. If not specified then the filename "server.pem" will be used.
 
82
 
 
83
=item B<-certform format>
 
84
 
 
85
The certificate format to use: DER or PEM. PEM is the default.
 
86
 
 
87
=item B<-key keyfile>
 
88
 
 
89
The private key to use. If not specified then the certificate file will
 
90
be used.
 
91
 
 
92
=item B<-keyform format>
 
93
 
 
94
The private format to use: DER or PEM. PEM is the default.
 
95
 
 
96
=item B<-pass arg>
 
97
 
 
98
the private key password source. For more information about the format of B<arg>
 
99
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
 
100
 
 
101
=item B<-dcert filename>, B<-dkey keyname>
 
102
 
 
103
specify an additional certificate and private key, these behave in the
 
104
same manner as the B<-cert> and B<-key> options except there is no default
 
105
if they are not specified (no additional certificate and key is used). As
 
106
noted above some cipher suites require a certificate containing a key of
 
107
a certain type. Some cipher suites need a certificate carrying an RSA key
 
108
and some a DSS (DSA) key. By using RSA and DSS certificates and keys
 
109
a server can support clients which only support RSA or DSS cipher suites
 
110
by using an appropriate certificate.
 
111
 
 
112
=item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg>
 
113
 
 
114
addtional certificate and private key format and passphrase respectively.
 
115
 
 
116
=item B<-nocert>
 
117
 
 
118
if this option is set then no certificate is used. This restricts the
 
119
cipher suites available to the anonymous ones (currently just anonymous
 
120
DH).
 
121
 
 
122
=item B<-dhparam filename>
 
123
 
 
124
the DH parameter file to use. The ephemeral DH cipher suites generate keys
 
125
using a set of DH parameters. If not specified then an attempt is made to
 
126
load the parameters from the server certificate file. If this fails then
 
127
a static set of parameters hard coded into the s_server program will be used.
 
128
 
 
129
=item B<-no_dhe>
 
130
 
 
131
if this option is set then no DH parameters will be loaded effectively
 
132
disabling the ephemeral DH cipher suites.
 
133
 
 
134
=item B<-no_tmp_rsa>
 
135
 
 
136
certain export cipher suites sometimes use a temporary RSA key, this option
 
137
disables temporary RSA key generation.
 
138
 
 
139
=item B<-verify depth>, B<-Verify depth>
 
140
 
 
141
The verify depth to use. This specifies the maximum length of the
 
142
client certificate chain and makes the server request a certificate from
 
143
the client. With the B<-verify> option a certificate is requested but the
 
144
client does not have to send one, with the B<-Verify> option the client
 
145
must supply a certificate or an error occurs.
 
146
 
 
147
=item B<-crl_check>, B<-crl_check_all>
 
148
 
 
149
Check the peer certificate has not been revoked by its CA.
 
150
The CRL(s) are appended to the certificate file. With the B<-crl_check_all>
 
151
option all CRLs of all CAs in the chain are checked.
 
152
 
 
153
=item B<-CApath directory>
 
154
 
 
155
The directory to use for client certificate verification. This directory
 
156
must be in "hash format", see B<verify> for more information. These are
 
157
also used when building the server certificate chain.
 
158
 
 
159
=item B<-CAfile file>
 
160
 
 
161
A file containing trusted certificates to use during client authentication
 
162
and to use when attempting to build the server certificate chain. The list
 
163
is also used in the list of acceptable client CAs passed to the client when
 
164
a certificate is requested.
 
165
 
 
166
=item B<-state>
 
167
 
 
168
prints out the SSL session states.
 
169
 
 
170
=item B<-debug>
 
171
 
 
172
print extensive debugging information including a hex dump of all traffic.
 
173
 
 
174
=item B<-msg>
 
175
 
 
176
show all protocol messages with hex dump.
 
177
 
 
178
=item B<-nbio_test>
 
179
 
 
180
tests non blocking I/O
 
181
 
 
182
=item B<-nbio>
 
183
 
 
184
turns on non blocking I/O
 
185
 
 
186
=item B<-crlf>
 
187
 
 
188
this option translated a line feed from the terminal into CR+LF.
 
189
 
 
190
=item B<-quiet>
 
191
 
 
192
inhibit printing of session and certificate information.
 
193
 
 
194
=item B<-psk_hint hint>
 
195
 
 
196
Use the PSK identity hint B<hint> when using a PSK cipher suite.
 
197
 
 
198
=item B<-psk key>
 
199
 
 
200
Use the PSK key B<key> when using a PSK cipher suite. The key is
 
201
given as a hexadecimal number without leading 0x, for example -psk
 
202
1a2b3c4d.
 
203
 
 
204
=item B<-ssl2>, B<-ssl3>, B<-tls1>, B<-no_ssl2>, B<-no_ssl3>, B<-no_tls1>
 
205
 
 
206
these options disable the use of certain SSL or TLS protocols. By default
 
207
the initial handshake uses a method which should be compatible with all
 
208
servers and permit them to use SSL v3, SSL v2 or TLS as appropriate.
 
209
 
 
210
=item B<-bugs>
 
211
 
 
212
there are several known bug in SSL and TLS implementations. Adding this
 
213
option enables various workarounds.
 
214
 
 
215
=item B<-hack>
 
216
 
 
217
this option enables a further workaround for some some early Netscape
 
218
SSL code (?).
 
219
 
 
220
=item B<-cipher cipherlist>
 
221
 
 
222
this allows the cipher list used by the server to be modified.  When
 
223
the client sends a list of supported ciphers the first client cipher
 
224
also included in the server list is used. Because the client specifies
 
225
the preference order, the order of the server cipherlist irrelevant. See
 
226
the B<ciphers> command for more information.
 
227
 
 
228
=item B<-tlsextdebug>
 
229
 
 
230
print out a hex dump of any TLS extensions received from the server.
 
231
 
 
232
=item B<-no_ticket>
 
233
 
 
234
disable RFC4507bis session ticket support. 
 
235
 
 
236
=item B<-www>
 
237
 
 
238
sends a status message back to the client when it connects. This includes
 
239
lots of information about the ciphers used and various session parameters.
 
240
The output is in HTML format so this option will normally be used with a
 
241
web browser.
 
242
 
 
243
=item B<-WWW>
 
244
 
 
245
emulates a simple web server. Pages will be resolved relative to the
 
246
current directory, for example if the URL https://myhost/page.html is
 
247
requested the file ./page.html will be loaded.
 
248
 
 
249
=item B<-HTTP>
 
250
 
 
251
emulates a simple web server. Pages will be resolved relative to the
 
252
current directory, for example if the URL https://myhost/page.html is
 
253
requested the file ./page.html will be loaded. The files loaded are
 
254
assumed to contain a complete and correct HTTP response (lines that
 
255
are part of the HTTP response line and headers must end with CRLF).
 
256
 
 
257
=item B<-engine id>
 
258
 
 
259
specifying an engine (by its unique B<id> string) will cause B<s_server>
 
260
to attempt to obtain a functional reference to the specified engine,
 
261
thus initialising it if needed. The engine will then be set as the default
 
262
for all available algorithms.
 
263
 
 
264
=item B<-id_prefix arg>
 
265
 
 
266
generate SSL/TLS session IDs prefixed by B<arg>. This is mostly useful
 
267
for testing any SSL/TLS code (eg. proxies) that wish to deal with multiple
 
268
servers, when each of which might be generating a unique range of session
 
269
IDs (eg. with a certain prefix).
 
270
 
 
271
=item B<-rand file(s)>
 
272
 
 
273
a file or files containing random data used to seed the random number
 
274
generator, or an EGD socket (see L<RAND_egd(3)|RAND_egd(3)>).
 
275
Multiple files can be specified separated by a OS-dependent character.
 
276
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
 
277
all others.
 
278
 
 
279
=back
 
280
 
 
281
=head1 CONNECTED COMMANDS
 
282
 
 
283
If a connection request is established with an SSL client and neither the
 
284
B<-www> nor the B<-WWW> option has been used then normally any data received
 
285
from the client is displayed and any key presses will be sent to the client. 
 
286
 
 
287
Certain single letter commands are also recognized which perform special
 
288
operations: these are listed below.
 
289
 
 
290
=over 4
 
291
 
 
292
=item B<q>
 
293
 
 
294
end the current SSL connection but still accept new connections.
 
295
 
 
296
=item B<Q>
 
297
 
 
298
end the current SSL connection and exit.
 
299
 
 
300
=item B<r>
 
301
 
 
302
renegotiate the SSL session.
 
303
 
 
304
=item B<R>
 
305
 
 
306
renegotiate the SSL session and request a client certificate.
 
307
 
 
308
=item B<P>
 
309
 
 
310
send some plain text down the underlying TCP connection: this should
 
311
cause the client to disconnect due to a protocol violation.
 
312
 
 
313
=item B<S>
 
314
 
 
315
print out some session cache status information.
 
316
 
 
317
=back
 
318
 
 
319
=head1 NOTES
 
320
 
 
321
B<s_server> can be used to debug SSL clients. To accept connections from
 
322
a web browser the command:
 
323
 
 
324
 openssl s_server -accept 443 -www
 
325
 
 
326
can be used for example.
 
327
 
 
328
Most web browsers (in particular Netscape and MSIE) only support RSA cipher
 
329
suites, so they cannot connect to servers which don't use a certificate
 
330
carrying an RSA key or a version of OpenSSL with RSA disabled.
 
331
 
 
332
Although specifying an empty list of CAs when requesting a client certificate
 
333
is strictly speaking a protocol violation, some SSL clients interpret this to
 
334
mean any CA is acceptable. This is useful for debugging purposes.
 
335
 
 
336
The session parameters can printed out using the B<sess_id> program.
 
337
 
 
338
=head1 BUGS
 
339
 
 
340
Because this program has a lot of options and also because some of
 
341
the techniques used are rather old, the C source of s_server is rather
 
342
hard to read and not a model of how things should be done. A typical
 
343
SSL server program would be much simpler.
 
344
 
 
345
The output of common ciphers is wrong: it just gives the list of ciphers that
 
346
OpenSSL recognizes and the client supports.
 
347
 
 
348
There should be a way for the B<s_server> program to print out details of any
 
349
unknown cipher suites a client says it supports.
 
350
 
 
351
=head1 SEE ALSO
 
352
 
 
353
L<sess_id(1)|sess_id(1)>, L<s_client(1)|s_client(1)>, L<ciphers(1)|ciphers(1)>
 
354
 
 
355
=cut