|
|
d77b68 |
////
|
|
|
d77b68 |
Copyright (C) 2013 Red Hat, Inc.
|
|
|
d77b68 |
|
|
|
d77b68 |
This program is free software; you can redistribute it and/or modify
|
|
|
d77b68 |
it under the terms of the GNU General Public License as published by
|
|
|
d77b68 |
the Free Software Foundation; either version 2 of the License, or
|
|
|
d77b68 |
(at your option) any later version.
|
|
|
d77b68 |
|
|
|
d77b68 |
This program is distributed in the hope that it will be useful,
|
|
|
d77b68 |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
d77b68 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
d77b68 |
GNU General Public License for more details.
|
|
|
d77b68 |
////
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
update-ca-trust(8)
|
|
|
d77b68 |
==================
|
|
|
d77b68 |
:doctype: manpage
|
|
|
d77b68 |
:man source: update-ca-trust
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
NAME
|
|
|
d77b68 |
----
|
|
|
d77b68 |
update-ca-trust - manage consolidated and dynamic configuration of CA
|
|
|
d77b68 |
certificates and associated trust
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
SYNOPSIS
|
|
|
d77b68 |
--------
|
|
|
d77b68 |
*update-ca-trust* ['COMMAND']
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
DESCRIPTION
|
|
|
d77b68 |
-----------
|
|
|
d77b68 |
update-ca-trust(8) is used to manage a consolidated and dynamic configuration
|
|
|
d77b68 |
feature of Certificate Authority (CA) certificates and associated trust.
|
|
|
d77b68 |
|
|
|
d77b68 |
The feature is available for new applications that read the
|
|
|
d77b68 |
consolidated configuration files found in the /etc/pki/ca-trust/extracted directory
|
|
|
d77b68 |
or that load the PKCS#11 module p11-kit-trust.so
|
|
|
d77b68 |
|
|
|
d77b68 |
Parts of the new feature are also provided in a way to make it useful
|
|
|
d77b68 |
for legacy applications.
|
|
|
d77b68 |
|
|
|
d77b68 |
Many legacy applications expect CA certificates and trust configuration
|
|
|
d77b68 |
in a fixed location, contained in files with particular path and name,
|
|
|
d77b68 |
or by referring to a classic PKCS#11 trust module provided by the
|
|
|
d77b68 |
NSS cryptographic library.
|
|
|
d77b68 |
|
|
|
d77b68 |
The dynamic configuration feature provides functionally compatible replacements
|
|
|
d77b68 |
for classic configuration files and for the classic NSS trust module named libnssckbi.
|
|
|
d77b68 |
|
|
|
d77b68 |
In order to enable legacy applications, that read the classic files or
|
|
|
d77b68 |
access the classic module, to make use of the new consolidated and dynamic configuration
|
|
|
d77b68 |
feature, the classic filenames have been changed to symbolic links.
|
|
|
d77b68 |
The symbolic links refer to dynamically created and consolidated
|
|
|
d77b68 |
output stored below the /etc/pki/ca-trust/extracted directory hierarchy.
|
|
|
d77b68 |
|
|
|
d77b68 |
The output is produced using the 'update-ca-trust' command (without parameters),
|
|
|
d77b68 |
or using the 'update-ca-trust extract' command.
|
|
|
d77b68 |
In order to produce the output, a flexible set of source configuration
|
|
|
d77b68 |
is read, as described in section <<sourceconf,SOURCE CONFIGURATION>>.
|
|
|
d77b68 |
|
|
|
d77b68 |
In addition, the classic PKCS#11 module
|
|
|
d77b68 |
is replaced with a new PKCS#11 module (p11-kit-trust.so) that dynamically
|
|
|
d77b68 |
reads the same source configuration.
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
[[sourceconf]]
|
|
|
d77b68 |
SOURCE CONFIGURATION
|
|
|
d77b68 |
--------------------
|
|
|
d77b68 |
The dynamic configuration feature uses several source directories that
|
|
|
d77b68 |
will be scanned for any number of source files. *It is important to select
|
|
|
d77b68 |
the correct subdirectory for adding files, as the subdirectory defines how
|
|
|
d77b68 |
contained certificates will be trusted or distrusted, and which file formats are read.*
|
|
|
d77b68 |
|
|
|
d77b68 |
Files in *subdirectories below the directory hierarchy /usr/share/pki/ca-trust-source/* contain CA certificates and
|
|
|
d77b68 |
trust settings in the PEM file format. The trust settings found here will be
|
|
|
d77b68 |
interpreted with a *low priority*.
|
|
|
d77b68 |
|
|
|
d77b68 |
Files in *subdirectories below the directory hierarchy /etc/pki/ca-trust/source/* contain CA certificates and
|
|
|
d77b68 |
trust settings in the PEM file format. The trust settings found here will be
|
|
|
d77b68 |
interpreted with a *high priority*.
|
|
|
d77b68 |
|
|
|
d77b68 |
.You may use the following rules of thumb to decide, whether your configuration files should be added to the /etc or rather to the /usr directory hierarchy:
|
|
|
d77b68 |
* If you are manually adding a configuration file to a system, you probably
|
|
|
d77b68 |
want it to override any other default configuration, and you most likely should
|
|
|
d77b68 |
add it to the respective subdirectory in the /etc hierarchy.
|
|
|
d77b68 |
* If you are creating a package that provides additional root CA certificates,
|
|
|
d77b68 |
that is intended for distribution to several computer systems, but you still
|
|
|
d77b68 |
want to allow the administrator to override your list, then your package should
|
|
|
d77b68 |
add your files to the respective subdirectory in the /usr hierarchy.
|
|
|
d77b68 |
* If you are creating a package that is supposed to override the default system
|
|
|
d77b68 |
trust settings, that is intended for distribution to several computer systems, then your package should install the files to the respective
|
|
|
d77b68 |
subdirectory in the /etc hierarchy.
|
|
|
d77b68 |
|
|
|
d77b68 |
.*QUICK HELP 1*: To add a certificate in the simple PEM or DER file formats to the list of CAs trusted on the system:
|
|
|
d77b68 |
* add it as a new file to directory /etc/pki/ca-trust/source/anchors/
|
|
|
d77b68 |
* run 'update-ca-trust extract'
|
|
|
d77b68 |
|
|
|
d77b68 |
.*QUICK HELP 2*: If your certificate is in the extended BEGIN TRUSTED file format (which may contain distrust/blacklist trust flags, or trust flags for usages other than TLS) then:
|
|
|
d77b68 |
* add it as a new file to directory /etc/pki/ca-trust/source/
|
|
|
d77b68 |
* run 'update-ca-trust extract'
|
|
|
d77b68 |
|
|
|
d77b68 |
.In order to offer simplicity and flexibility, the way certificate files are treated depends on the subdirectory they are installed to.
|
|
|
d77b68 |
* simple trust anchors subdirectory: /usr/share/pki/ca-trust-source/anchors/ or /etc/pki/ca-trust/source/anchors/
|
|
|
d77b68 |
* simple blacklist (distrust) subdirectory: /usr/share/pki/ca-trust-source/blacklist/ or /etc/pki/ca-trust/source/blacklist/
|
|
|
d77b68 |
* extended format directory: /usr/share/pki/ca-trust-source/ or /etc/pki/ca-trust/source/
|
|
|
d77b68 |
|
|
|
d77b68 |
.In the main directories /usr/share/pki/ca-trust-source/ or /etc/pki/ca-trust/source/ you may install one or multiple files in the following file formats:
|
|
|
d77b68 |
* certificate files that include trust flags,
|
|
|
d77b68 |
in the BEGIN/END TRUSTED CERTIFICATE file format
|
|
|
d77b68 |
(any file name), which have been created using the openssl x509 tool
|
|
|
d77b68 |
and the -addreject -addtrust options.
|
|
|
d77b68 |
Bundle files with multiple certificates are supported.
|
|
|
d77b68 |
* files in the p11-kit file format using the .p11-kit file name
|
|
|
d77b68 |
extension, which can (e.g.) be used to distrust certificates
|
|
|
d77b68 |
based on serial number and issuer name, without having the
|
|
|
d77b68 |
full certificate available.
|
|
|
d77b68 |
(This is currently an undocumented format, to be extended later.
|
|
|
d77b68 |
For examples of the supported formats, see the files
|
|
|
d77b68 |
shipped with the ca-certificates package.)
|
|
|
d77b68 |
* certificate files without trust flags in either the DER file format or in
|
|
|
d77b68 |
the PEM (BEGIN/END CERTIFICATE) file format (any file name). Such files
|
|
|
d77b68 |
will be added with neutral trust, neither trusted nor distrusted.
|
|
|
d77b68 |
They will simply be known to the system, which might be helpful to
|
|
|
d77b68 |
assist cryptographic software in constructing chains of certificates.
|
|
|
d77b68 |
(If you want a CA certificate in these file formats to be trusted, you
|
|
|
d77b68 |
should remove it from this directory and move it to the
|
|
|
d77b68 |
./anchors subdirectory instead.)
|
|
|
d77b68 |
|
|
|
d77b68 |
In the anchors subdirectories /usr/share/pki/ca-trust-source/anchors/ or /etc/pki/ca-trust/source/anchors/
|
|
|
d77b68 |
you may install one or multiple certificates in either the DER file
|
|
|
d77b68 |
format or in the PEM (BEGIN/END CERTIFICATE) file format.
|
|
|
d77b68 |
Each certificate will be treated as *trusted* for all purposes.
|
|
|
d77b68 |
|
|
|
d77b68 |
In the blacklist subdirectories /usr/share/pki/ca-trust-source/blacklist/ or /etc/pki/ca-trust/source/blacklist/
|
|
|
d77b68 |
you may install one or multiple certificates in either the DER file
|
|
|
d77b68 |
format or in the PEM (BEGIN/END CERTIFICATE) file format.
|
|
|
d77b68 |
Each certificate will be treated as *distrusted* for all purposes.
|
|
|
d77b68 |
|
|
|
d77b68 |
Please refer to the x509(1) manual page for the documentation of the
|
|
|
d77b68 |
BEGIN/END CERTIFICATE and BEGIN/END TRUSTED CERTIFICATE file formats.
|
|
|
d77b68 |
|
|
|
d77b68 |
Applications that rely on a static file for a list of trusted CAs
|
|
|
d77b68 |
may load one of the files found in the /etc/pki/ca-trust/extracted
|
|
|
d77b68 |
directory. After modifying any file in the
|
|
|
d77b68 |
/usr/share/pki/ca-trust-source/ or /etc/pki/ca-trust/source/
|
|
|
d77b68 |
directories or in any of their subdirectories, or after adding a file,
|
|
|
d77b68 |
it is necessary to run the 'update-ca-trust extract' command,
|
|
|
d77b68 |
in order to update the consolidated files in /etc/pki/ca-trust/extracted/ .
|
|
|
d77b68 |
|
|
|
d77b68 |
Applications that load the classic PKCS#11 module using filename libnssckbi.so
|
|
|
d77b68 |
(which has been converted into a symbolic link pointing to the new module)
|
|
|
d77b68 |
and any application capable of
|
|
|
d77b68 |
loading PKCS#11 modules and loading p11-kit-trust.so, will benefit from
|
|
|
d77b68 |
the dynamically merged set of certificates and trust information stored in the
|
|
|
d77b68 |
/usr/share/pki/ca-trust-source/ and /etc/pki/ca-trust/source/ directories.
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
[[extractconf]]
|
|
|
d77b68 |
EXTRACTED CONFIGURATION
|
|
|
d77b68 |
-----------------------
|
|
|
d77b68 |
The directory /etc/pki/ca-trust/extracted/ contains generated CA certificate
|
|
|
d77b68 |
bundle files which are created and updated, based on the <<sourceconf,SOURCE CONFIGURATION>>
|
|
|
d77b68 |
by running the 'update-ca-trust extract' command.
|
|
|
d77b68 |
|
|
|
d77b68 |
If your application isn't able to load the PKCS#11 module p11-kit-trust.so,
|
|
|
d77b68 |
then you can use these files in your application to load a list of global
|
|
|
d77b68 |
root CA certificates.
|
|
|
d77b68 |
|
|
|
d77b68 |
Please never manually edit the files stored in this directory,
|
|
|
d77b68 |
because your changes will be lost and the files automatically overwritten,
|
|
|
d77b68 |
each time the 'update-ca-trust extract' command gets executed.
|
|
|
d77b68 |
|
|
|
d77b68 |
In order to install new trusted or distrusted certificates,
|
|
|
d77b68 |
please rather install them in the respective subdirectory below the
|
|
|
d77b68 |
/usr/share/pki/ca-trust-source/ or /etc/pki/ca-trust/source/
|
|
|
d77b68 |
directories, as described in the <<sourceconf,SOURCE CONFIGURATION>> section.
|
|
|
d77b68 |
|
|
|
d77b68 |
The directory /etc/pki/ca-trust/extracted/java/ contains
|
|
|
d77b68 |
a CA certificate bundle in the java keystore file format.
|
|
|
d77b68 |
Distrust information cannot be represented in this file format,
|
|
|
d77b68 |
and distrusted certificates are missing from these files.
|
|
|
d77b68 |
File cacerts contains CA certificates trusted for TLS server authentication.
|
|
|
d77b68 |
|
|
|
d77b68 |
The directory /etc/pki/ca-trust/extracted/openssl/ contains
|
|
|
d77b68 |
CA certificate bundle files in the extended BEGIN/END TRUSTED CERTIFICATE file format,
|
|
|
d77b68 |
as described in the x509(1) manual page.
|
|
|
d77b68 |
File ca-bundle.trust.crt contains the full set of all trusted
|
|
|
d77b68 |
or distrusted certificates, including the associated trust flags.
|
|
|
d77b68 |
|
|
|
d77b68 |
The directory /etc/pki/ca-trust/extracted/pem/ contains
|
|
|
d77b68 |
CA certificate bundle files in the simple BEGIN/END CERTIFICATE file format,
|
|
|
d77b68 |
as described in the x509(1) manual page.
|
|
|
d77b68 |
Distrust information cannot be represented in this file format,
|
|
|
d77b68 |
and distrusted certificates are missing from these files.
|
|
|
d77b68 |
File tls-ca-bundle.pem contains CA certificates
|
|
|
d77b68 |
trusted for TLS server authentication.
|
|
|
d77b68 |
File email-ca-bundle.pem contains CA certificates
|
|
|
d77b68 |
trusted for E-Mail protection.
|
|
|
d77b68 |
File objsign-ca-bundle.pem contains CA certificates
|
|
|
d77b68 |
trusted for code signing.
|
|
|
d77b68 |
|
|
|
d77b68 |
|
|
|
d77b68 |
COMMANDS
|
|
|
d77b68 |
--------
|
|
|
d77b68 |
(absent/empty command)::
|
|
|
d77b68 |
Same as the *extract* command described below. (However, the command may
|
|
|
d77b68 |
print fewer warnings, as this command is being run during rpm package
|
|
|
d77b68 |
installation, where non-fatal status output is undesired.)
|
|
|
d77b68 |
|
|
|
d77b68 |
*extract*::
|
|
|
d77b68 |
Instruct update-ca-trust to scan the <<sourceconf,SOURCE CONFIGURATION>> and produce
|
|
|
d77b68 |
updated versions of the consolidated configuration files stored below
|
|
|
d77b68 |
the /etc/pki/ca-trust/extracted directory hierarchy.
|
|
|
d77b68 |
|
|
|
d77b68 |
FILES
|
|
|
d77b68 |
-----
|
|
|
d77b68 |
/etc/pki/tls/certs/ca-bundle.crt::
|
|
|
d77b68 |
Classic filename, file contains a list of CA certificates trusted for TLS server authentication usage, in the simple BEGIN/END CERTIFICATE file format, without distrust information.
|
|
|
d77b68 |
This file is a symbolic link that refers to the consolidated output created by the update-ca-trust command.
|
|
|
d77b68 |
|
|
|
d77b68 |
/etc/pki/tls/certs/ca-bundle.trust.crt::
|
|
|
d77b68 |
Classic filename, file contains a list of CA certificates in the extended BEGIN/END TRUSTED CERTIFICATE file format, which includes trust (and/or distrust) flags specific to certificate usage.
|
|
|
d77b68 |
This file is a symbolic link that refers to the consolidated output created by the update-ca-trust command.
|
|
|
d77b68 |
|
|
|
d77b68 |
/etc/pki/java/cacerts::
|
|
|
d77b68 |
Classic filename, file contains a list of CA certificates trusted for TLS server authentication usage, in the Java keystore file format, without distrust information.
|
|
|
d77b68 |
This file is a symbolic link that refers to the consolidated output created by the update-ca-trust command.
|
|
|
d77b68 |
|
|
|
d77b68 |
/usr/share/pki/ca-trust-source::
|
|
|
d77b68 |
Contains multiple, low priority source configuration files as explained in section <<sourceconf,SOURCE CONFIGURATION>>. Please pay attention to the specific meanings of the respective subdirectories.
|
|
|
d77b68 |
|
|
|
d77b68 |
/etc/pki/ca-trust/source::
|
|
|
d77b68 |
Contains multiple, high priority source configuration files as explained in section <<sourceconf,SOURCE CONFIGURATION>>. Please pay attention to the specific meanings of the respective subdirectories.
|
|
|
d77b68 |
|
|
|
d77b68 |
/etc/pki/ca-trust/extracted::
|
|
|
d77b68 |
Contains consolidated and automatically generated configuration files for consumption by applications,
|
|
|
d77b68 |
which are created using the 'update-ca-trust extract' command. Don't edit files in this directory, because they will be overwritten.
|
|
|
d77b68 |
See section <<extractconf,EXTRACTED CONFIGURATION>> for additional details.
|
|
|
d77b68 |
|
|
|
d77b68 |
AUTHOR
|
|
|
d77b68 |
------
|
|
|
d77b68 |
Written by Kai Engert and Stef Walter.
|