2014-08-14 14:14:35 +00:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=for comment
|
|
|
|
Original text by James Westby, contributed under the OpenSSL license.
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2015-05-07 16:48:47 +00:00
|
|
|
c_rehash, rehash - Create symbolic links to files named by the hash values
|
2014-08-14 14:14:35 +00:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
2015-05-07 16:48:47 +00:00
|
|
|
B<openssl>
|
|
|
|
B<rehash>
|
2016-09-12 15:29:22 +00:00
|
|
|
B<[-h]>
|
2016-02-05 16:58:45 +00:00
|
|
|
B<[-help]>
|
2014-09-07 22:45:02 +00:00
|
|
|
B<[-old]>
|
|
|
|
B<[-n]>
|
|
|
|
B<[-v]>
|
2014-08-14 14:14:35 +00:00
|
|
|
[ I<directory>...]
|
|
|
|
|
2015-05-07 16:48:47 +00:00
|
|
|
B<c_rehash>
|
|
|
|
I<flags...>
|
|
|
|
|
2014-08-14 14:14:35 +00:00
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2015-05-07 16:48:47 +00:00
|
|
|
On some platforms, the OpenSSL B<rehash> command is available as
|
2015-09-08 02:21:38 +00:00
|
|
|
an external script called B<c_rehash>. They are functionally equivalent,
|
|
|
|
except for minor differences noted below.
|
2015-05-07 16:48:47 +00:00
|
|
|
|
|
|
|
B<rehash> scans directories and calculates a hash value of each
|
2014-08-30 21:56:31 +00:00
|
|
|
C<.pem>, C<.crt>, C<.cer>, or C<.crl>
|
2014-08-14 14:14:35 +00:00
|
|
|
file in the specified directory list and creates symbolic links
|
|
|
|
for each file, where the name of the link is the hash value.
|
2014-09-07 22:45:02 +00:00
|
|
|
(If the platform does not support symbolic links, a copy is made.)
|
2014-08-14 14:14:35 +00:00
|
|
|
This utility is useful as many programs that use OpenSSL require
|
|
|
|
directories to be set up like this in order to find certificates.
|
|
|
|
|
|
|
|
If any directories are named on the command line, then those are
|
|
|
|
processed in turn. If not, then the B<SSL_CERT_DIR> environment variable
|
2015-04-13 16:29:52 +00:00
|
|
|
is consulted; this should be a colon-separated list of directories,
|
2014-08-14 14:14:35 +00:00
|
|
|
like the Unix B<PATH> variable.
|
|
|
|
If that is not set then the default directory (installation-specific
|
|
|
|
but often B</usr/local/ssl/certs>) is processed.
|
|
|
|
|
|
|
|
In order for a directory to be processed, the user must have write
|
2015-09-08 02:21:38 +00:00
|
|
|
permissions on that directory, otherwise an error will be generated.
|
|
|
|
|
2014-08-14 14:14:35 +00:00
|
|
|
The links created are of the form C<HHHHHHHH.D>, where each B<H>
|
|
|
|
is a hexadecimal character and B<D> is a single decimal digit.
|
2015-05-07 16:48:47 +00:00
|
|
|
When processing a directory, B<rehash> will first remove all links
|
2015-09-08 02:21:38 +00:00
|
|
|
that have a name in that syntax, even if they are being used for some
|
|
|
|
other purpose.
|
2014-09-07 22:45:02 +00:00
|
|
|
To skip the removal step, use the B<-n> flag.
|
2014-08-14 14:14:35 +00:00
|
|
|
Hashes for CRL's look similar except the letter B<r> appears after
|
|
|
|
the period, like this: C<HHHHHHHH.rD>.
|
|
|
|
|
|
|
|
Multiple objects may have the same hash; they will be indicated by
|
|
|
|
incrementing the B<D> value. Duplicates are found by comparing the
|
|
|
|
full SHA-1 fingerprint. A warning will be displayed if a duplicate
|
|
|
|
is found.
|
|
|
|
|
2014-08-30 21:56:31 +00:00
|
|
|
A warning will also be displayed if there are files that
|
2015-09-08 02:21:38 +00:00
|
|
|
cannot be parsed as either a certificate or a CRL or if
|
|
|
|
more than one such object appears in the file.
|
|
|
|
|
|
|
|
=head2 Script Configuration
|
2014-08-14 14:14:35 +00:00
|
|
|
|
2015-09-08 02:21:38 +00:00
|
|
|
The B<c_rehash> script
|
|
|
|
uses the B<openssl> program to compute the hashes and
|
2014-08-14 14:14:35 +00:00
|
|
|
fingerprints. If not found in the user's B<PATH>, then set the
|
|
|
|
B<OPENSSL> environment variable to the full pathname.
|
|
|
|
Any program can be used, it will be invoked as follows for either
|
|
|
|
a certificate or CRL:
|
|
|
|
|
2014-09-07 22:45:02 +00:00
|
|
|
$OPENSSL x509 -hash -fingerprint -noout -in FILENAME
|
|
|
|
$OPENSSL crl -hash -fingerprint -noout -in FILENAME
|
2014-08-14 14:14:35 +00:00
|
|
|
|
2014-09-07 22:45:02 +00:00
|
|
|
where B<FILENAME> is the filename. It must output the hash of the
|
2014-08-14 14:14:35 +00:00
|
|
|
file on the first line, and the fingerprint on the second,
|
|
|
|
optionally prefixed with some text and an equals sign.
|
|
|
|
|
2014-09-07 22:45:02 +00:00
|
|
|
=head1 OPTIONS
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
2016-09-12 15:29:22 +00:00
|
|
|
=item B<-help> B<-h>
|
2016-02-05 16:58:45 +00:00
|
|
|
|
|
|
|
Display a brief usage message.
|
|
|
|
|
2014-09-07 22:45:02 +00:00
|
|
|
=item B<-old>
|
|
|
|
|
|
|
|
Use old-style hashing (MD5, as opposed to SHA-1) for generating
|
2015-09-08 02:21:38 +00:00
|
|
|
links to be used for releases before 1.0.0.
|
|
|
|
Note that current versions will not use the old style.
|
2014-09-07 22:45:02 +00:00
|
|
|
|
|
|
|
=item B<-n>
|
|
|
|
|
|
|
|
Do not remove existing links.
|
|
|
|
This is needed when keeping new and old-style links in the same directory.
|
|
|
|
|
|
|
|
=item B<-v>
|
|
|
|
|
|
|
|
Print messages about old links removed and new links created.
|
2015-05-07 16:48:47 +00:00
|
|
|
By default, B<rehash> only lists each directory as it is processed.
|
2014-09-07 22:45:02 +00:00
|
|
|
|
|
|
|
=back
|
|
|
|
|
2014-08-14 14:14:35 +00:00
|
|
|
=head1 ENVIRONMENT
|
|
|
|
|
|
|
|
=over
|
|
|
|
|
|
|
|
=item B<OPENSSL>
|
|
|
|
|
|
|
|
The path to an executable to use to generate hashes and
|
|
|
|
fingerprints (see above).
|
|
|
|
|
|
|
|
=item B<SSL_CERT_DIR>
|
|
|
|
|
|
|
|
Colon separated list of directories to operate on.
|
|
|
|
Ignored if directories are listed on the command line.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2015-08-17 19:21:33 +00:00
|
|
|
L<openssl(1)>,
|
|
|
|
L<crl(1)>.
|
|
|
|
L<x509(1)>.
|
2016-05-18 14:16:40 +00:00
|
|
|
|
2016-05-18 15:44:05 +00:00
|
|
|
=head1 COPYRIGHT
|
|
|
|
|
|
|
|
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
|
|
|
|
|
|
Licensed under the OpenSSL license (the "License"). You may not use
|
|
|
|
this file except in compliance with the License. You can obtain a copy
|
|
|
|
in the file LICENSE in the source distribution or at
|
|
|
|
L<https://www.openssl.org/source/license.html>.
|
|
|
|
|
|
|
|
=cut
|