CERTMAP.CONF(5)
π CERTMAP.CONF(5) β the file formats manual glow-up π
okay bestie, so this is the manual page for /etc/dirsrv/config/certmap.conf β a File Formats Manual situation, and honestly it's giving "tiny config file, huge responsibility." Let's get into it. π¦
β¨ NAME β¨
/etc/dirsrv/config/certmap.conf β the configuration file for TLS client authentication in 389 Directory Server.
Like, that's it. That's the whole name. Short, sweet, does exactly what it says on the tin. π
β¨ SYNOPSIS β¨
/etc/dirsrv/config/certmap.conf
no args, no flags, just a path. it's a file. she just exists. π
β¨ DESCRIPTION β¨
so certmap.conf is the file that configures how a certificate is mapped to an LDAP entry. that's the whole vibe.
if you want the deep lore, the actual documentation says to go here:
(ngl bestie, that's a long URL, but it's the one they gave us so we're keeping it exactly. π)
β¨ SYNTAX β¨
here's the format of the file, fr fr:
certmap <name> <issuerDN>
<name>:<prop1> [<val1>]
<name>:<prop2> [<val2>]
now the notes, because there are four of them and we are not skipping a single one, periodt:
- Mapping can be defined per issuer of a certificate. If mapping doesn't exist for a particular
issuerDN, then the server uses the default mapping. (so it's like, if your specific fit isn't in the closet, you borrow the default one. π) - There must be an entry for
<name>=defaultand issuerDN"default". This mapping is the default mapping. no default entry = we have a problem. '#'can be used to comment out a line. yes queen, comment your heart out.DNComps&FilterCompsare used to form the base DN and filter responsible for performing an LDAP search while mapping the certificate to a user entry. those two are the main characters of this whole file, iykyk.
β¨ OPTIONS β¨
π«Ά DNComps
The DNComps parameter determines how Directory Server generates the base DN used to search for a user in the directory. This setting accepts a comma separated list of attributes to form a DN. However β and this is the important part β the order of the attributes in the DNComps parameter must match the order in the subject of the certificate.
For example, if your certificate's subject is "e=user_name@example.com,cn=user_name,o=Example Inc.,c=US", and you want Directory Server to use "cn=user_name,o=Example Inc.,c=US" as the base DN when searching for the user, set the DNComps parameter to "cn, o, c".
Comment out or do not set this parameter if either the subject field of the certificate matches exactly the DN of the user in Directory Server, or if you want to use the setting from the CmapLdapAttr parameter.
If the value is empty, it will search the entire LDAP tree by using the FilterComps parameter. (whole tree?? okay she's thorough. π)
π«Ά FilterComps
This parameter sets which attributes from the subject field of the certificate Directory Server uses to generate the search filter to locate the user.
Set this parameter to a comma-separated list of attributes used in the certificate's subject. Directory Server will use these attributes in an AND operation in the filter.
Note β Certificate Subjects use theeattribute for the email address, which does not exist in the default Directory Server schema. For this reason, Directory Server automatically maps this attribute to theFilterCompsparameter, Directory Server reads the value of theeattribute from the subject of the certificate.
For example, if the subject of a certificate is "e=user_name@example.com,cn=user_name,dc=example,dc=com,o=Example Inc.,c=US" and you want to dynamically generate the "(&(mail=username@domain)(cn=user_name))" filter, set the FilterComps parameter to "mail, cn".
If the parameter is commented out or set to an empty value, the (objectclass=*) filter will be used. (that's the "search literally everything" filter, lowkey iconic π)
π«Ά verifycert
Directory Server always verifies if the certificate has been issued by a trusted Certificate Authority (CA). However, if you additionally set the verifycert parameter to on, Directory Server additionally verifies that the certificate matches the Distinguished Encoding Rules (DER)-formatted certificate stored in the userCertificate binary attribute of the user.
If you do not set this parameter, verifycert is disabled.
π«Ά CmapLdapAttr
If your user entries contain an attribute that stores the subject DN of the user certificate, set the CmapLdapAttr to this attribute name. Directory Server will use this attribute and the subject DN to locate the user. In this case, no filter is generated based on the attributes in the FilterComps parameter.
β¨ EXAMPLES β¨
here's the moment you've been waiting for, the actual example block, verbatim bestie, no edits:
certmap default default
default:DNComps cn, o, c
#default:FilterComps e, uid
#default:verifycert on
#default:CmapLdapAttr certSubjectDN
certmap example o=Example Inc.,c=US
example:DNComps
see how the # lines are just... vibing there, commented out? that's note 3 in action. slay. π§
β¨ AUTHOR β¨
certmap.conf was written by the 389 Project. legends only. π
β¨ REPORTING BUGS β¨
found a bug? (rude of it, honestly.) report bugs to:
https://github.com/389ds/389-ds-base/issues/new
go tell them, they'll fix it. π
β¨ COPYRIGHT β¨
Copyright Β© 2018 Red Hat, Inc.
and that's the whole page, bestie!! this was the File Formats Manual entry for CERTMAP.CONF(5), dated Jun 26, 2018, brought to you with love from the 389 Project. go map some certs. you're gonna do amazing. mwah πβ¨π¦ππ
π¦ where this page comes from
- arch rolling: 389-ds-base 3.3.1-1 Β· GPL-3.0-only
- centos-stream 10: 389-ds-base 3.3.0-4.el10 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib
- centos-stream 9: 389-ds-base 2.9.0-5.el9 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR Unlicense) AND Apache-2.0 AND MIT AND MPL-2.0 AND Zlib
- debian bookworm: 389-ds-base 2.3.1+dfsg1-1+deb12u1 Β· GPL-3.0-or-later AND Other
- debian trixie: 389-ds-base 3.1.2+dfsg1-1+deb13u1 Β· GPL-3.0-or-later AND Other
- fedora 43: 389-ds-base 3.1.3-10.fc43 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 OR MIT) AND (CC-BY-4.0 AND MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR CC0-1.0) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND PSF-2.0 AND Zlib
- fedora 43: 389-ds-base 3.1.5-4.fc43 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT) AND Unicode-3.0 AND (CC-BY-4.0 AND MIT) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
- fedora 44: 389-ds-base 3.2.0-15.fc44 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (CC-BY-4.0 AND MIT) AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (MIT OR CC0-1.0) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND PSF-2.0 AND Zlib
- fedora 44: 389-ds-base 3.2.3-5.fc44 Β· GPL-3.0-or-later WITH GPL-3.0-389-ds-base-exception AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT) AND Unicode-3.0 AND (CC-BY-4.0 AND MIT) AND (MIT OR Unlicense) AND 0BSD AND Apache-2.0 AND BSD-3-Clause AND ISC AND MIT AND MIT AND ISC AND MPL-2.0 AND Zlib
- nixos 26.05: 389-ds-base 3.1.3
- nixpkgs unstable: 389-ds-base 3.3.0
- opensuse-leap 16.0: 389-ds 3.0.7~git2.2846d5288-160000.1.1 Β· GPL-3.0-or-later AND MPL-2.0
- opensuse-leap 16.0: 389-ds 3.0.7~git2.2846d5288-160000.1.1 Β· GPL-3.0-or-later AND MPL-2.0
- opensuse-leap 16.0: 389-ds 3.0.7~git2.2846d5288-160000.1.1 Β· GPL-3.0-or-later AND MPL-2.0
- opensuse-leap 16.0: 389-ds 3.0.7~git2.2846d5288-160000.1.1 Β· GPL-3.0-or-later AND MPL-2.0
- ubuntu jammy: 389-ds-base 2.0.15-1 Β· GPL-3.0-or-later AND Other
- ubuntu jammy: 389-ds-base 2.0.15-1ubuntu2 Β· GPL-3.0-or-later AND Other
- ubuntu noble: 389-ds-base 2.4.5+dfsg1-1 Β· GPL-3.0-or-later AND Other
- ubuntu questing: 389-ds-base 3.1.2+dfsg1-1
- ubuntu resolute: 389-ds-base 3.1.2+vendor1-2 Β· GPL-3.0-or-later AND Other
- ubuntu stonking: 389-ds-base 3.3.1-3 Β· GPL-3.0-or-later AND Other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms