-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfetch-crl.cnf.example
359 lines (357 loc) · 16.1 KB
/
fetch-crl.cnf.example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
#
# EXAMPLE configuration file for Fetch-crl3
# @(#)$Id$
#
# configuration file fetch-crl3
# use SEMICOLON (;) or \001 (^A) as list separators in values
#
# ---------------------------------------------------------------------------
# cfgdir sets the directory where subordinate configuration files are
# found. These files are read in addition to the main config file.
# The default directory is /etc/fetch-crl.d/ and is used by default, so
# to suppress this behaviour set this to the empty value ""
#
# cfgdir = /etc/fetch-crl.d
#
# ---------------------------------------------------------------------------
# infoset set the location where the meta-data files (.info or .crl_url)
# are help by default. All trust anchors listed there are processes, so
# to suppress this behaviour set this to the empty value ""
#
# infodir = /etc/grid-security/certificates
#
# ---------------------------------------------------------------------------
# cadir sets the location where the trust anchors themselves are found, as
# PEM files, to be used in the CRL verification by openssl. They are usually
# names after the trust anchor proper name ("alias.0"), or after the filename
# of the trust anchor, the basename of the meta-data file name ("hash.0").
# It defaults to infodir
#
# cadir = /etc/grid-security/certificates
#
# ---------------------------------------------------------------------------
# output sets the location where the retrieved CRLs are written by default.
# It can be overridden on a per-output-format basis by setting the
# "output_<fmt>" options. It should point to a directory (even for the
# NSS output format. It defaults to infodir
#
# output = /etc/grid-security/certificates
#
# ---------------------------------------------------------------------------
# statedir points to the directory where per-CRL state files are kept. These
# state files record the retrieval time, last-retrieved (modification) time,
# best-before date and the (cached) content of the CRL. For the purposes of
# the CRL state, all CRL URLs for a particular trust anchor index are
# considered equal.
# If it is unset, no state is preserved, but the last-retrieved time is
# guessed from the modification time. If statedir does not exist, or is
# not writable, it is not used but silently ignored. Writeability is
# determined by perl's "-w" test.
# It defaults to /var/cache/fetch-crl
#
# statedir = /var/cache/fetch-crl
#
# ---------------------------------------------------------------------------
# formats lists one or more ways to write out the CRL to the output
# directories. It can be one or more of "openssl", "der", "pem", or "nss"
# in a comma-separated list.
# * the "openssl" format writes out "hash.rX" files, with <hash> being the
# first 4 bytes of the digest of the subject DN, and "X" a sequence number
# of the CRL starting at 0 (".r0"). When used with OpenSSL version 1.0.0
# or above, it can write out the CRL with two possible hash algorithms at
# the same time: the 'old' MD5 of the binary subject DN representation, or
# the 'new' SHA1 based digest of the canonical representation. Whether
# one or two hashes are written is determined by the "opensslmode" option.
# * "pem" writes out the CRL in PEM (RFC1421) format, to the file named
# after the "nametemplate_pem" setting (default: @ANCHORNAME@.@R@.crl.pem)
# in the output or output_pem directory
# * "der" does the same in DER binary format, to a file names
# after the "nametemplate_der" setting (default: @ANCHORNAME@.@R@.crl)
# in the output or output_der directory
# * "nss" adds (or replaces) the named CRL in the NSS database in
# <output>/<nssdbprefix>cert8.db, using the Mozilla crlutil tool
#
# formats = openssl
#
# ---------------------------------------------------------------------------
# specialised output directories
#
# output_pem = /etc/pki/tls/certs
# output_der = /var/tmp
# output_nss = /etc/pki/nssdb
#
# ---------------------------------------------------------------------------
# name templates are used to construct the file name of a CRL for installation
# based on the meta-data of the CA. It uses token replacement to construct
# a specific and unique filename. The tokens recognised are the same as those
# of the pre- and postpend URLs:
# @ANCHORNAME@ base name of the trust anchor meta-data file name
# @ALIAS@ alias name of the trust anchor from the info file (defaults
# to the @ANCHORNAME@)
# @R@ the sequence number of the CRL for this trust anchor
#
# nametemplate_der = @ANCHORNAME@.@R@.crl
# nametemplate_pem = @ANCHORNAME@.@R@.crl.pem
#
# ---------------------------------------------------------------------------
# catemplate has a (list of) potential names of the certificate of the
# trust anchor -- it is used to find the CA data for verifying the
# retrieved CRLs. Even if you only use NSS databases, you need a directory
# with PEM formatted certificates of the issuing CAs.
#
# catemplate = @ALIAS@.pem; @ALIAS@.@R@; @ANCHORNAME@.@R@
#
# When @HASH@ (c_hash from default OpenSSL version as based on the retrieved
# CRL) is used in this template list, a CRL will *always* be retrieved first,
# even if no corresponding trust anchor is found later. Use of @HASH@ is
# only recommended in case the name of the crl_url or info file is different
# from the name of the trust anchor.
#
# catemplate = @ALIAS@.pem; @ALIAS@.@R@; @ANCHORNAME@.@R@; @HASH@.0
#
# ---------------------------------------------------------------------------
# opensslmode is used if the openssl format for output is specified and also
# OpenSSL version 1.0.0 or higher are used. If so, you can have the CRL data
# be written out twice, once with the 'old' and once with the 'new' hash style
# Default is dual mode, so if OpenSSL 1.x is present, by default TWO files
# are written
#
# opensslmode = dual
# opensslmode = single
#
# ---------------------------------------------------------------------------
# nonssverify disables the checking of imported CRLs into an NSS database.
# so that you can create a database withonly CRLs, and no CAs. It passes the
# "-B" option to the crlutil tool
#
# nonssverify
#
# ---------------------------------------------------------------------------
# use up to <parallelism> thread in parallel to retrieve and install CRLs
# This feature is likely NOT COMPATIBLE with the use of NSS databases for
# CRLs, due to thread contention issues
#
# parallelism = 5
#
# ---------------------------------------------------------------------------
# wait up to <randomwait> seconds before doing anything at all
# useful for randoming the start time and download from cron across the world
#
# randomwait = 0
#
# ---------------------------------------------------------------------------
# logmode defined how the log and error messages are written out:
# direct - print them immediately, only the message
# qualified - print immediately, but prexif it with the message type
# "WARN", "ERROR", "VERBOSE(x)", or "DEBUG(x)"
# cache - save messages and dump them all at once at the end
# syslog - write the message to system with a decent severity level
# using facility <syslogfacility> (default: daemon)
#
# logmode = qualified
#
# ---------------------------------------------------------------------------
# wait at most <httptimeout> seconds for the retrieval of a data blob
# from a remote URL (http, https, or ftp). The timeout covers the whole
# retrieval process, incliding DNS resolution. Default is 120 seconds.
#
# httptimeout = 30
#
# ---------------------------------------------------------------------------
# httpproxy sets the url for the HTTP proxy to use (in perl LWP style). Or
# use ENV to pick up the settings from the environment
#
# http_proxy = http://localhost:8001/
#
# ---------------------------------------------------------------------------
# nowarnings suppresses the pritning and logging or any and all warnings (but
# not errors or verbose messages)
#
# nowarnings
#
# ---------------------------------------------------------------------------
# noerrors suppresses the pritning and logging or any and all errors (but
# not warnings or verbose messages). It also suppresses retrieval errors.
#
# noerrors
#
# ---------------------------------------------------------------------------
# rcmode determines if the return code of fetch-crl will be influenced by
# CRL retrieval errors. If rcmode is "normal" (default), any reported errors
# will cause the return exit status to be "1".
# normal - both retrieval and other errors set exit code 1
# differentiated - retrieval errors result in exit code 2, presence
# of any other reported errors result in exit 1
# noretrievalerrors - retrieval errors only results in exit code 0, presence
# of any other reported errors result in exit 1
# Note that setting "noerrors" will suppress retrieval errors entirely!
#
# rcmode = normal
#
# ---------------------------------------------------------------------------
# noquiet ignores a single "-q" option on the commandline and honours the
# verbosity set here even if -q is specified. To counter this setting, give
# at least two (2) "-q" arguments
#
# noquiet
#
# ---------------------------------------------------------------------------
# agingtolerance sets the time in hours before retrieval warnings become
# errors for a CRL retrieval. If you also suppress warnings, you will
# prevent any annoying messages for a trust anchor for up to <hrs> hours.
# The IGTF currently recommends an aging tolerance of 24 hours, to allow
# for network disruptions and connectivity problems.
#
# agingtolerance = 24
#
# ---------------------------------------------------------------------------
# cache_control_request sends a cache-control max-age hint towards the
# server in the HTTP request, that suggests to intermediate caches and
# reverse proxies to cache CRL replies no longer than the specified time
# This control is a hint towards caching servers and CDNs and cannot be
# enforced. It does NOT affect the cache local to fetch-crl
# Default is unset, and no Cache-control header will be sent unless this
# config option is specified
#
# cache_control_request = 3600
#
# ---------------------------------------------------------------------------
# prepend_url URLs are tried first before using any URLs form the crl_url
# file or the .info crl_url (crl_url.0) fields
#
# prepend_url = file:///share/grid-security/certificates/@ALIAS@.r@R@
#
# ---------------------------------------------------------------------------
# postpend_url URLs are tried last, only if all URLs form the crl_url file
# or the .info crl_url (crl_url.0) fields have already failed or timed out
#
# postpend_url = http://dist.eugridpma.info/certificates/@ANCHORNAME@.r@R@
#
# ---------------------------------------------------------------------------
# path to openssl version to use
# openssl = /usr/bin/openssl
#
# ---------------------------------------------------------------------------
# path to use to find utilities like OpenSSL or crlutil. Default leaves it
# unmodified
#
# path = /bin:/usr/bin:/usr/ucb
#
# ---------------------------------------------------------------------------
# settings "backups" will trigger the generation of backup files (~ files)
# when writing CRLs to an output destination.
#
# backups
#
# ---------------------------------------------------------------------------
# stateless supresses any use of the state directory, even if it exists and
# is writable
#
# stateless
#
# ---------------------------------------------------------------------------
# By default, the perl LWP library does not use IPv6 network sockets. The
# perl module Net::INET6GLUE::INET6_as_INET can mitigate this behaviour
# by re-mapping all INET socket calls to INET6 socket calls. If you have
# the Net::INET6Glue module installed, you may enable this flag in the
# cofiguration. Note: the Net::INET6Glue module MUST be installed for this
# flag to work. Installation of this module is options and it does not
# ship by default with fetch-crl3. You can obtain this module from CPAN.
#
# inet6glue
#
# ---------------------------------------------------------------------------
# To run a script after the completion of every fetch-crl run, set this
# path to point to an executable. The named program will be invoked
# with the following arguments
# "v1" "global" <infodir-path> <cadir-path> <output-path>
# - return code of the program will influence return status of fetch-crl
# - this must be a program path - no arguments are allowed here. Use wrapping
# in a script if you must pass your own arguments as well
#
# postexec = <path>
#
# ---------------------------------------------------------------------------
# override the UserAgent string used for all downloads. This may be needed
# if you hit an over-active firewall or proxy in your network path that
# blocks apparent libwww-perl user agents. Can also be set per trust anchor
#
# user_agent = <string>
#
# ---------------------------------------------------------------------------
# override version or packager to influence the User-Agent header in http
# requests. But please leave them alone
# version = 3.0
# packager = EUGridPMA
# ===========================================================================
# PER TRUST ANCHOR OVERRIDES
# ===========================================================================
#
# many settings can be overrules in a per-trust anchor section of the
# configuration file. For each trust anchor, only a SINGLE override
# section will be used. If a section names after the @ALIAS@ exists,
# it will take precedence over any section named after @ANCHORNAME@.
#
# To have a section work with either ".info" or ".crl_url" files, name it
# after the @ANCHORNAME@, since that one will be the same for both.
# Example: the DutchGrid CA "NIKHEF" can be either [NIKHEF] or [16da7552]
# (the latter is the commonly used file name), but using [16da7552] will
# result in the section being recognised in both cases
#
#
[16da7552]
# ---------------------------------------------------------------------------
# agingtolerance for this trust anchor specifically. Use it if the retrieval
# for this CA is unreliable.
#
# agingtolerance = 12
#
# ---------------------------------------------------------------------------
# replace the list of CRL URLs for this CA and this CRL sequence number
# by a completely new set. E.g. from a different place, or a local
# cache, or ...
#
# crl_url.0 = http://ca.dutchgrid.nl/medium/cacrl.pem; file:///etc/grid-security/certificates/16da7552.r0
#
# ---------------------------------------------------------------------------
# To never hear of this CA again, suppress both errors and warnings:
#noerrors
#nowarnings
#
# ---------------------------------------------------------------------------
# Do not process symlinked meta-data, preventing triple downloads with
# the new-format IGTF distribution before release 1.37 (1.33 up to and
# including 1.36 also symlinked the .info file to the hash names)
#nosymlinks
#
# ---------------------------------------------------------------------------
# To run a script after the successful completion of each CRL retrieval set
# path to point to an executable. The named program will be invoked
# with the following arguments
# "v1" "ta" <ta-alias> <infofilename> <cadir-path> <output-path>
# - return code of the program will influence return status of fetch-crl
# - program may run IN PARALLEL, so should be written to permit concurrent
# execution
# - this must be a program path - no arguments are allowed here. Use wrapping
# in a script if you must pass your own arguments as well
#
# postexec = <path>
#
# ---------------------------------------------------------------------------
# You can also (un) set the following on a per-trust anchor basis:
#
# (no)prepend_url (no)postpend_url (no)http_proxy (no)statedir --
# either remove a global setting, or put in a new setting with value
#
# (no)warnings (no)noerrors (no)nocache --
# override a global setting (no value possible)
#
# agingtolerance httptimeout nametemplate_der nametemplate_pem
# cadir catemplate user_agent
# set these to a local value (but they cannot be unset)
#
#
# Share and enjoy -- and remember that up to 7 verbosity levels are
# significant :-) "-vvvvvvvv" is a useful option ...
#
#