Keyfactor Command 10 Documentation Guide
Keyfactor Command 10 Documentation Guide
Keyfactor Command 10
Documentation Suite
Figure 39: Certificate Operation: Select Stores for Remove from Certificate Store 57
Figure 59: Certificate Issuance Trends with Metadata: Metadata Table and Chart 85
Figure 64: Certificate Expiration Report: Certificates Expiring within One Week 91
Figure 66: Example Pie Chart from Monthly Executive Report 100
Figure 70: PKI Status for Certificates issued in previous 10 weeks 104
Figure 71: PKI Status for Certificates issued in previous 12 months 105
Figure 78: Edit a Report in Report Manager Schedule Tab - Add/Edit page 118
Figure 95: PFX Enrollment for ECC Template Displaying Elliptic Curve 133
Figure 105: Example: Certificate Location Details for a JKS Location 141
Figure 128: Substitutable Special Text for Key Rotation Alerts 181
Figure 140: Expiration Alert with Event Logging Event Handler 201
Figure 149: Click Plus to Add a New Workflow Definition Step 213
Figure 154: Conditions Example: Add Conditions for Require Approval Step 220
Figure 158: Configuration Parameters for an Invoke REST Request Workflow Definition Step 225
Figure 160: Metadata Update Example: Add Headers for REST Request 227
Figure 163: Configuration Parameters for a Require Approval Workflow Definition Step 231
Figure 165: Step Configuration for an Email Workflow Definition Step 233
Figure 167: Configuration Parameters for a Set Variable Data Workflow Definition Step 236
Figure 172: Step Configuration for a Custom PowerShell Workflow Definition Step 242
Figure 176: Update Certificate Request Subject\SANs for Microsoft CAs Workflow Definition Step 250
Figure 177: Update SANs and Subject Example: Add Parameters 251
Figure 178: Signals Configuration for a Requires Approval Workflow Definition Step 256
Figure 183: PFX Enrollment Complete for a Template Requiring Approval via Workflow 265
Figure 189: View an Audit Log Entry for a Restarted Workflow Instance 282
Figure 199: EJBCA Certificate Profile Validity Offset Greater than 10 Minutes 315
Figure 204: Certificate Authority Authentication Methods Tab for a Microsoft CA 328
Figure 205: Certificate Authority Authentication Methods Tab for an EJBCA CA 328
Figure 212: Microsoft Issuance Requirements on a Template for Manager Approval 340
Figure 213: Certificate Template: Details Tab for a Microsoft Template 341
Figure 218: Certificate Template: Template Regular Expression Error on Enrollment 348
Figure 223: Add New Amazon Web Services Certificate Store 363
Figure 224: Add New F5 CA Bundles REST Certificate Store Location 366
Figure 225: Add New F5 SSL Profile Certificate Store Location 368
Figure 226: Add New F5 SSL Profile REST Certificate Store Location 371
Figure 227: Add New F5 Web Server Certificate Store Location 373
Figure 228: Add New F5 Web Server REST Certificate Store Location 376
Figure 230: Add New IIS Personal Certificate Store Location 380
Figure 282: Modify IIS Settings for Keyfactor Universal Orchestrator Custom Jobs: maxAl-
lowedContentLength 465
Figure 293: Use PuTTY Key Generator to Convert Zed's Private Key 484
Figure 299: Add a Password to Encrypt the Downloaded Private Key 494
Figure 313: Linux Logon to Keyfactor User Mappings for Anne, Betty, Chuck and Dave 520
Figure 315: Concept: Add Linux Logon for Chuck on Server C 522
Figure 316: Server Group Access: Add Linux Logon for Chuck on Server C 523
Figure 319: Add Individual Logon to User Mappings for Dave 526
Figure 320: View Server Group Logon to User Mappings for Dave 527
Figure 330: Creating Linux Logon to Keyfactor User Mappings Using Active Directory Groups Key Value 542
Figure 358: Add New Certificate Store Type: Basic Tab 604
Figure 359: Add New Certificate Store Type: Advanced Tab 606
Figure 360: Add New Certificate Store Type: Custom Fields Tab 608
Figure 361: Add New Certificate Store Type: Entry Parameters Tab 610
Figure 367: Audit Log Search Selections for Template Property Field Search 621
Figure 373: Audit Log Details: Single Column Audit Details Pane 627
Figure 374: Audit Log Details: Two Column Audit Details Pane 627
Figure 380: Automated Entries Created by the System in the Audit Log 636
Figure 384: Add an Application User in CyberArk for Use with Keyfactor Command 641
Figure 386: Warning that Access is Not Enabled for CyberArk Safe 642
Figure 387: Open Members for the Application User on the Keyfactor Command CyberArk Safe 643
Figure 388: Safe Details for the Application User on the Keyfactor Command CyberArk Safe 643
Figure 389: Grant Permissions for the Application User on the Keyfactor Command CyberArk Safe 644
Figure 390: Create a Password for a Keyfactor Command Certificate Store in the CyberArk Safe 645
Figure 391: Enable Registration Entry for CyberArk in [Link] File 646
Figure 393: Create a New Application User in Delinea Secret Server 649
Figure 394: Grant the Application User Permissions to a Secret in Delinea Secret Server 650
Figure 397: Create Delinea PAM Provider with Associated Container 654
Figure 407: Enable the Keyfactor Command Custom Policy Module 664
Figure 409: Modify Templates for Management with the RFC 2818 Policy Handler 666
Figure 410: Modify Templates for Management with the SAN Attribute Policy Handler 667
Figure 411: Configure Settings for the vSCEP™ Policy Handler 668
Figure 412: Modify Templates for Management with the Whitelist Policy Handler 669
Figure 413: Modify Machines for Management with the Whitelist Policy Handler 670
Figure 427: Certificate Validation Fails for Full Chain and CRL Online 711
Figure 428: Modify IIS Settings for SSL Scanning: maxAllowedContentLength 712
Table 10: Substitutable Special Text for Denied Certificate Request Alerts 178
Table 11: Substitutable Special Text for Key Rotation Alerts 186
Table 15: Supported Regular Expressions for Enrollment with Examples 353
Table 59: Keyfactor Command Windows Event IDs for Audit Log 699
Table 60: Keyfactor Windows Orchestrator and Keyfactor Universal Orchestrator Windows Event IDs 701
Table 61: Third-Party Notices for Keyfactor Command Software Distributions 724
This reference guide covers advanced configuration of Keyfactor Command in addition to providing usage inform-
ation.
This guide is organized in the order of the Management Portal menu panel:
[Link]
In addition to the main URL, the pages in the Management Portal are available via deep link. To find the deep link
for a page, just visit the page in your browser and copy the URL from the browser’s URL line. For example, the
deep link URL directly to the certificate search page in the Management Portal is available at:
[Link]
You can change the number at the end of this deep link to direct the deep link to a specific saved collection instead
of the main search. You can find the collection number by browsing to the collection and viewing the URL in your
browser. You can also build links to specific searches, rather than saved collections. For more information, see
Certificate Search and Collections on page 17.
The following is some information to help you understand and use the Management Portal successfully.
Note: On some grids the actions are also available from the context menu, which is accessible by
right-clicking on the selected row.
l The Total in the upper right of the grid will be updated each time you refresh the grid.
l The Refresh button will poll the Keyfactor Command database and update the grid with the results of the
current page query and update the Total.
l To change a column width, click, hold and drag the line separating two column headers (to the right of the
column you want to change).
l To rearrange columns, click on the header of the column you want to move and hold and drag the column to
your selected location.
l To change the sort order of the grid, click on the header of the column you wish to sort by. The first time you
click, the grid will be sorted in ascending order by the selected column. Click the column header again to
reverse the sort order. When a column is sorted, a purple caret will appear at the end of the column name
showing the direction of the sort. Lack of a caret indicates the grid is sorted by the default column and order.
On some grids only select columns are sortable.
l Click anywhere on the row, or on the tick box in the far left column of a grid row, to select that row. You may
select multiple rows by utilizing the standard Windows selection functions of CRTL/Select and SHIFT/Select to
Further to this, regular expressions are supported on select entry fields for enrollment (see Certificate Template
Operations on page 333).
Confirmation Message
Messages appear at the bottom of the screen during processing at times. For example, an operation successful
message will appear at the bottom of the screen when a selected action on a transaction is successful.
Tip: As of Keyfactor Command version 7.0, Internet Explorer is no longer supported for the Keyfactor
Command Management Portal. Supported browsers are:
l Chrome version 65.0.3325 or higher
l Firefox version 59.0 or higher
l Microsoft Edge version 42.17134 or higher
Keyfactor Command uses a system of security roles and security identities to provide access control to the Manage-
ment Portal as a whole and to the features within it and the Keyfactor API. In order to access the Management
Portal or Keyfactor API, your Active Directory account must be a member of one of the Active Directory groups
granted access to the Management Portal during the Keyfactor Command installation and configuration process
(see the Administration Section of the Keyfactor Command Server Installation Guide) or your Active Directory
account must have been been granted access either directly or via group membership later through the Manage-
ment Portal (see Security Overview on page 573) or with the Keyfactor API (see the Security Roles & Identities
section of the Keyfactor Web APIs Reference Guide).
2.2 Dashboard
The dashboard, at the top level of the Management Portal, provides you with a quick glance at the status of your
PKI. It is a global representation of your PKI and does not filter data based on your access.
Risk Header
The top of the page shows a risk header, which is made up of a collection of sticky notes displaying active certi-
ficates, expiring and expired certificates, revoked certificates, and certificates with weak keys. The dashboard risk
header displays by default and cannot be moved or removed (though it may be hidden with a security setting).
Tip: Access control to the risk header is controlled separately from the dashboard page as a whole, so a
user could be granted access to the dashboard but not to the risk header and in this way see a dashboard
that did not display the risk header. For more information, see Security Role Permissions on page 578.
Customizable Panels
Note: Any CAs that have not been configured for synchronization will not appear as available for addi-
tion on the dashboard, or for reports which require selecting a CA.
l Certificate collections (see Certificate Collection Manager on page 72) can be configured to be included in a
bar chart on the Certificate Collection dashboard panel. See Dashboard: Collections on page 11.
l The Certificates by Signing Algorithm panel displays a bar chart showing all active certificates broken down by
signing algorithm. The CAs to include in the display are configurable. Both CAs that are currently configured
for synchronization and any that were previously synchronized are available for inclusion. Certificates
imported into Keyfactor Command via SSL scanning, certificate store inventorying, and manual import are also
included and can be filtered out by unchecking the Certificates Not Associated with CA option. See Dashboard:
Certificates by Signing Algorithm on page 11.
l The Recent Certificate Store Jobs panel displays the status of up to ten jobs. Both completed and in progress
jobs are included. See Dashboard: Recent Certificate StoreJobs on page 13.
l If you configure certificate revocation list (CRL) or online certificate status protocol (OCSP) locations for monit-
oring and opt to display them on the dashboard (see Revocation Monitoring on page 186), these will appear
with a status on the dashboard Revocation Monitoring panel. See Dashboard: Revocation Monitoring on
page 14.
l The comprehensive SSL Endpoints panel includes a grid of changes found in existing SSL endpoints, a grid of
endpoints with certificates expiring in the next X days, a pie chart showing SSL endpoints per defined SSL
The panels on the dashboard are displayed in two columns. You can click and drag the dividing line between the
two columns to change the width of the columns—for example, a wide left column and a narrower right column.
The panels can be rearranged by dragging them up and down a column or from one column to the other. If you've
chosen to change the column widths, you can arrange the wider panels in your wider column and the narrower
panels in your narrower column.
The selected panels and their arrangement is unique to each user of the Management Portal. Out of the box, in
addition to the risk header, the dashboard includes the Collections and Revocation Monitoring panels, so each new
user to the dashboard will see these panels.
The information on the dashboard panels refreshes automatically every 15 minutes while the dashboard remains
open.
1. Click the Add Panel button on the left just below the dashboard risk header.
2. On the Add Panels dialog, select the panels you wish to display on the dashboard, click Add and then click
Done at the bottom of the dialog.
2. In the title field of the panel, type a new name. Click away from the field to save.
Note: Only letters, numbers, spaces, and select punctuation marks are supported in the panel name
field. Special characters, such as < and > (and therefore HTML markup), are not supported.
1. Click the panel Settings icon on the right of the panel you wish to remove and then click Remove.
2. When prompted, confirm that you are sure that you want to remove the panel.
Tip: The Edit option only appears on the panel settings menu for selected panels.
A status indicator appears at the top of the CA section showing when the CA was last contacted. Click the Hide
button to minimize the display. Click the panel Settings icon to remove or rename the panel or change the
comparison date for the display (see Dashboard on page 5). Data for the CA sections of the dashboard is generated
from certificates retrieved during CA synchronization tasks (see Certificate Authorities on page 306).
Note: The collections dashboard widget will only display the first 25 collections alphabetically.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
Click on the name of the orchestrator in the grid to be taken to the orchestrator job history page with the query
populated by the selected orchestrator.
To include only jobs that started on or after a selected date, click the panel Settings icon and choose Edit. In the
Edit dialog, either enter a comparison date or use the calendar picker to select a date. Only jobs with a starting
date on or after this date will be shown. A maximum of ten jobs are shown.
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
Some columns allow for sorting in ascending or descending order by clicking the column heading to toggle sort
order. Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the
panel or change the comparison date for the display (see Dashboard on page 5).
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
Click on the name of an orchestrator in the grid to be taken to the orchestrator job history page with the query
populated by the selected orchestrator.
Click the Hide button to minimize the display. Click the panel Settings icon to remove or rename the panel or
change the comparison date for the display (see Dashboard on page 5).
A specific certificate search may be saved as a collection, which can then be revisited without needing to enter the
search selections again. The saved collection can then be referenced from other parts of the Management Portal
(e.g. expiration alerts, the dashboard, and select reports). Certificate collections may be added to the Certificates
menu of the Management Portal for quick access. Several default certificate collections are created in new install-
ations. For more information, see Certificate Collection Manager on page 72.
Note: The options shown and described in this section are available to full administrative users of the
Management Portal. Users with limited access to the Management Portal will not see all the options (e.g.
the recover buttons may not appear) and will see some slightly different buttons (e.g. the edit buttons
shown may say "view" instead of "edit").
The following action buttons are conveniently located at the top of the Certificate Details page for users with the
appropriate permissions: Revoke, Download, Renew. See Certificate Operations on page 38 for more information
on these actions.
Metadata Tab
The Metadata tab displays all metadata fields, based on system-wide and template-level metadata settings,
created for your Keyfactor Command implementation and shows any fields as populated with the data specific to
that certificate. Depending on the metadata type, these fields appear as text boxes, radio buttons, drop-downs,
date fields, or large text fields.
For users with edit permissions, on date fields a small popup calendar will appear that will allow you to select a
date and will properly format it for you. You may edit values for any metadata fields to update the data at any
time. You may also update multiple certificates' metadata with the same data by selecting multiple certificates
from the certificates grid. Required fields will be marked with *Required next to the field label. See Certificate
Metadata on page 611 for information on this functionality.
Status Tab
The status tab displays some additional information about the certificate (see Table 1: Status Tab Descriptions).
Field Description
Certificate ID The Keyfactor Command reference ID for the certificate, which can be useful when referring to the certi-
ficate using API methods.
Note: Here we mimic the behavior of the Microsoft CA, which does not have a status
for Expired, so certificates continue to be listed as Active or Revoked (as appropriate)
after they expire.
Revocation If the certificate is revoked, the date it was revoked will be displayed here.
Effective Date
Revocation If the certificate is revoked, the reason will be displayed here. This is shown as a numeric value, which
Reason will be one of:
l 0 — Unspecified
l 1 — Key Compromised
l 2 — CA Compromised
l 3 — Affiliation Changed
l 4 — Superseded
l 5 — Cessation of Operation
l 6 — Certificate Hold
l 999 — Unknown
Archive Key If true, the certificate has a private key archived on the Microsoft CA to support CA key recovery. This
flag is not an indicator for whether the certificate has a private key stored in Keyfactor Command.
Tip: CA-level key recovery is supported for Microsoft CAs to allow recovery of private keys for
certificates enrolled outside of Keyfactor Command. CA-level key archiving is not supported
for enrollments done through Keyfactor Command. CA-level key recovery is not supported for
EJBCA CAs. For enrollments done through Keyfactor Command for either Microsoft or EJBCA
CAs, use Keyfactor Command private key retention (see Details Tab on page 339).
Principal Name The user principal name (UPN) contained in the subject alternative name (SAN) field of the certificate, if
present (e.g. "username@[Link]").
Validation Tab
This tool will report on the certificate validity based on the criteria defining the status of an X509 chain shown in
Table 2: Validation Tab Descriptions. This tab replaces the former Validate action from the certificate search grid.
An alert symbol will show on the tab header if one or more tests have a result of Fail.
Tip: See Certificate Validation Errors on page 711 for assistance troubleshooting validation errors.
Time Valid NotTimeValid A value of Pass indicates that the certificate time value is
valid. A time can appear invalid (Fail) for a certificate that
has expired.
Active Revoked A value of Pass indicates that the X509 certificate chain is
valid for the certificate and contains no revoked certificates
or errors.
Signature NotSignatureValid A value of Fail indicates that the X509 certificate chain is
1The parameter names for results returned by the Keyfactor API GET /Certificates/{id}/Validate method.
Usage NotValidForUsage A value of Fail indicates that the X509 certificate chain is
invalid as a result of an invalid key usage.
Trusted Root UntrustedRoot A value of Fail indicates that the X509 certificate chain is
invalid as a result of an untrusted root certificate.
Revocation RevocationStatusUnknown A value of Pass indicates that the revocation status can
Status successfully be determined for the certificate. This may be
the result of successful access to online certificate revoc-
ation lists (CRLs) and, if configured, authority information
access (AIA) endpoints.
Chain Built Cyclic A value of Pass indicates that the certificate chain for the
certificate could successfully be built.
Extensions InvalidExtension A value of Fail indicates that the X509 certificate chain is
invalid as a result of an invalid extension.
Policy InvalidPolicyConstraints A value of Fail indicates that the X509 certificate chain is
Constraints invalid as a result of an invalid policy constraint.
Basic InvalidBasicConstraints A value of Fail indicates that the X509 certificate chain is
Constraints invalid as a result of an invalid basic constraint.
Valid Name InvalidNameConstraints A value of Fail indicates that the X509 certificate chain is
Constraints invalid as a result of an invalid name constraint.
Supported HasNotSupportedNameConstraint A value of Fail indicates that a name constraint for the certi-
Name ficate is unsupported or that the certificate has no
Constraints supported name constraints.
Defined Name HasNotDefinedNameConstraint A value of Fail indicates that a name constraint for the certi-
Constraints ficate is undefined.
Permitted Name HasNotPermittedNameConstraint A value of Fail indicates that a name constraint for the certi-
Constraints ficate is impermissible.
Excluded Name HasExcludedNameConstraint A value of Fail indicates that a name constraint for the certi-
Constraints ficate has been excluded.
1The parameter names for results returned by the Keyfactor API GET /Certificates/{id}/Validate method.
Full Chain PartialChain A value of Pass indicates that the certificate chain for the
certificate could successfully be built up to the root certi-
ficate.
CTL Time Valid CtlNotTimeValid A value of Fail indicates that the certificate trust list (CTL) is
invalid because of an invalid time value (e.g. the CTL has
expired).
CTL Signature CtlNotSignatureValid A value of Fail indicates that the certificate trust list (CTL)
Valid contains an invalid signature.
CTL Usage Valid CtlNotValidForUsage A value of Fail indicates that the certificate trust list (CTL) is
not valid for this use.
Strong Signature HasWeakSignature A value of Pass indicates that the certificate has been
signed with a secure hashing algorithm. A value of Fail can
indicate that a hashing algorithm of MD2 or MD5 was used
for the certificate.
CRL online OfflineRevocation A value of Pass indicates that the online certificate revoc-
ation list (CRL) the chain relies on is available.
Chain Policy NoIssuanceChainPolicy A value of Pass indicates that there is either no certificate
policy by design in the certificate or that if a group policy
has specified that all certificates must have a certificate
policy, the certificate policy exists in the certificate.
No Explicit ExplicitDistrust A value of Pass indicates that the certificate is not explicitly
Distrust distrusted.
Critical Exten- HasNotSupportedCriticalExtension A value of Pass indicates that the certificate has a critical
sions extension that is supported or has no critical extensions.
Locations Tab
If you have added the certificate to any certificate store location(s) a number will appear in the Count column on
the corresponding Location Type row. Users with limited permissions will only see locations for types of certificate
stores to which they have been granted permissions either globally or via certificate store containers (see
Container Permissions on page 590). Click the count number for more details regarding this certificate's location.
See Add to Certificate Store on page 38 for more information. The Total Cert Store Locations appears at the end of
the list. Clicking on the total will open a dialog with the list of locations with the columns: Store Path, Store
Machine, Alias, IPAddress, Port, and Agent Pool which will be populated depending on the details of the individual
stores.
1The parameter names for results returned by the Keyfactor API GET /Certificates/{id}/Validate method.
Double click on a row from the History grid to see the content of that row in a more readable pop-up.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
ArchivedKey NetBIOSRequester
The certificate’s archived key has been encrypted and Complete or partial matches with the certificate
saved to the Keyfactor Command database (true/false). requester’s name in NetBIOS format (DOMAIN\username).
Supports the %ME% token (see Advanced Searches on
CertId page 33).
EKU SSLDNSName
Complete or partial matches with the certificate template Complete or partial matches with the DNS name resolved
OID. for an SSL endpoint.
EKUName SSLIPAddress
Complete or partial matches with the certificate template Complete, or starts/ends with, or null/not null matches
Name. with the IP address defined for an SSL endpoint.
HasPrivateKey SSLNetworkName
Certificate private key encrypted and stored in the Complete, or starts/ends with, or null/not null matches
Keyfactor Command database (true/false). with the network name under which an SSL endpoint was
found.
ImportDate
SSLPort
The certificate imported to Keyfactor Command before,
after, or on a specified date. Complete or partial numeric matches with the port
number defined for an SSL endpoint.
IssuedDate
SAN
Certificate issuance before, after, or on a specified date.
Supports the %TODAY% token (see Advanced Searches on Complete or partial matches with the certificate subject
page 33). alternate name(s).
IssuerDN TemplateDisplayName
Complete or partial matches with the certificate issuer’s Complete or partial matches with the certificate template
distinguished name. display name.
KeySize TemplateShortName
NetBIOSPrincipal
You can also do queries based on user-defined metadata fields (see Certificate Metadata on page 611).
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
The results that match your search criteria will be displayed in the results grid below the search selection options.
The results grid includes these fields:
The search results can be sorted by clicking on a column header in the results grid for every column (except Certi-
ficate Locations, Key Type, and Certificate State). Click the column header again to reverse the sort order. The grid
columns can be arranged in any order desired by click-holding and dragging the header of the column you wish to
move. The column widths may be adjusted by click-holding and dragging the line separating two column headers.
You can click the Include Revoked and/or Include Expired buttons at the top of the results grid to toggle inclusion
of revoked or expired certificates in the results. By default they are excluded.
The rest of the buttons at the top of the display grid are used to interact with the certificates displayed in the
results grid. Some buttons are grayed out until you click on a grid row. Other certificate functions are available on
the right-click menu. To open the right-click menu, highlight a row in the results grid and right-click. You can also
double-click a certificate row in the results grid to open the Certificate Details (see Certificate Details on page 17).
To select a single row in the grid, click to highlight it and then select an operation from either the top of the grid or
the right-click menu. Some of the certificate operations support action on multiple certificates at once. To select
multiple rows, hold down the CTRL key and click each row on which you would like to perform an operation, or tick
the check box next to the row. Then select an operation from the top of the grid. The right-click menu supports
limited operations on the multiple certificates.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
Note: Multiple "OR" queries can be slow due to the nature of the query not being indexed and potentially
requiring multiple queries of the database. To mitigate this, we suggest you create a collection for the
subset of certificates, using the "OR" statement as needed, then perform a search starting with that collec-
tion and adding any additional conditions using advanced search from the search page. See Saving Search
Criteria as a Collection on page 36.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
Example: Create a certificate search of IssuedDate -ge "%TODAY-7%" and save it as a collection
called Certificates Issued in the Last Week. Create another certificate search of ExpirationDate -lt
"%TODAY+60%" and save it as a collection called Certificates Expiring in the Next 60 Days. This allows
you to have saved collections containing a comparison date without having to update the date in the
collection.
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
Example: Create a certificate search of NetBIOSRequester -contains "%ME%" and save it as a collec-
tion. Multiple users can now use this same collection to search for all the certificates on which they
were the requester in the current domain.
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Note: Certificate collections saved using the %ME-AN% value are not supported for use in reports or
on the dashboard.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
To build a deep link with your search criteria, begin with the following URL (where KEYFACTOR_SERVER_FQDN is
the FQDN of your Keyfactor Command administration server):
[Link]
ENCODED_QUERY
Your Management Portal may have been configured to use HTTP rather than HTTPS.
Replace YOUR_URL_ENCODED_QUERY with your search criteria as built using the advanced search. The search
criteria needs to be URL encoded, so, for example, spaces need to be replaced with %20 and quotation marks with
%22. However, many modern browsers will automatically do this for you. A deep link using part of the example
search shown above would look something like this without URL encoding:
[Link] -
contains "appsrvr"
And with URL encoding, like this:
[Link]
contains%20%22appsrvr%22
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
2. In the Save Certificate Search dialog, enter a name for the certificate collection. This name appears at the top
of the page for this collection and can be configured to appear on the Management Portal menu under Certi-
ficates. It will also appear in other places within the Management Portal where you can reference certificate
collections (e.g. expiration alerts and certain reports and dashboards). Because it can appear on the menu and
in selection dropdowns, the name should be fairly short.
3. Enter a description for the collection. This description appears as a subtitle below the collection name on the
page for this collection and can be more detailed than the collection name.
4. Select a setting in the "Ignore renewed certificate results by" dropdown. The Ignore dropdown applies to
processing reports or expiration alerts and contains these options:
None
Do not eliminate duplicate certificates when processing reports or expiration alerts based on this certificate
collection.
Common Name
Eliminate duplicate certificates based on the common name in the certificate when processing reports or
expiration alerts. Certificates will be excluded from reports and expiration alerts if they share the same
common name and enhanced key usage (EKU—e.g. Client Authentication). The certificate with the most
Distinguished Name
Eliminate duplicate certificates based on the distinguished name in the certificate when processing reports or
expiration alerts. Certificates will be excluded from reports and expiration alerts if they share the same distin-
guished name and EKU. The certificate with the most recent issued date and the given distinguished name
and EKU will be included in the report or expiration alert.
Principal Name
Eliminate duplicate certificates based on the principal name in the certificate status data stored in the
Keyfactor Command database for the certificate when processing reports or expiration alerts. The principal
name is added to the certificate status data for the certificate during certificate synchronization if the certi-
ficate SAN contains a "user principal name" or "NT principal name". Certificates will be excluded from reports
and expiration alerts if they share the same principal name and EKU. The certificate with the most recent
issued date and the given principal name and EKU will be included in the report or expiration alert.
Note: Regardless of the selection you make in the Ignore option, all certificates will appear in the
search results grid. Duplicate certificates are not excluded on this page.
When processing reports or expiration alerts based on this certificate collection, only certificates that
share all the EKUs (e.g. Client Authentication and Server Authentication) as well as the same CN, DN
or UPN will be eliminated as duplicates. If a certificate has more than one EKU and at least one EKU
does not match an otherwise similar certificate with matching CN, DN or UPN, it will not be elim-
inated on reports or expiration alerts.
5. Check the Show on Dashboard box to include the results from this collection on the Collection dashboard
(see Dashboard: Collections on page 11). You will not be able to change this setting once the collection is
saved. If you need to change it, you would need to edit the collection and re-save it.
Note: The collections dashboard widget will only display the first 25 collections alphabetically. A brief
warning message explaining this will be shown on the collections save dialog when the Show on Dash-
board box is checked.
6. Check the Show in Navigator box to include the collection on the Management Portal menu (on the Certi-
ficates top-level menu dropdown).
7. Click Save to save the collection. The search results will display immediately. If you didn't select the Show in
Navigator option, you can find the collection again on the Certificate Collection Management page, accessed
by navigating to Certificates > Collection Manager from the Management Portal.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Download with Private Key
Certificate Store Management: Read
Certificate Store Management: Schedule
Permissions for certificates and certificate stores can be set at either the global or certificate collection
and certificate store container level. See Certificate Permissions on page 587 and Container Permissions
on page 590 in the Keyfactor Command Reference Guide for more information about global vs collection
and container permissions.
3. When you select the Add to Certificate Store option the Select Certificate Store Locations dialog opens. When
you select the certificate stores to which you want to deploy your certificate and click Include, the Add to
Certificate Stores dialog appears BEHIND the Select Certificate Store Locations dialog, holding your selection
and leaving the Select Certificate Store Locations dialog open for you to continue selecting locations. The final
list of selections will only be accessible once you close the Select Certificate Store Locations dialog using the
Include and Close button.
Note: Only compatible certificate stores and only stores in containers to which you have permissions
are shown on the grid.
Tip: You may change the search results by using the search fields at the top of the dialog. All of the
Keyfactor Command grid search features are available to assist your search. See Using the Certificate
Store Search Feature on page 358 for more information on the available search fields. The default
search criteria is AgentAvailable is equal to True.
l Include
Click this to add the selected certificate store(s) to your certificate selection and leave the search
dialog open for further searches.
l Include and Close
Click this to close the search dialog and add the selected certificate store(s) to your certificate selec-
tion, which will then be displayed and ready for updates as per the instructions in Add to Certificate
Stores.
l Close
Click this to cancel the operation and return to the main page with no certificate stores selected.
For each selected certificate store you can apply the following actions:
l Overwrite
Check Overwrite below the grid to overwrite any existing certificate in the same location and with the
same name or alias for the selected certificate store type.
l Alias
Add an Alias below the grid, if applicable, for the certificate store type. See the Information Required
by Certificate Store section, below, for more information.
Note: The tab heading of the certificate location will display an alert if an alias is required for
the location. If this is set to Forbidden on the certificate store type, the Alias field will not
display unless "Overwrite" is checked on this page.
F5 SSL Profiles REST Alias required for new additions and overwrites
File Transfer Protocol Alias required for new additions and overwrites
Amazon Web Services (AWS) certificate stores require the addition of a private key and will only appear as
an option when you select a certificate with a private key. With this type of store, you have the option to
overwrite an existing certificate with the current certificate. If you choose this option, you will need to
provide the alias of the certificate you wish to overwrite. The alias is the internal ID assigned by Amazon
(the Amazon resource number or ARN). Provide the entire contents of the Alias/IP from this field when
entering an alias for overwrite. For example:
arn:aws:acm:us-west-2:220531701668:certificate/88e5dcfb-a70b-4636-a8ab-e85e8ad88780
F5 CA Bundles REST
F5 CA Bundle REST certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. The alias is the file name used to store the file in the device file system, minus
the extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces.
Note that certificate names are case sensitive. You have the option to overwrite an existing certificate with
the current certificate. If you choose this option, you will need to provide the alias of the certificate you
wish to overwrite.
F5 SSL Profile certificate store additions do not require the addition of a private key and will appear for both
certificates with a private key and those without. With this type of store, you will be prompted to add an
alias for the certificate. The alias is the file name used to store the file in the device file system, minus the
extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces. Note
that certificate names are case sensitive. You have the option to overwrite an existing certificate with the
current certificate. If you choose this option, you will need to provide the alias of the certificate you wish to
overwrite.
F5 SSL Profile REST certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. The alias is the file name used to store the file in the device file system, minus
the extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces.
Note that certificate names are case sensitive. You have the option to overwrite an existing certificate with
the current certificate. If you choose this option, you will need to provide the alias of the certificate you
wish to overwrite.
F5 Web Server
F5 Web Server certificate stores require the addition of a private key and will only appear as an option
when you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate with the current certificate. If you choose this option, you will need to provide the alias
of the certificate you wish to overwrite. The alias for F5 device certificates is typically "server".
F5 Web Server REST certificate stores require the addition of a private key and will only appear as an option
when you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate with the current certificate. If you choose this option, you will need to provide the alias
of the certificate you wish to overwrite. The alias for F5 device certificates is typically "server".
File Transfer Protocol (FTP) certificate store additions do not require the addition of a private key and will
appear for both certificates with a private key and those without. With this type of store, you have the
option to overwrite an existing certificate with the current certificate. If you choose this option, you will
need to provide the alias of the certificate you wish to overwrite. In that case the new thumbprint should
be passed in as the alias without any spaces between the octets (e.g.
81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b
33).
IIS Personal certificate stores require the addition of a private key and will only appear as an option when
you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate bound to an IIS web site with the current certificate. If you choose this option, you will
need to provide the alias of the certificate you wish to overwrite. The alias is the thumbprint of the certi-
ficate bound to the IIS web site on the target. The thumbprint may be entered with or without spaces
between each octet (e.g. 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b 33 or
81009c6e5465ecf343ba55ff9612122a5a4f6b33).
Tip: Choosing overwrite for a certificate not bound to an IIS web site will have no effect. No certi-
ficate will be overwritten.
IIS Revoked and Trusted Root certificate store additions do not require the addition of a private key and
will appear for both certificates with a private key and those without.
Tip: The overwrite functionality is not relevant for IIS Revoked and Trusted Root certificate stores
and should be ignored.
Java Keystore
Java keystore certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. This optional alias is stored in the keystore associated with the certificate. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias of the certificate you wish to overwrite. Spaces are supported in the alias.
NetScaler
NetScaler certificate store additions do not require the addition of a private key and will appear for both
certificates with a private key and those without. With this type of store, you will must add an Alias for the
certificate. This serves as the file name used to store the file in the file system, so provide it with an appro-
priate extension (e.g. [Link] or [Link]). Aliases should be entered without spaces. You
must also enter the virtual server to associate the certificate with in the NetscalerVserver field. For a certi-
ficate with a private key, you are associating the certificate as a NetScaler Server Certificate. For a certi-
ficate without a private key, you are associating the certificate as a NetScaler CA Certificate and only CA
certificates are supported for this purpose. You will receive an error if you attempt to associate a non-CA
certificate without a private key with a virtual server. Entry of virtual server name is not case sensitive. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias (full file name with extension) of the certificate you wish to overwrite.
PEM certificate store additions do not require the addition of a private key and will appear for both certi-
ficates with a private key and those without. With this type of store, you have the option to overwrite an
existing certificate with the current certificate. If you choose this option, you will need to provide the alias
of the certificate you wish to overwrite. The alias is the thumbprint of the certificate without any spaces
between the octets (e.g. 81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00 9c 6e 54 65 ec f3 43 ba
55 ff 96 12 12 2a 5a 4f 6b 33).
Note: Keyfactor Command will automatically strip out any spaces between the octets in the alias
field, so it does not matter whether you enter the thumbprint with or without spaces.
Delete
Select one or more certificates in the results grid and then click Delete at the top of the grid or Delete in the right-
click menu to remove the selected certificate(s) from the Keyfactor Command database. If the selected certificates
have associated private keys stored in the database, these private keys are also removed. The certificates will be
returned to the Keyfactor Command database on the next full synchronization if synchronization for the certificate
source (certificate authority, SSL endpoint, etc.) is still configured. Certificate history and private keys do not
return when certificates re-synchronize.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Delete
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Delete All
This option is available only in saved collections, not in standard certificate searches. Click the Delete All action
button at the top of the collection grid. The button appears active only if no certificates are selected on the grid. A
large deletion may take several minutes to complete. The certificates will be returned to the Keyfactor Command
database on the next full synchronization if synchronization for the certificate source (certificate authority, SSL
endpoint, etc.) is still configured.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Delete
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Delete
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Download
Click Downland in the right-click menu to download the selected certificate to the local computer with or without
a private key. Only one certificate may be downloaded at a time.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Download with Private Key
The Download with Private Key permission is only needed for users who will be downloading certificates
with private keys. To download a certificate without a private key, Read permission is sufficient.
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Note: The Recover option that was found in previous versions of Keyfactor Command is now part of the
Download option.
You will be able to download a certificate including its private key if one of the following is true:
l The certificate has been stored in the Keyfactor Command database with its private key.
l The certificate was issued using a template that had key archival enabled, issued from a Microsoft CA that has
a valid Key Recovery Agent certificate, and that Key Recovery Agent certificate is configured on the Keyfactor
Command server.
In order to support key recovery within Keyfactor Command, you need to import at least one Key
Recovery Agent certificate with a private key into the Keyfactor Command application pool user’s
personal certificate store on each Management Portal server. See Configuring Key Recovery for
Keyfactor Command on page 706.
Tip: CA-level key recovery is supported for Microsoft CAs to allow recovery of private keys for certi-
ficates enrolled outside of Keyfactor Command. CA-level key archiving is not supported for enroll-
ments done through Keyfactor Command. CA-level key recovery is not supported for EJBCA CAs. For
enrollments done through Keyfactor Command for either Microsoft or EJBCA CAs, use Keyfactor
Command private key retention (see Details Tab on page 339).
Note: Downloading of the private key is logged and reflected on the History tab of the certificate details
(see History Tab on page 27).
To download a certificate that has the private key stored in the Keyfactor Command database:
2. Choose Download from the right-click menu, or the action button on the Certificate Details dialog.
3. In the Download dialog, select the Include Private Key option to include the private key of the certificate in
the download. If you choose Include Private Key for a PFX or PEM certificate with a private key, after you click
Download (step 6 below), PFX/PEM Password dialog will pop-up with the one-time password and action
buttons to Copy Password or Close the pop-up. Clicking Copy Password will copy the password to the clip-
board. As a security measure, the dialogue will close after 2 minutes. To secure the downloaded file, you will
need this password in order to access the PFX or PEM file generated by the download. Click Close to close the
Important: The randomly generated password cannot be regenerated, so it must be copied prior to
closing the dialog.
4. Select Include Chain to include the certificate chain (root and intermediate certificates) in the download.
5. Chose an encoding format. Selecting the Include Private Key and Include Chain options changes which formats
are available.
To download a certificate that does not have the private key stored in the Keyfactor Command database:
3. Select Include Chain to include the certificate chain (root and intermediate certificates) in the download.
4. If Include Chain is selected, chose an encoding format of PEM or P7B. If Include Chain is not selected, chose
an encoding format of PEM or DER.
Edit (Display)
Select one certificate in the results grid and then click Edit at the top of the grid, or Edit in the right-click menu, or
double-click the row, to pop up the certificate details dialog box in which you can view details of the certificate
data and edit metadata fields for the certificate. Users without Edit Metadata permissions to certificates will see a
Display option instead of an Edit option.
The Edit Metadata permission is only needed for users who will be modifying the values of metadata
fields for certificates. Users with Read permissions may view the exiting metadata values.
The Read permission for Certificate Store Management is only needed for users who will be viewing
values on the Locations tab.
Permissions for certificates and certificate stores can be set at either the global or certificate collection
and certificate store container level. See Certificate Permissions on page 587 and Container Permissions
on page 590 in the Keyfactor Command Reference Guide for more information about global vs collection
and container permissions.
Note: When you open a certificate for editing, only the custom Keyfactor Command metadata fields are
editable.
Note, the certificate details dialog also includes buttons for the download, revoke, and renew (if applicable) oper-
ations for users with appropriate permissions. You cannot change any of the certificate attributes from Certificate
Authority (shown on the Content tab) or any of the certificate status, validation, locations, or history data tracked
by Keyfactor Command (shown on the Status, Validation, Locations and History tabs).
See Certificate Details on page 17 for more detailed information about the certificate details dialog.
If you select multiple certificates to edit at once, only the metadata fields dialog will appear. See Edit All.
Edit All
Click Edit All at the top of the grid to open the metadata fields for all of the certificates in the query for editing.
The button appears active only if no certificates are selected on the grid. All defined metadata fields—including
those marked hidden—appear on the Edit All dialog. Each field includes an alert button that identifies whether the
certificates in the query have all of same ( ) or different ( ) values for each metadata field. Click the alert
button for an explanation of the impact the Overwrite settings for this field will have on the certificates.
See Metadata Tab on page 18 for more detailed information about the certificate details metadata.
Click Allow Modifying to enable the field for editing. Editing a field and selecting Overwrite will change the value
for all certificates. Editing this field and not selecting Overwrite will only change the value for certificates that do
not already have a value defined for this field.
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Get CSV
Click Get CSV from the top of the grid to download all the certificates in the results grid to a comma-delimited CSV
file. The button appears active only if no certificates are selected on the grid.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
The CSV file will contain the following information for each exported certificate:
A confirmation dialog will pop up providing an approximate file size of the file that will be generated. A CSV file
generated from a very large result set may take a long time to download or may be unwieldy to edit.
Identity Audit
Click Identity Auditin the right-click menu to view the certificate level permissions (read, edit metadata, download
with private key, revoke, and delete) granted to all user roles defined in Keyfactor Command (see Security Roles
and Identities on page 576) for the selected certificate.
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificate Store Management: Read
Certificate Store Management: Schedule
Permissions for certificates and certificate stores can be set at either the global or certificate collection
and certificate store container level. See Certificate Permissions on page 587 and Container Permissions
on page 590 in the Keyfactor Command Reference Guide for more information about global vs collection
and container permissions.
Figure 39: Certificate Operation: Select Stores for Remove from Certificate Store
Renew
Click Renew in the right-click menu to renew or re-issue the selected certificate.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificate Enrollment: Enroll PFX
Certificate Store Management: Read
Certificate Store Management: Schedule
Permissions for certificates and certificate stores can be set at either the global or certificate collection
and certificate store container level. See Certificate Permissions on page 587 and Container Permissions
on page 590 in the Keyfactor Command Reference Guide for more information about global vs collection
and container permissions.
The renewal dialog includes the options of one-click renewal (the Continue option), which supports renewal with
no further user interaction, or seeded PFX enrollment (the Configure option), to be redirected to the
PFX Enrollment page with the information for the certificate pre-populated in the enrollment fields. The Continue
option is only available if either one of the following is true:
Note: The Continue option is only supported if the user performing the renewal has permissions to enroll
using the template and CA associated with the original certificate.
From the seeded PFX Enrollment page, you can change the CA or template for enrollment, change the subject
information or metadata for the certificate, set or remove SANs, or change the certificate store(s) to which the
renewed certificate will be distributed. To change the certificate store(s) for distribution, on the PFX Enrollment
page, scroll down to the Certificate Delivery Format section and click the Include Certificate Stores button. This
will open the Select Certificate Store Locations dialog. For more information, see Add to Certificate Store on
page 38 and PFX Enrollment on page 131.
Certificates issued by Microsoft CAs will be renewed (meaning the certificate will be issued with a different private
key) regardless of how recently they were issued. Certificates issued by other certificate authorities will be
renewed (typically retaining the same private key but with a new expiration date) if they are within the renewal
window specified by the certificate template and re-issued (retaining the same expiration date) if they are not yet
within the renewal window.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
Revoke
Select one or more certificates in the results grid and then click Revoke to revoke the selected certificate(s). When
you select revoke, a dialog box pops up prompting for the effective revocation date, the reason for the revocation
(for which there are dropdown choices), and comments (required). Upon completion of the revocation, the CRL for
the CA in question is immediately republished to reflect the revocation. Unless you choose the revocation reason
of Certificate Hold, there is no way to undo a revoke so care should be taken with this operation.
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Important: In order to successfully revoke certificates, the service account under which the Keyfactor
Command application pool is running must be granted "Issue and Manage Certificates" and "Manage CA"
permissions to the CA database as per the Create Active Directory Groups to Control Access to Keyfactor
Command Features section in the Keyfactor Command Server Installation Guide, or, if delegation is
configured for the CA, the user executing the revoke must have the"Issue and Manage Certificates"
permissions while the application pool service account has the "Manage CA" permissions. If you are using
explicit credentials to authenticate your CA (see Adding or Modifying a CA Record on page 310), it is the
user specified on the CA configuration in Keyfactor Command who must have both these permissions on
the CA.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
When you Revoke a certificate using the revocation reason of Certificate Hold, the certificate is in the revoked
state, with the revocation reason of Certificate Hold. You will only be able to see the certificate on a certificate
search with Include Revoked checked. To return the certificate to the Active state, Revoke it again with the reason
Remove from Hold. You will be required to add a comment in the Comments field to Save the record change.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Revoke
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
Revoke All
If you would like to revoke ALL the certificates in the current query results set, click Revoke All at the top of the
grid. The button appears active only if no certificates are selected on the grid.
When you select revoke all, a dialog box pops up prompting for the effective revocation date, the reason for the
revocation (for which there are dropdown choices), comments (required), and confirmation of the number of certi-
ficates being revoked. Upon completion of the revocations, the CRL(s) for the CA(s) in question is immediately
republished to reflect the revocations. Unless you choose the revocation reason of Certificate Hold, there is no
way to undo a revoke so care should be taken with this operation.
A maximum of 1000 certificates can be revoked at once with this option. If the query contains more certificates
than this, a warning dialog will appear and you will not be allowed to continue with the revocation.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificates: Read
Certificates: Revoke
Permissions for certificates can be set at either the global or certificate collection level. See Certificate
Permissions on page 587 in the Keyfactor Command Reference Guide for more information about global vs
collection permissions.
Note: The Revoke All option can be removed from display on the certificate search pages using the
Revoke All Enabled application setting (see Application Settings: Console Tab on page 554).
l It can be used to push a certificate with the associated private key out to a certificate store when you have the
appropriate .pfx or .p12 file available.
l It can be used as a quick shortcut to push a certificate without a private key out to a certificate store when you
have the certificate file in hand and don’t want to search for the certificate in Keyfactor Command in order to
If you import a certificate that has either already been imported via a synchronization task or has been manually
imported previously, the certificate will not be re-imported. You will receive a notification message, when you save
it, if the certificate already exists in the Keyfactor Command database. Any metadata currently stored in the data-
base for that certificate will be displayed in the metadata fields on the page (for .cer and .crt format certificates),
and any changes you make to the metadata on this page will overwrite the existing metadata for the certificate
when you complete the import (for all certificate formats).
2. In the Add Certificate section of the page, click the Upload button to open a browse window.
3. In the browse window, browse to select the certificate you wish to import.
4. For a .pfx or .p12 file, when prompted enter the password for the file and Save. This will open the Add Certi-
ficate page, which will allow you to change/add metadata and choose certificate locations to deploy the certi-
ficate to. Set PFX Password allows you to reenter the password once you have uploaded the certificate.
6. In the Metadata section of the page, populate the metadata fields as appropriate for the certificate. Metadata
fields that have been designated as required on a system-wide or template-level basis will be marked with
*Required.
7. In the Install into Certificate Locations section of the page, select each certificate store location to which you
want to distribute the certificate, if desired. To do this, click the Include Certificate Stores button. This will
cause the Select Certificate Store Locations dialog to appear. Make your certificate store selections in this
dialog as described in Select Certificate Store Locations, below, and click Include and Close. You will then see
some additional fields on the page. Populate these as per Add to Certificate Stores and Information Required
for Certificate Stores, below.
Note: Only compatible certificate stores and only stores in containers to which you have permissions
are shown on the grid.
Tip: You may change the search results by using the search fields at the top of the dialog. All of the
Keyfactor Command grid search features are available to assist your search. See Using the Certificate
Store Search Feature on page 358 for more information on the available search fields. The default
search criteria is AgentAvailable is equal to True.
l Include
Click this to add the selected certificate store(s) to your certificate selection and leave the search
dialog open for further searches.
l Include and Close
Click this to close the search dialog and add the selected certificate store(s) to your certificate selec-
tion, which will then be displayed and ready for updates as per the instructions in Add to Certificate
Stores.
l Close
Click this to cancel the operation and return to the main page with no certificate stores selected.
For each selected certificate store you can apply the following actions:
Note: The tab heading of the certificate location will display an alert if an alias is required for
the location. If this is set to Forbidden on the certificate store type, the Alias field will not
display unless "Overwrite" is checked on this page.
Tip: When adding a certificate to a certificate store, you have the option to overwrite an existing
certificate with the current certificate. If you choose this option, you will need to provide the alias of
the certificate you wish to overwrite. Find the alias values by navigating to Management Portal >
Certificates > Certificate Search. Select the certificate you wish to overwrite and double-click, or click
Edit, from the grid header or right-click menu. Choose the Locations tab and double-click on the Loca-
tion Type (this must have a number other than zero in the Count column) to open the details dialog.
The Alias field holds the information that may be required for an overwrite.
F5 SSL Profiles REST Alias required for new additions and overwrites
File Transfer Protocol Alias required for new additions and overwrites
Amazon Web Services (AWS) certificate stores require the addition of a private key and will only appear as
an option when you select a certificate with a private key. With this type of store, you have the option to
overwrite an existing certificate with the current certificate. If you choose this option, you will need to
provide the alias of the certificate you wish to overwrite. The alias is the internal ID assigned by Amazon
(the Amazon resource number or ARN). Provide the entire contents of the Alias/IP from this field when
entering an alias for overwrite. For example:
arn:aws:acm:us-west-2:220531701668:certificate/88e5dcfb-a70b-4636-a8ab-e85e8ad88780
F5 CA Bundles REST
F5 CA Bundle REST certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. The alias is the file name used to store the file in the device file system, minus
the extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces.
Note that certificate names are case sensitive. You have the option to overwrite an existing certificate with
F5 SSL Profile
F5 SSL Profile certificate store additions do not require the addition of a private key and will appear for both
certificates with a private key and those without. With this type of store, you will be prompted to add an
alias for the certificate. The alias is the file name used to store the file in the device file system, minus the
extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces. Note
that certificate names are case sensitive. You have the option to overwrite an existing certificate with the
current certificate. If you choose this option, you will need to provide the alias of the certificate you wish to
overwrite.
F5 SSL Profile REST certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. The alias is the file name used to store the file in the device file system, minus
the extension (e.g. use alias MyFile for a file named [Link]). Aliases should be entered without spaces.
Note that certificate names are case sensitive. You have the option to overwrite an existing certificate with
the current certificate. If you choose this option, you will need to provide the alias of the certificate you
wish to overwrite.
F5 Web Server
F5 Web Server certificate stores require the addition of a private key and will only appear as an option when
you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate with the current certificate. If you choose this option, you will need to provide the alias
of the certificate you wish to overwrite. The alias for F5 device certificates is typically "server".
F5 Web Server REST certificate stores require the addition of a private key and will only appear as an option
when you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate with the current certificate. If you choose this option, you will need to provide the alias
of the certificate you wish to overwrite. The alias for F5 device certificates is typically "server".
File Transfer Protocol (FTP) certificate store additions do not require the addition of a private key and will
appear for both certificates with a private key and those without. With this type of store, you have the
option to overwrite an existing certificate with the current certificate. If you choose this option, you will
need to provide the alias of the certificate you wish to overwrite. In that case the new thumbprint should be
passed in as the alias without any spaces between the octets (e.g.
81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b
33).
IIS Personal certificate stores require the addition of a private key and will only appear as an option when
you select a certificate with a private key. With this type of store, you have the option to overwrite an
existing certificate bound to an IIS web site with the current certificate. If you choose this option, you will
need to provide the alias of the certificate you wish to overwrite. The alias is the thumbprint of the certi-
ficate bound to the IIS web site on the target. The thumbprint may be entered with or without spaces
between each octet (e.g. 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b 33 or
81009c6e5465ecf343ba55ff9612122a5a4f6b33).
Tip: Choosing overwrite for a certificate not bound to an IIS web site will have no effect. No certi-
ficate will be overwritten.
IIS Revoked and Trusted Root certificate store additions do not require the addition of a private key and will
appear for both certificates with a private key and those without.
Tip: The overwrite functionality is not relevant for IIS Revoked and Trusted Root certificate stores
and should be ignored.
Java Keystore
Java keystore certificate store additions do not require the addition of a private key and will appear for
both certificates with a private key and those without. With this type of store, you will be prompted to add
an alias for the certificate. This optional alias is stored in the keystore associated with the certificate. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias of the certificate you wish to overwrite. Spaces are supported in the alias.
NetScaler
NetScaler certificate store additions do not require the addition of a private key and will appear for both
certificates with a private key and those without. With this type of store, you will must add an Alias for the
certificate. This serves as the file name used to store the file in the file system, so provide it with an appro-
priate extension (e.g. [Link] or [Link]). Aliases should be entered without spaces. You
must also enter the virtual server to associate the certificate with in the NetscalerVserver field. For a certi-
ficate with a private key, you are associating the certificate as a NetScaler Server Certificate. For a certi-
ficate without a private key, you are associating the certificate as a NetScaler CA Certificate and only CA
certificates are supported for this purpose. You will receive an error if you attempt to associate a non-CA
certificate without a private key with a virtual server. Entry of virtual server name is not case sensitive. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias (full file name with extension) of the certificate you wish to overwrite.
PEM certificate store additions do not require the addition of a private key and will appear for both certi-
ficates with a private key and those without. When you check the box for a PEM store, a new PFX Password
section will appear on the page. The password you enter here is used to encrypt the private key of the certi-
ficate when stored in the PEM file or separate password file. If you choose to uncheck the Use Custom Pass-
word box, the private key will be encrypted with a random password which is not accessible to you. For
most use cases, you will need a known password for this purpose, so leave the Use Custom Password box
checked and make note of the password you use for this purpose. With this type of store, you have the
option to overwrite an existing certificate with the current certificate. If you choose this option, you will
need to provide the alias of the certificate you wish to overwrite. The alias is the thumbprint of the certi-
ficate without any spaces between the octets (e.g. 81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00
9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b 33).
Note: Keyfactor Command will automatically strip out any spaces between the octets in the alias
field, so it does not matter whether you enter the thumbprint with or without spaces.
Note: When you import a certificate containing a private key (a .pfx or .p12 file), the private key for that
certificate is stored in the Keyfactor Command database. Users with limited permissions to the Add Certi-
ficate function may have permissions to upload certificates but not store private keys. If a user with this
permission model uploads a certificate containing a private key, the certificate itself will be imported (if it
does not already exist in the database), but the private key will not be stored. The user will receive a
message indicating this. For more information about setting permissions for importing certificates, see
Security Roles and Identities on page 576.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
To open the Certificate Collection Management grid, browse to Certificates > Collection Manager in the Manage-
ment Portal. The Certificate Collection Management page includes the following collection action buttons from the
grid header:
l Set Show in Navigator on the collection to determine whether or not the collection appears in Navigator (the
top menu under Certificates). To change this setting, highlight the row in the collection management grid and
click Show in Navigator at the top of the grid, or right-click the collection in the grid and choose Show in
Navigator from the right-click menu. This will toggle the Yes/No in the Show in Navigator grid column.
l To delete a collection, highlight the row (or rows) in the collection management grid and click Delete at the
top of the grid or right-click the collection in the grid and choose Delete from the right-click menu.
l Highlight a row in the collection management grid and click View at the top of the grid, or right-click the collec-
tion in the grid and choose View from the right-click menu to be taken to the list of certificates in that collec-
tion. Choosing this option will open the certificate search page in a new window filtered with the specific
collection.
Note: Certificate collections saved using the %ME% value are not supported for use in reports or on
the dashboard.
l Revoked Certificates
This collection returns revoked certificates by querying for certificates that have a non-null revocation date.
The Include Revoked box is automatically checked for this collection when run. The query for this collection is:
RevocationDate -ne NULL
l Self-Signed Certificates
This collection returns all certificates that are self-signed. In environments with no certificates imported from
external sources (e.g. SSL scanning), this would typically just be CA certificates. The query for this collection is:
SelfSigned -eq true
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
Important: All automatically created collections are included on the menu by default, and all are included
in the Certificate Collections Management grid by default. They are created for fresh installations of
Keyfactor Command only, not upgrades, so as not to overwrite any user-defined collection for existing
installations.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
To view an existing certificate collection, either browse to the Certificates dropdown on the Management Portal
menu and select the desired collection from the dropdown (if the collection has Show in Navigator set as Yes), or
browse to Certificates > Collection Manager from the Management Portal and then select View, or double-click the
row, from the Certificate Collection Management grid. When you select the collection for viewing, the search will
begin immediately and the certificate search grid will open with the results from the collection. For information on
using the certificate search grid, see Certificate Search Page on page 29.
Available operations on a certificate collection include; Save, Save As, Delete Collection or view Permissions on
the certificate collection. Click Save to save any changes to the query. The Save dialog is also where you can
change the Ignore, Show on Dashboard and Show in Navigator settings of an existing collection. See Saving Search
Criteria as a Collection on page 36. Click Save As to create a new collection based on the existing collection. You
can then edit the search criteria for the new collection without affecting the existing collection. Click Delete Collec-
tion to delete the certificate collection. Click Permissions to view collection level permission for the collection (see
Certificate Permissions on page 587).
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Name Query
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
2.4 Reports
Keyfactor Command uses the Logi Analytics Platform to provide a number of built-in reports based on certificate
data in the Keyfactor Command database. These reports are available for viewing through the Management Portal,
if you configured that option during the installation and configuration process (see Dashboard and Reports Tab).
The reports can also be configured to save to a network path or deliver via email periodically, if desired.
As of Keyfactor Command version 10, Logi has been upgraded to v14 SP2 and a new Logi license is included in the
application.
Note: Any CAs that have not been configured for synchronization will not appear as an option for reports
which require selecting a CA.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
Once a report has been generated, you may be able to export it to either PDF, Excel, or CSV. The export file types
available for each standard report are shown in Table 5: Chart of Available Exports per Standard Report.
PDF and Excel Excel and CSV PDF, Excel and CSV
Certificate Count by Template Certificates Found at TLS/SSL Endpoints Certificate Count Grouped by Single
Metadata Fields
Certificate Issuance Trends with SSH Keys with Root Logon Access
Metadata
Statistical Report
Report Drill-down
Most reports now have drill-down capability. Clicking on a chart or graph segment in a report will open the corres-
ponding query grid in a new browser window or tab populated with the query as defined by the selected graph
segment. For example, for the Certificates by Key Strength report, clicking on a bar or pie will take you to the Certi-
ficate Search page pre-populated with the query that corresponds to that bar or pie.
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The export options for the Certificate Count by Template report are Excel and PDF.
Note: Only CAs configured for synchronization are available for reporting.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
The bar graphs show the number of certificates issued by the certificate requester and template in the selected
date range for the selected template(s). The report shows one bar for each requester and template combination;
for example, "KEYEXAMPLE\jsmith - Template One" would be one bar and "KEYEXAMPLE\mjones - Template One"
would be another bar.
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The table shows detailed information for the certificates issued in the selected time-frame (up to a maximum of
100).
The export options for the Certificate Count by User per Template report are Excel and PDF. The PDF exports in
landscape format to accommodate the width of the report.
Example: You want to track down instances of duplicate certificates where user X has been issued a
certain type of certificate more than once and more than one of these certificates is still valid (not
revoked). To use this report for that, select the template or templates used for that particular type of
certificate (say, a client authentication template), select a date range that would cover the full lifetime
for certificates issued by that template, and select a value of 1 or greater in the Certificate count more
than field. The report results will include all users who have multiple certificates issued with the
selected template(s) in the selected date range.
Note: Certificates must have a certificate state of Active to be included in the report. The report output
includes active and expired certificates but not revoked certificates.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
For example, if the selected metadata field is AppOwnerEmailAddress, the table will show a row for each unique
email address populated in a certificate issued in the selected date range with a count of how many certificates
share that same email address.
The export options for the Certificate Count Grouped by Single Metadata Field report are CSV, Excel, and PDF.
l The start date and end date for the date range on which to report. The default date range is one month
ending with the current date. Only certificates issued within the time span will be counted.
Note: Certificates must have a certificate state of Active to be included in the report. The report output
includes active and expired certificates but not revoked certificates. Only certificates issued within the
time span will be counted.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
Figure 59: Certificate Issuance Trends with Metadata: Metadata Table and Chart
The export options for the Certificate Issuance Trends with Metadata report are Excel and PDF.
Note: When either scheduling or exporting this report as an Excel file, the output will not include the
graphs.
l Metadata: Check a metadata field from the pop-up to select it for this report.
l Requesters: A comma-separated list of requester user names (do not included the domain name).
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: Other than the option of certificates with no associated CA, only CAs currently configured for
synchronization are available for reporting.
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The export options for the Certificates by Key Strength report are Excel and PDF.
This report takes as an input parameter the CA(s) on which to report and includes the option to report on certi-
ficates that have no associated CA. Typically, these would be certificates found via SSL scanning or inventory on
certificate stores.
Note: Other than the option of certificates with no associated CA, only CAs currently or previously
configured for synchronization are available for reporting.
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The export options for the Certificates by Revoker report are Excel and PDF.
Note: Certificates that have been revoked outside of Keyfactor Command (e.g. directly on the CA) appear
with an "Unknown" revoker.
l The CA(s) to include in the report. Certificates that were issued from CA(s) other than those selected will not
be included in the counts of revoked certificates.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: Only CAs currently or previously configured for synchronization are available for reporting.
The export options for the Certificates by Type and Java Keystore report are Excel and PDF.
l The start date and end date for the date range on which to report. The default date range is one month
ending with the current date. These defaults can be changed in the report parameters (seeReport Manager
Operations on page 113).
Note: Only CAs currently or previously configured for synchronization are available for reporting.
The export options for the Certificates Found at TLS/SSL Endpoints report are CSV and Excel.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
The export options for the Certificates in Collection report are CSV and Excel.
l ID l Key Type
The Keyfactor Command reference ID for the certificate. l Key Size in Bits
l Issued DN l Key Usage
l Effective Date (UTC) l Signing Algorithm
l Expiration Date (UTC) l Serial Number
l Issued CN l CA Record ID
l Issuer DN The ID of the certificate in the CA database.
l Principal l Issued OU
The user principal name (UPN) contained in the subject The OU from the certificate subject, if any.
alternative name (SAN) field of the certificate, if present l Issued Email
(e.g. "username@[Link]"). The email address from the certificate subject, if any.
l Requester l Revocation Effective Date
l Thumbprint l Revocation Reason
l Template l Metadata (Optional)
l Cert State
The state of the certificate (e.g. Active, Revoked,
Unknown).
Figure 64: Certificate Expiration Report: Certificates Expiring within One Week
The export options for the Expiration report are Excel and PDF. The PDF exports in landscape format to accom-
modate the wide width of the report.
In addition, tables are shown for CA certificates expiring in the following timeframes relative to the selected report
date:
A table is only shown if a certificate or CA in the collection matches the expiration time window. A certificate or CA
appears in only one table, so, for example, a certificate expiring within 4 weeks does not also appear as expiring
within 6 weeks.
For example, if the de-duplication logic was set to DN and the report would include these two certificates:
l Certificate one: l Certificate two:
l DN: CN=apps- l DN: CN=apps-
[Link],OU=IT,O=Key Example, [Link],OU=IT,O=Key Example,
Inc.,L=Chicago,ST=IL,C=US Inc.,L=Chicago,ST=IL,C=US
l EKUs: Server Authentication l EKUs: Server Authentication
l Issued Date: December 1, 2020 l Issued Date: December 15, 2020
l Expiration Date: January 1, 2022 l Expiration Date: December 14, 2021
The de-duplication logic would be triggered because the DNs and EKUs match. The report would include
certificate two and leave out certificate one. Notice that certificate two is retained even through certi-
ficate one expires after certificate two. This is because certificate two was issued after certificate one.
Now imagine that the de-duplication logic is set to CN and the report would include these two certificates:
Although the DNs for these certificates do not match, the CNs still do, so this matches the de-duplication
logic of CN. However, the EKUs for these two certificates do not match, since only one of them includes
Client Authentication. In this case, both certificates would appear on the report.
The Expiration Report includes a table showing detailed information for certificates expiring in the time frames
identified by the parameters start date and number of days. The number of days parameter value must be
between 0 and 100.
The export options for the Expiration Report by Days are CSV and Excel.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
For example, if the de-duplication logic was set to DN and the report would include these two certificates:
l Certificate one: l Certificate two:
l DN: CN=apps- l DN: CN=apps-
[Link],OU=IT,O=Key Example, [Link],OU=IT,O=Key Example,
Inc.,L=Chicago,ST=IL,C=US Inc.,L=Chicago,ST=IL,C=US
l EKUs: Server Authentication l EKUs: Server Authentication
l Issued Date: December 1, 2020 l Issued Date: December 15, 2020
l Expiration Date: January 1, 2022 l Expiration Date: December 14, 2021
The de-duplication logic would be triggered because the DNs and EKUs match. The report would include
certificate two and leave out certificate one. Notice that certificate two is retained even through certi-
ficate one expires after certificate two. This is because certificate two was issued after certificate one.
Now imagine that the de-duplication logic is set to CN and the report would include these two certificates:
Although the DNs for these certificates do not match, the CNs still do, so this matches the de-duplication
logic of CN. However, the EKUs for these two certificates do not match, since only one of them includes
Client Authentication. In this case, both certificates would appear on the report.
The export options for the Full Certificate Extract Report are CSV and Excel.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The export options for the Issued Certificates per Certificate Authority report are Excel and PDF.
l Which CA to include in the report. This includes the option to report on certificates that have no associated
CA. Typically, these would be certificates found via SSL scanning or inventory on certificate stores. Only one CA
option can be reported on at a time.
l The template(s) to include in the report. A separate line graph is generated for each template selected for
reporting. Templates that are available for issuance from more than one CA are reported separately by CA, so
only certificates issued for the selected template and the selected CA will be shown. When the Certificates Not
Associated with CA option is selected for the CA, the No Template option should be selected for the template.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: Other than the option of certificates with no associated CA, only CAs currently configured for
synchronization are available for reporting.
Note: Clicking on a bar on the graph, or a section of a pie chart or line graph, will open a new window as a
drill down to the certificate search grid filtered for the exact criteria of that aspect of the graph. You can
return to the original report by navigating to the original report window.
The export options for the Monthly Executive report are Excel and PDF.
This report takes as an input parameter the CA or CAs to report on and includes the option to report on certificates
that have no associated CA. Typically, these would be certificates found via SSL scanning or inventory on certificate
stores.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: Only CAs currently or previously configured for synchronization are available for reporting.
The export options for the PKI Status for Collection report are Excel and PDF.
This report takes as an input parameter the certificate collection to report on, including the built-in "All Certi-
ficates" collection, and has the option to include or exclude certificates that have a status of unknown (certificates
found on SSL scans and in certificate stores often have this status). The default collection is "All Certificates", and
unknown certificates are excluded by default.
Tip: If you Save a new certificate collection, or Save a change to an existing certificate collection, that
change will be immediately reflected in the collection data used to display certificate collections on dash-
boards and reports. The data used by the dashboards and reports is stored in an intermediate table that is
updated immediately. It will also continue to be updated periodically (approximately every 20 minutes by
default as configured by the Dashboard Collection Caching Interval application setting) by the Keyfactor
Command Service (see Application Settings: Console Tab on page 554).
Summary Page
The summary page provides certificate counts for the following:
l Total number of active certificates
This value excludes expired and revoked certificates and only includes non-expired, non-revoked certificates
with an unknown state if the Include Unknown checkbox is selected at runtime.
l Number of certificates issued in the most recently completed week, beginning with a Sunday
l Number of expired certificates
Self-Signed Certificates
This table shows details of the certificates that are self-signed or root CA certificates and includes the certificate
DN, certificate validity period in UTC time, thumbprint and serial number. A maximum of 1000 certificates is
shown. Grid columns may be rearranged by click-holding and dragging the grid arrangement control icon ( ) at
the left of the column header. Click a column header to sort the grid by ascending values; click again to sort
descending (columns already in ascending order will switch to descending on the first click). The screen will redraw
when you sort. Not all columns are sortable.
The export options for the Revoked Certificates in Certificate Stores report are CSV and Excel.
This report takes as an input parameter the certificate collection to report on, including the built-in "All Certi-
ficates" collection. The default is "All Certificates".
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Note: This report is limited to a maximum of 100,000 revoked certificates in certificate stores on which to
report. Selecting a certificate collection containing more certificates than this will result in an error.
The export options for the SSH Keys with Root Logon Access report are CSV and Excel.
Note: By default, this report is configured not to appear on the top menu under Reports and can be
found only in Report Manager. You can change this by modifying the Show in Navigator setting (see
Report Manager Operations on page 113).
The export options for the SSH Trusted Public Keys with No Known Private Keys report are CSV and Excel.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
The export options for the SSH Key Usage report are CSV and Excel.
This report takes as an input parameter; number of Days Since Last Used. You must select a number between 0
and 100.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
The export options for the SSH Keys by Age report are PDF and Excel.
A table is only shown if an SSH key with one of the selected key types matches the age window. An SSH key
appears only in one table, so, for example, a key that will become stale within 4 weeks and appears in the 4-week
table does not also appear as becoming stale within the 8-week table.
This report takes as an input parameter the SSH Key Types to include in the report. You must select at least one
key type using the Select SSH Key Types button.
Note: By default, this report is configured not to appear on the top menu under Reports and can be found
only in Report Manager. You can change this by modifying the Show in Navigator setting (see Report
Manager Operations on page 113).
Tip: The Total Active Certificates count for each CA section in the report includes all certificates issued by
that CA which are still active (not revoked and not expired), not just those issued in the time period for the
report.
With the Report Manager, custom Logi Analytics reports or custom reports from other external reporting solutions
can be added into the portal to allow for easy running and scheduling. If you would like assistance creating a
custom report in the new reporting engine, Logi Analytics, or displaying a custom report in the Report Manager,
please contact your Client Success representative.
Tip: Be sure to check the filter on the category if you are not seeing all of the reports you expect to see.
The default filter is All unless you have favorited some reports, in which case it is Favorite.
From the Report Manager you can run reports on demand, edit reports (modify how a report displays, change the
parameter definitions and add or change the schedule(s) used to run the report), or delete reports. From the top
grid menu you can also quickly change the Favorite setting for a report.
Run a Report
You can run a report on demand from the Report Manager page.
2. On the Report Manager page, highlight the report you wish to run in the grid and click Run Report from the
top grid menu or the right click menu.
3. Populate the parameters as desired (see Parameters Tab on page 115 for more information on parameters).
4. Click Generate. The report will display immediately in the open window. The report can be exported to Excel,
PDF or CSV, as available for that report, via the Export button at the end of the report.
2. On the Report Manager page, highlight the report you wish to modify in the grid and click Edit from the grid
menu or the right click menu.
Details Tab
The most common edit to make on an existing report would be to check or uncheck the Show in Navigator box to
add or remove the report from display on the Reports top menu, or to check or uncheck the Favorites box on the
Details tab. The Ignore Renewed Certificates box will be available for reports that use collections to enable de-
duplication (see the tip below). The Uses Collection box is for information only. It will be grayed out and checked
For example, if the de-duplication logic was set to DN and the report would include these two certificates:
l Certificate one: l Certificate two:
l DN: CN=apps- l DN: CN=apps-
[Link],OU=IT,O=Key Example, [Link],OU=IT,O=Key Example,
Inc.,L=Chicago,ST=IL,C=US Inc.,L=Chicago,ST=IL,C=US
l EKUs: Server Authentication l EKUs: Server Authentication
l Issued Date: December 1, 2020 l Issued Date: December 15, 2020
l Expiration Date: January 1, 2022 l Expiration Date: December 14, 2021
The de-duplication logic would be triggered because the DNs and EKUs match. The report would include
certificate two and leave out certificate one. Notice that certificate two is retained even through certi-
ficate one expires after certificate two. This is because certificate two was issued after certificate one.
Now imagine that the de-duplication logic is set to CN and the report would include these two certificates:
Although the DNs for these certificates do not match, the CNs still do, so this matches the de-duplication
logic of CN. However, the EKUs for these two certificates do not match, since only one of them includes
Client Authentication. In this case, both certificates would appear on the report.
Parameters Tab
The Parameters tab will display all of the parameters for that specific report and allow you to configure default
values to be used when the report is run from the Report Manager Run Report action button and what values
To edit a parameter, select the Parameters tab, highlight the desired parameter in the parameters grid and click
Edit, or double click the row. The Parameters dialog will open. Only those fields which can be edited will be
enabled on the parameters details page. A change of the Display Name will change the name of parameter on the
Parameters tab . A change of the Description will change the name of the description field on the Schedule tab. A
change to the Default Value will define the value to use when the report is run from the Report Manager Run
Report action button and what values default when adding a new schedule.
Tip: Some reports parameters use the Add/Edit button at the bottom of the dialog to open a
Default Value dialog for to populate that parameter.
Note: The parameter fields will vary depending on the report selected. The parameters shown corres-
pond to the specific parameters for each report. For more information on the parameters for a specific
report, see the individual report under Reports on page 77.
Schedule Tab
To add, edit, or delete a report delivery schedule, select the Schedule tab and choose the desired action. Any
scheduled reports will appear on the schedule tab page. You can create multiple schedules with different para-
meters and recipients for the same report.
Figure 78: Edit a Report in Report Manager Schedule Tab - Add/Edit page
Note: Report scheduling is limited by collection permissions. Users in roles that have Reports: Read and
Modify permissions will also need to have Read collection permissions on individual collections or global
Read permissions for Certificates to have the ability to add, edit and delete schedules associated with
collections. Any users without global Read permissions for Certificates will not have access to add, edit
and delete schedules for any collections for which they do not have collection Read permissions in addi-
tion to Reports permissions.
Details section
l Schedule: Choose the schedule by selecting Daily, Weekly or Monthly from the dropdown, then choosing the
day or date, and the time to run the report.
Note: *The CSV format is only available on reports that contain all the data within a single section
(such as the Certificates in Collection report) rather than broken out into multiple sections (such as
the Expiration Report).
Note: *CSV format is not available for custom reports with multiple tables.
l Dynamic Parameters:
Depending on the parameters specific to the report, you will use either a entry field, a dropdown or click the
Add/Edit to open the selection window for the report parameters for the specific schedule you are working
on.
o Some reports are based on a certificate collection, so one must be selected.
o Some reports allow you to set an evaluation date for the report other than the current date so that you
can, for example, run an Expiration Report time shifted to 1 month in the future to see what the expir-
ation picture will look like in a month's time or compare last year to this year.
o Some reports allow you to include custom metadata (see Certificate Metadata on page 611) in the report
output.
o Some reports allow you to select specific templates or CAs for reporting.
Note: The path for saved reports must be provided in UNC format (\\servername\sharename\path)
and must be accessible from the Keyfactor Command administration server. In addition:
o Do not use a trailing "\" in the report path.
o Ensure that the service account for the Keyfactor Command Service has permission to write to
the location where you want the outputted report to be saved.
o When scheduling a report, schedule it for at least 10 minutes in advance of the current time if
you wish it to run soon. If you want to run it faster than that, the Keyfactor Command Service
will need to be restarted.
Tip: For an explanation of the parameters specific to each report, see the section in the documentation
for that specific report under Reports on page 77.
Important: Scheduled reports will not run if the Keyfactor Command Service is stopped.
Deleting a Report
To delete a report
2. On the Report Manager page, highlight the report you wish to delete in the grid and click Delete from the
right-click menu.
Note: Only user-defined reports can be deleted. Built-in reports cannot be deleted. If you prefer not to
see a built-in report, you may opt to remove the report from the menu by unchecking the Show in Navig-
ator option.
2.5 Enrollment
The enrollment function in the Keyfactor Command Management Portal allows PKI administrators to request certi-
ficates by either submitting a certificate signing request (see CSR Enrollment on the next page) or by directly
entering request information to receive a certificate delivered as a PFX file (see PFX Enrollment on page 131). The
certificate file is available for immediate download via the browser or installation into a certificate store providing
that the enrollment succeeds and the template used does not require manager approval. An option is also
provided to generate a certificate signing request within Keyfactor Command. When you do this, the private key
generated as part of the CSR generation process is stored—encrypted—in the Keyfactor Command database (see
CSR Generation on page 127).
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
See Application Settings: Enrollment Tab for configuration settings that apply to the enrollment functions in the
Keyfactor Command Management Portal. Some enrollment functions are also affected by template settings. See
Configuring System-Wide Settings on page 335 and Configuring Template Options on page 338 for more inform-
ation.
Important: Direct enrollment (without use of a Keyfactor CA gateway) is only supported for CAs in the
forest in which Keyfactor Command is installed and any forests in a two-way trust with this forest. To do a
cross-forest enrollment (with a forest in a two-way trust with the Keyfactor Command forest), Keyfactor
Command requires that the root and intermediate CA certificates from the trusted forest are installed in
the trusted root/intermediate stores in the Keyfactor Command server.
Important: Before you can use the CSR enrollment function, you must configure at least one template for
enrollment by checking the CSR Enrollment box under Allowed Enrollment Types in the certificate
template details. See Configuring Template Options on page 338.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
1. Generate a CSR. This can be done within the target application (e.g. Microsoft IIS), by using a tool such as
certutil or OpenSSL, or by using the Keyfactor Command CSR generation tool (see CSR Generation on
page 127).
3. Paste your CSR into the CSR Content text area, with or without the BEGIN REQUEST/END REQUEST delimiters.
4. The CSR contents will be parsed, and you will automatically be switched to the CSR Names view. Review the
data to be sure it is as expected.
Note: If a system-wide or template-level regular expression exists for a subject part or SAN, and the
subject part or SAN is left blank, the regular expression will be applied to an empty string for that
part. For example, if you have a regular expression on organization, but do not supply an organ-
ization, the regular expression will be applied to a blank string as if that were supplied as the organ-
ization.
5. If you are enrolling from an enterprise CA, select a certificate template from the Template dropdown. The
templates are organized by configuration tenant (formerly known as forest). If you have multiple config-
uration tenants and templates with similar names, be sure to select the template in the correct configuration
tenant.
Note:
When enrolling with the template, the key size of the request is validated against the template key
size. This allows for a key size to be set on a template in Keyfactor Command for validation purposes
that can be different than the CA template key size setting. Care should be taken to make sure any
template policy settings take into consideration CA template key size settings so that errors do not
occur at the CA level.
If a CSR Enrollment request is made with a key size that is not valid, per the template policy settings,
an error will be displayed when you click the Enroll button (for example, the CSR has a key size of
2048 but the template policy supports only 4096).
For PFX Enrollment, the request will contain the minimum settings from the Keyfactor Command
presiding template settings.
6. Select the Certificate Authority from which the certificate should be requested. Only CAs that have the
selected template available for enrollment or are standalone, if you check the stand-alone CA box, will be
shown.
Tip: If you are enrolling from a standalone CA, check the Use a stand-alone CA box instead of
selecting a template. The check box for stand-alone CAs only appears if you have a stand-alone CA
configured for enrollment.
l DNS name
l IP version 4 address
l IP version 6 address
l User Prinicpal Name
l Email
Important: If the RFC 2818 compliance setting is enabled for the selected template (see Certificate
Template Operations on page 333), your request must have at least one SAN either included in the
original CSR or entered separately in this field, which matches the CN in the request.
Note: Entering SANs here may either append or overwrite the SANs in the CSR request depending on
how the issuing CA is configured. Please be sure to check that the certificate has the correct SANs
after issuance. Any SAN added automatically as a result of RFC 2818 compliance settings at the policy
handler level will still be added alongside anything you add here. For more information, see the SAN
Attribute Policy Handler on page 660 for the Keyfactor Command policy module.
8. If template-specific enrollment fields have been defined (see Enrollment Fields Tab on page 341) for the
selected template, the fields will display in the Additional Enrollment Fields section. The types of fields shown
could be either blank (string) fields or multiple choice drop-down fields depending on how they were
configured on the template. All additional enrollment fields are mandatory.
10. At the bottom of the page, select the radio button for the desired encoding format (PEM or DER).
11. Click the Enroll button to begin the certificate request process.
l If the request completes successfully, you'll see a success message and you'll be prompted by your
browser to begin download of your certificate.
l If the template you selected requires approval at the Keyfactor Command workflow level, you'll see a
message that your request is suspended and is awaiting one or more approvals. The user(s) responsible
for approving the request will be notified (if the workflow has been configured this way, see Adding or
Modifying a Workflow Definition on page 210). You can use the My Workflows Created by Me tab (see
Workflows Created by Me Operations on page 296) to check on the status of your request. If the
Management Portal feature has been configured to send notification alerts when a certificate is issued
following approval, you may receive an email message when your certificate is available for download.
The email message may contain a download link. See Issued Certificate Request Alerts on page 168.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
To generate a CSR:
1. In the Keyfactor Command Management Portal, browse to Enrollment > CSR Generation.
a. Select a Template, if desired. The templates are organized by configuration tenant (formerly known as
forest). If you have multiple configuration tenants and templates with similar names, be sure to select the
template in the correct configuration tenant.
Important: The template will not be included in the CSR. The template is referenced in order to
retrieve key size and other information to help populate the CSR. Also, the CSR generation page
supports template-level regular expressions for both subject parts and SANs. If system-wide and
template-level regular expressions exists for the same field and you select a template, the
template-level regular expression is applied.
If you choose to select a template during CSR generation, you will need to choose the same
template during CSR Enrollment (see CSR Enrollment on page 121) because the CSR file will
contain elements from the template which may conflict with other template configurations.
b. Select a Key Length for your CSR. If you have selected a template, the dropdown will be limited to the
value supplied by the template. When enrolling with the template, the key size of the request is validated
against the template key size.
3. In the Certificate Subject Information section of the page, enter appropriate subject information for your CSR.
Note: Some subject fields may be automatically populated by system-wide or template-level enroll-
ment defaults. You may override the system-populated data, if desired. Any system-wide or
template-level regular expressions will be used to validate the data entered in the subject fields.
System-wide or template-level policies will affect the request. For more information, see Certificate
Template Operations on page 333. Subject data may also be overridden after an enrollment request
is submitted either as part of a workflow (see Update Certificate Request Subject\SANs for
Microsoft CAs on page 248) or using the Subject Format application setting (see Application Settings:
Enrollment Tab on page 559).
4. In the Subject Alternative Names section of the page, click Add and select from the dropdown to enter one or
more SANs for your CSR. Use the Remove action button to remove an existing SAN.
Note: If the CSR generated has multiple SANs, they will not be overridden by the template default
settings, nor the RFC 2818 compliance settings.
l DNS name
l P version 4 address
l IP version 6 address
l User Prinicpal Name
l Email
5. At the bottom of the page, click the Generate button. You will see a success message. If any template-level or
system-wide regexes have been applied to any fields on the CSR and failed you will receive a notice at the top
of the CSR generation page indicating the error as defined on the template (whether template or system-wide
settings prevail).
The CSRs can be sorted by clicking on the Request Time column header in the results grid. Click the column
header again to reverse the sort order. The results grid columns can be arranged in any order desired by click-
holding and dragging the header of the column you wish to move. The column widths may also be adjusted by
click-holding and dragging the line separating two column headers.
Note: As of Keyfactor Command version 10, enrollment (PFX and CSR), renewal, and revocation requests
all flow through Keyfactor Command workflow. This will result in no changes to the enrollment, renewal,
and revocation user experience unless customizations have been added in workflow (see Workflow Defin-
itions on page 205).
You can expand and collapse sections of the PFX enrollment page by clicking on the plus/minus icon to the left of
each section title.
1. In the Keyfactor Command Management Portal, browse to Enrollment > PFX Enrollment.
2. If you are enrolling from an enterprise CA, select a certificate template from the Template dropdown. The
templates are organized by configuration tenant (formerly known as forest). If you have multiple config-
uration tenants and templates with similar names, be sure to select the template in the correct configuration
tenant. If you are enrolling from a standalone CA, check the Use a stand-alone CA box instead of selecting a
template.
If a CSR Enrollment request is made with a key size that is not valid, per the template policy settings,
an error will be displayed when you click the Enroll button (for example, the CSR has a key size of
2048 but the template policy supports only 4096).
For PFX Enrollment, the request will contain the minimum settings from the Keyfactor Command
presiding template settings.
Tip: The check box for stand-alone CAs only appears if you have a stand-alone CA configured for
enrollment.
Tip: If you select an ECC template, the elliptic curve algorithm for the template appears below the
Template dropdown.
Figure 95: PFX Enrollment for ECC Template Displaying Elliptic Curve
3. Select the Certificate Authority from which the certificate should be requested. Only CAs that have the
selected template available for enrollment or are standalone, if you check the stand-alone CA box, will be
shown.
Note: If a system-wide or template-level regular expression exists for a subject part or SAN, and the
subject part or SAN is left blank, the regular expression will be applied to an empty string for that
part. For example, if you have a regular expression on organization, but do not supply an organ-
ization, the regular expression will be applied to a blank string as if that were supplied as the organ-
ization
4. In the Certificate Subject Information section of the page, populate the fields as appropriate for the certificate
being requested. Although Keyfactor Command does not require the Common Name, it is typical for a CA to
require this unless the template is set to populate the subject from Active Directory.
Note: Some subject fields may be automatically populated by system-wide or template-level enroll-
ment defaults. You may override the system-populated data, if desired. Any system-wide or
template-level regular expressions will be used to validate the data entered in the subject fields.
System-wide or template-level policies will affect the request. For more information, see Certificate
Template Operations on page 333. Subject data may also be overridden after an enrollment request
is submitted either as part of a workflow (see Update Certificate Request Subject\SANs for
Microsoft CAs on page 248) or using the Subject Format application setting (see Application Settings:
Enrollment Tab on page 559).
6. In the Subject Alternative Names (SANs) section of the page, add SANs if needed. If the RFC 2818 compliance
option has been enabled for the template (seeCertificate Template Operations on page 333), the first SAN
field will automatically populate with a DNS SAN matching the CN when you enter the CN be set to Read Only.
Click the Add button to add SAN fields.
l DNS name
l IP version 4 address
l IP version 6 address
l User Prinicpal Name
l Email
This field is not required unless the RFC 2818 compliance option on the CA has been configured.
7. If template-specific enrollment fields have been defined (see Enrollment Fields Tab on page 341) for the
selected template, the fields will display in the Additional Enrollment Fields section. Additional enrollment
fields have a data type of either string or multiple choice. String fields will appear as a text box; Multiple
choice fields will appear as a dropdown. All additional enrollment fields are required.
8. In the Certificate Metadata section of the page, populate any defined certificate metadata fields (see Certi-
ficate Metadata on page 611 and Certificate Template Operations on page 333) as appropriate for the
template. These fields may be required or optional depending on your metadata configuration. Required
fields will be marked with *Required next to the field label. Any completed values will be associated with the
certificate once it has been imported into Keyfactor Command. The order in which the metadata fields appear
9. If enabled, in the Password section of the page, check the Use Custom Password box and enter and confirm a
custom password to use in securing the PFX file. This section only appears if the Allow Custom Password applic-
ation setting is set to True. For more information, see Application Settings: Enrollment Tab on page 559.
10. In the Certificate Delivery Format section of the page, choose a format for the downloaded certificate—PFX or
zipped PEM—or, if you have any certificate stores defined, opt to install the certificate directly into one or
more certificate stores on enrollment. If you choose to do this, the certificate will not be available for down-
load on this page. The Install Into Certificate Stores option does not appear if no certificate stores have been
defined.
To install a certificate into a certificate store, select the Install into Certificate Stores radio button and then
click the Include Certificate Stores button. This will cause the Select Certificate Store Locations dialog to
appear. Make your certificate store selections in this dialog as described in Select Certificate Store Locations,
below, and click Include and Close. You will then see some additional fields on the enrollment page. Populate
these as per Add to Certificate Stores and Information Required for Certificate Stores, below.
Note: Only compatible certificate stores and only stores in containers to which you have permissions
are shown on the grid.
Tip: You may change the search results by using the search fields at the top of the dialog. All of the
Keyfactor Command grid search features are available to assist your search. See Using the Certificate
Store Search Feature on page 358 for more information on the available search fields. The default
search criteria is AgentAvailable is equal to True.
l Include
Click this to add the selected certificate store(s) to your certificate selection and leave the search
dialog open for further searches.
l Include and Close
Click this to close the search dialog and add the selected certificate store(s) to your certificate selec-
tion, which will then be displayed and ready for updates as per the instructions in Add to Certificate
Stores.
l Close
Click this to cancel the operation and return to the main page with no certificate stores selected.
Above this section are global options that apply to the add job as a whole:
Note: The tab heading of the certificate location will display an alert if an alias is required for
the location.
l Remove
Click Remove at the top of the grid to remove the selected certificate store from the page. The certi-
ficate will not be added to the store.
You may return to the Select Certificate Store Locations dialog by clicking Include Certificate Stores above the
grid. The current selections will be retained.
F5 SSL Profiles REST Alias required for new additions and overwrites
File Transfer Protocol Alias required for new additions and overwrites
With this type of store, you have the option to overwrite an existing certificate with the current certificate.
If you choose this option, you will need to provide the alias of the certificate you wish to overwrite. The
alias is the internal ID assigned by Amazon (the Amazon resource number or ARN). Provide the entire
contents of the Alias/IP from this field when entering an alias for overwrite. For example:
arn:aws:acm:us-west-2:220531701668:certificate/88e5dcfb-a70b-4636-a8ab-e85e8ad88780
F5 CA Bundles REST
With this type of store, you will be prompted to add an alias for the certificate. The alias is the file name
used to store the file in the device file system, minus the extension (e.g. use alias MyFile for a file named
[Link]). Aliases should be entered without spaces. Note that certificate names are case sensitive. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias of the certificate you wish to overwrite.
F5 SSL Profile
With this type of store, you will be prompted to add an alias for the certificate. The alias is the file name
used to store the file in the device file system, minus the extension (e.g. use alias MyFile for a file named
[Link]). Aliases should be entered without spaces. Note that certificate names are case sensitive. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias of the certificate you wish to overwrite.
With this type of store, you will be prompted to add an alias for the certificate. The alias is the file name
used to store the file in the device file system, minus the extension (e.g. use alias MyFile for a file named
[Link]). Aliases should be entered without spaces. Note that certificate names are case sensitive. You
have the option to overwrite an existing certificate with the current certificate. If you choose this option,
you will need to provide the alias of the certificate you wish to overwrite.
F5 Web Server
With this type of store, you have the option to overwrite an existing certificate with the current certificate.
If you choose this option, you will need to provide the alias of the certificate you wish to overwrite. The
alias for F5 device certificates is typically "server".
With this type of store, you have the option to overwrite an existing certificate with the current certificate.
If you choose this option, you will need to provide the alias of the certificate you wish to overwrite. The
alias for F5 device certificates is typically "server".
With this type of store, you have the option to overwrite an existing certificate with the current certificate.
If you choose this option, you will need to provide the alias of the certificate you wish to overwrite. In that
case the new thumbprint should be passed in as the alias without any spaces between the octets (e.g.
81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12 12 2a 5a 4f 6b
33).
IIS Personal
With this type of store, you have the option to overwrite an existing certificate bound to an IIS web site with
the current certificate. If you choose this option, you will need to provide the alias of the certificate you
wish to overwrite. The alias is the thumbprint of the certificate bound to the IIS web site on the target. The
thumbprint may be entered with or without spaces between each octet (e.g. 81 00 9c 6e 54 65 ec f3 43 ba
55 ff 96 12 12 2a 5a 4f 6b 33 or 81009c6e5465ecf343ba55ff9612122a5a4f6b33).
Tip: Choosing overwrite for a certificate not bound to an IIS web site will have no effect. No certi-
ficate will be overwritten.
Tip: The overwrite functionality is not relevant for IIS Revoked and Trusted Root certificate stores
and should be ignored.
With this type of store, you will be prompted to add an alias for the certificate. This optional alias is stored
in the keystore associated with the certificate. You have the option to overwrite an existing certificate with
the current certificate. If you choose this option, you will need to provide the alias of the certificate you
wish to overwrite. Spaces are supported in the alias.
NetScaler
With this type of store, you will must add an Alias for the certificate. This serves as the file name used to
store the file in the file system, so provide it with an appropriate extension (e.g. [Link]). Aliases
should be entered without spaces. You must also enter the virtual server to associate the certificate with in
the NetscalerVserver field. For a certificate with a private key, you are associating the certificate as a
NetScaler Server Certificate. Entry of virtual server name is not case sensitive. You have the option to over-
write an existing certificate with the current certificate. If you choose this option, you will need to provide
the alias (full file name with extension) of the certificate you wish to overwrite.
PEM File
When you check the box for a PEM store, a new PFX Password section will appear on the page. The pass-
word you enter here is used to encrypt the private key of the certificate when stored in the PEM file or
separate password file. If you choose to uncheck the Use Custom Password box, the private key will be
encrypted with a random password which is not accessible to you. For most use cases, you will need a
known password for this purpose, so leave the Use Custom Password box checked and make note of the
password you use for this purpose. With this type of store, you have the option to overwrite an existing
certificate with the current certificate. If you choose this option, you will need to provide the alias of the
certificate you wish to overwrite. The alias is the thumbprint of the certificate without any spaces between
the octets (e.g. 81009c6e5465ecf343ba55ff9612122a5a4f6b33 not 81 00 9c 6e 54 65 ec f3 43 ba 55 ff 96 12
12 2a 5a 4f 6b 33).
Note: Keyfactor Command will automatically strip out any spaces between the octets in the alias
field, so it does not matter whether you enter the thumbprint with or without spaces.
11. At the bottom of the page, click Enroll to begin the certificate request process.
l If the request completes successfully, you'll see a success message and you'll be prompted by your
browser to begin download of your certificate unless you chose to install it directly into a certificate
store. If you’ve configured PFX enrollment to use Windows authentication (the default) and have not
selected the option to enter a custom password, you’ll see a one-time password that has been gener-
ated to secure the PFX file. You will need this password in order to open the PFX file.
Note: This option does not work when you authenticate to the Management Portal using
Kerberos because Keyfactor Command does not have access to your credentials to apply your
password to the PFX file.
l If the template you selected requires approval at the Keyfactor Command workflow level, you'll see a
message that your request is suspended and is awaiting one or more approvals. The user(s) responsible
for approving the request will be notified (if the workflow has been configured this way, see Adding or
Modifying a Workflow Definition on page 210). You can use the My Workflows Created by Me tab (see
Workflows Created by Me Operations on page 296) to check on the status of your request. If the
Management Portal feature has been configured to send notification alerts when a certificate is issued
following approval, you may receive an email message when your certificate is available for download.
The email message may contain a download link. See Issued Certificate Request Alerts on page 168.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The Certificate Requests grid has three tabs: Pending, External Validation and Denied/Failed. Select the appro-
priate tab to the view desired certificate requests. You may also filter the list shown by entering all or part of a
Requester Name and clicking Filter to change which requests are displayed.
l Pending
Typically a request in this state has been made using a template that requires manager approval at the CA
level before issuance. The request may be approved or denied from this tab of the certificate requests page or
though action on a Pending Request Alert (see Pending Certificate Request Alerts on page 159). When the
pending requests tab is selected, you will see Approve and Deny buttons activated at the top of the grid. By
clicking Details, you can view the certificate details and Approve or Deny the request from the Certificate
Request Details dialog. See Approving or Denying a Pending Certificate Request on page 149 for more inform-
ation.
l External Validation
Certificate requests in this state require approval outside of Keyfactor Command. Certificates appearing on
this tab generally are for requests made through one of the Keyfactor Command CA gateways using an EV
certificate type. The requests appear here for reference only and cannot be approved or denied. Once a
request has been approved using the cloud provider's EV approval process, the Keyfactor Command CA
gateway and Keyfactor Command will import the issued certificate on the next synchronization. The synced
certificate will move to the Certificate Search grid (see Certificate Search and Collections on page 17) and can
be viewed there.
l Denied/Failed
The denied/failed view shows requests that have been denied through Keyfactor Command as an action on
the certificate requests page Pending tab though action on a Pending Request Alert (see Pending Certificate
Request Alerts on page 159), or through a POST /Workflow/Certificates/Deny API request (see POST Workflow
Certificates Deny in the Keyfactor Web APIs Reference Guide), but does not include requests denied directly
from the CA outside of Keyfactor Command.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Alerts: Read
By default, the grid sorts in descending order with the most recent certs at the top. The grid can be sorted in
ascending or descending Submission Date order by clicking on the column header. he grid columns can be
arranged in any order desired by click-holding and dragging the header of the column you wish to move. The
column widths may also be adjusted by click-holding and dragging the line separating two column headers.
The Details button appears activated for all views. The details page includes the SANs, metadata, and certificate
stores scheduled for distribution for the request, in addition to the information shown on the main grid.
On the Pending tab of the certificates requests grid you can view the Details of a certificate request that required
manager approval at the CA level and choose to Approve or Deny it by clicking the action buttons at the top of the
grid. You can also Approve or Deny the request from the Certificate Request Details dialog. The approve and deny
operations can be done on multiple requests at once. To select multiple rows, click the checkbox for each row on
which you would like to perform an operation, then select an operation from the top of the grid. The right-click
menu only supports operations on one request at a time.
l When you deny a request, you will be prompted to enter a comment regarding the denial. These comments
can be delivered to the requester or other interested party using a denied request alert (see Denied Certificate
Request Alerts on page 175). When a certificate is denied, its status will change to failed and it will move from
the pending grid tab to the denied/failed grid tab. The denial comments will display in the Certificate Request
Details dialogue.
l When a request is approved on this page, the certificate will move to the Certificate Search grid (see Certi-
ficate Search and Collections on page 17) and can be viewed there. If you have configured issued certificate
alerts (see Issued Certificate Request Alerts on page 168), the requester or other interested party will be noti-
fied immediately on approval.
Note: Certificate requests that require approval at the Keyfactor Command workflow level (see Workflow
Definitions on page 205) do not appear on this page.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Alerts: Read
Certificate Requests: Manage
Certificate requests with a pending status have generally either been requested using certificate templates
requiring manager approval at the CA level or from a CA configured to send all requests to pending automatically.
Expiration alerts are based on certificate collections. Before you can work with expiration alerts, you need to have
created a certificate collection on which to base the alert (see Certificate Search and Collections on page 17).
Expiration Alert operations include: creating, editing or deleting an expiration alert, configuring an alert schedule,
copying alerts to create similar alerts for different recipients or collections, and testing alerts.
2. On the Expiration Alerts page, click Add from the top menu to create a new alert, or Edit from either the top
or right click menu, to modify an existing one.
3. In the Certificate Expiration Alert Settings dialog, select your Certificate Collection in the first dropdown.
4. In the Timeframe fields, select the warning timeframe by defining a number for either days, weeks, or months
for the alert. For example, if you select three weeks, the expiration alerts will be sent automatically three
weeks ahead of certificate expiration.
5. In the Display Name field, enter a name for the alert. This name appears in the list of expiration alerts in the
Management Portal.
6. In the Subject field, enter a subject line for the email message that will be delivered when the alert is
triggered. You can use substitutable special text in the subject line. Substitutable special text uses a variable in
the alert definition that is replaced by data from the certificate or certificate metadata at processing time. For
example, you can enter {cn} in the alert definition and each alert generated at processing time will contain the
specific common name of the given certificate instead of the variable {cn}.
7. In the Message box, enter the body of the email message that will be delivered when the alert is triggered.
You can use the Insert special text dropdown below the message window to add substitutable special text to
the message. The metadata that appears in the dropdown will depend upon the custom metadata you have
defined (see Certificate Metadata on page 611). Place your cursor where you would like the text to appear,
select the appropriate variable from the dropdown, and click Insert. Alternately, you can type the special text
variable enclosed in curly braces directly. In addition to the substitutable special text fields available in the
dropdown, you can also build your own substitutable fields for the principal and/or requester based on string
values from the user or computer Active Directory record. See Table 7: Substitutable Special Text for Expir-
ation Alerts. If desired, you can format the message body using HTML. For example, you could place certi-
ficate detail information into a table by replacing this text:
DN: {dn}
CN: {cn}
UPN: {upn}
Thumbprint: {thumbprint}
Serial Number: {serial}
With this HTML code:
<table>
<tr><td>DN:</td><td>{dn}</td></tr>
<tr><td>CN:</td><td>{cn}</td></tr>
<tr><td>UPN:</td><td>{upn}</td></tr>
<tr><td>Thumbprint:</td><td>{thumbprint}</td></tr>
<tr><td>Serial Number:</td><td>{serial}</td></tr>
</table>
8. Check the Use handler box if you would like the alert to trigger an event handler at processing time, select the
appropriate handler in the dropdown, and click the Configure button to configure the handler. See Using
Event Handlers on page 194 for more information on using event handlers.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in
the extension path or a subdirectory of it specified by the Extension Handler Path application setting.
By default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
9. In the Recipients section of the page, click Add to add a recipient to the alert. Each alert can have multiple
recipients. Recipients should be added one at a time. You can enter specific email addresses and/or use substi-
tutable special text to replace an email address variable with actual email addresses at processing time. The
Keyfactor Command sends SMS (text) messages by leveraging the email to text gateways that many major
mobile carriers provide. Check with your carrier for specific instructions. Keyfactor has tested that AT&T can
be addressed using 10-digit-number@[Link] (e.g. 4155551212@[Link]) and Verizon can be addressed
using 10-digit-number@[Link] (e.g. 2125551212@[Link]). T-Mobile can be addressed using 10-digit-
number@[Link] (e.g. 2065551212@[Link]), but functionality can be spotty. Reliability of alerting
via this method depends on the reliability of the carrier’s gateways.
2. On the Expiration Alerts page, highlight the row in the expiration alerts grid and click Copy at the top of the
grid, or from the right click menu.
3. The Certificate Expiration Alert Settings dialog will pop-up with the details from the selected alert. The display
name field will have "- Copy" tagged to the end of it to indicate it is a new alert. You may modify the alert as
needed and click Save to add the new alert, or Cancel to cancel the operation.
2. On the Expiration Alerts page, highlight the row in the Expiration Alerts grid and click Delete at the top of the
grid, or from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Expiration Alerts page, click the Configure button at the top of the Expiration Alerts page to configure
a monitoring execution schedule. This will apply for all the expiration alerts. This defines the frequency with
which alerts are sent. This type of alert is scheduled for daily delivery at a specified time.
2. On the Expiration Alerts page, either highlight one row in the expiration alert grid and click the Test button at
the top of the grid or click the Test All button at the top of the grid to test all the alerts.
3. In the Expiration Alert Test dialog in the Alert Parameters section, select a Start Date and End Date for
testing. You can use this option to simulate running the alerts a month from now instead of today, for
example, or put in a broad date range to be sure you pick up some expiring certificates for testing purposes.
4. In the Expiration Alert Test dialog in the Alert Parameters section, click the toggle button for Send Alerts if
you would like to deliver email messages as part of the test.
5. Click the Generate button to begin generating alerts. Depending on the number of certificates to process, this
may take a few seconds.
6. In the Expiration Alert Test dialog in the Alert Data and Alert Message sections, you can review the certificates
found to confirm that the expected certificates are appearing and that the substitutable special text is being
replaced as expected. Scroll through the alerts using the First, Previous, Next and Last buttons at the bottom
of the dialog. The number of alerts generated will display between the navigation buttons.
Note: You may see fewer alerts than you have certificates expiring in the selected time window for
the certificate collection if you enabled one of the options to ignore duplicate certificates on the certi-
ficate collection (see Saving Search Criteria as a Collection on page 36).
If you're using an event handler, the event handler is run and the handler actions taken (PowerShell script
run, event log message written, certificates renewed) when the test is run. This is true whether or not you
click the Send Alerts toggle.
Refer to the following table for a complete list of the substitutable special text that can be used to customize alert
messages.
Table 7: Substitutable Special Text for Expiration Alerts
{locations:certstore} Certificate Store The server and path location to the certificate store(s) where the
Locations certificate resides, if any, for certificates found in certificate stores
(e.g. [Link] – /opt/test/[Link])
{principal:mail} Principal’s Email Email address retrieved from Active Directory of the user whose
UPN is contained in the SAN field of the certificate, if present
{principal:givenname} Principal’s First First name retrieved from Active Directory of the user whose UPN is
Name contained in the SAN field of the certificate, if present
{principal:sn} Principal’s Last Last name retrieved from Active Directory of the user whose UPN is
Name contained in the SAN field of the certificate, if present
{principal:displayname} Principal’s Display name retrieved from Active Directory of the user whose UPN
Display Name is contained in the SAN field of the certificate, if present
{requester} Requester The user account that requested the certificate from the CA, in the
form "DOMAIN\username"
{requester:mail} Requester’s Email address retrieved from Active Directory of the user account
Email that requested the certificate from the CA, if present
{requester:givenname} Requester’s First First name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:sn} Requester’s Last Last name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:displayname} Requester’s Display name retrieved from Active Directory of the user account
Display Name that requested the certificate from the CA, if present
{careqid} Issuing CA / A string containing the Issuing CA name and the certificate’s Request
Request ID ID from the CA
{locations:ssl} SSL Locations The server location(s) where the certificate resides, if any, for certi-
ficates synchronized using SSL synchronization
{template} Template Name Name of the certificate template used to create the certificate
{templateshortname} Template Short Short name (often the name with no spaces) of the certificate
Name template used to create the certificate
{upn} User Principal The user principal name (UPN) contained in the subject alternative
Name name (SAN) field of the certificate, if present (e.g. "user-
name@[Link]")
{principal:field} String Value from Locates the object in Active Directory identified by the UPN in the
AD certificate (if present), and substitutes the contents of the attribute
named by "field". For example:
l {principal:department}
l {principal:sAMAccountName}
l {principal:manager}
l {principal:co}
{requester:field} String Value from Locates the object in Active Directory identified by the user or
AD computer account that requested the certificate from the CA, and
substitutes the contents of the attribute named by "field". For
example, for users:
l {requester:department}
l {requester:sAMAccountName}
For computers:
l {requester:operatingSystem}
l {requester:location}
l {requester:managedBy}
Important: These alerts are not used to provide email alerts or run event handlers for certificate requests
that require approval based on policies configured in Keyfactor Command workflows. Pending request
notification for requests handled by Keyfactor Command workflow are configured within the workflow
(see Adding or Modifying a Workflow Definition on page 210).
Pending certificate requests are generated, for the most part, based on templates that are configured to require
manager approval at the CA level.
The functionality of pending alerts for certificates requested within Keyfactor Command has been largely replaced
by the new Keyfactor Command workflow added in Keyfactor Command version 10 (see Workflow on page 204).
When alerting with Keyfactor Command workflow, templates do not need to be configured to require manager
approval. This is because the approval handling is fully controlled within Keyfactor Command. In fact, templates
generally should not be configured to require manager approval when using Keyfactor Command workflow, since
this would generally require approval both at the Keyfactor Command level and at the CA level, depending on
workflow configuration.
Pending certificate request alerts are designed to send an email notification to certificate approvers when a certi-
ficate request is received that requires approval based on policy on the CA. Pending request alerts can also be sent
to the original certificate requesters alerting them that their certificate requests have been sent.
Important: These alerts are not used to provide email alerts or run event handlers for certificate requests
that require approval based on policies configured in Keyfactor Command workflows. Pending request
notification for requests handled by Keyfactor Command workflow are configured within the workflow
(see Adding or Modifying a Workflow Definition on page 210).
Tip: In order to be used for PFX enrollment, a template that requires manager approval must be
configured with private key retention to allow the private key generated for the request to be down-
loaded with the certificate after the certificate request is approved (see Certificate Template Operations
on page 333).
2. On the Pending Certificate Request Alerts page, click Add from the top menu to create a new alert, or Edit
from either the top or right click menu, to modify an existing one.
3. In the Pending Request Alert Settings dialog, select your Certificate Template (or select All Templates) in the
first dropdown.
4. In the Display Name field, enter a name for the alert. This name appears in the pending request alerts grid in
the Management Portal.
5. In the Subject field, enter a subject line for the email message that will be delivered when the alert is
triggered. You can use substitutable special text in the subject line. Substitutable special text uses a variable in
the alert definition that is replaced by data from the certificate or certificate metadata at processing time. For
example, you can enter {rcn} in the alert definition and each alert generated at processing time will contain
the specific requested common name of the given certificate request instead of the variable {rcn}.
To add substitutable special text to the subject line; place your cursor where you would like the text to appear
on the subject line, select the appropriate variable from the Insert special text dropdown, and click Insert.
Alternately, type the special text variable enclosed in curly braces (e.g. {cn}).
CN: {rcn}
DN: {rdn}
SAN: {san}
With this HTML code:
<table>
<tr><td>CN:</td><td>{rcn}</td></tr>
<tr><td>DN:</td><td>{rdn}</td></tr>
<tr><td>SAN:</td><td>{san}</td></tr>
</table>
7. The Approval Link substitutable special text field is an important one to include in your alert intended for the
administrator responsible for approving or denying the certificate request. This provides a link in the email
message that the administrator can click to be taken to an approve/deny page for the certificate in the
Management Portal to either approve or deny the request. This certificate-specific approval page cannot be
directly accessed within the Management Portal (though you can approve certificate requests in the Manage-
ment Portal from the Certificate Requests page (see Certificate Requests on page 146).
8. Check the Use handler box if you would like the alert to trigger an event handler at processing time, select the
appropriate handler in the dropdown, and click the Configure button to configure the event handler. See
Using Event Handlers on page 194 for more information on using event handlers.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in
the extension path or a subdirectory of it specified by the Extension Handler Path application setting.
By default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
9. In the Recipients section of the page, click Add to add a recipient to the alert. Each alert can have multiple
recipients. Recipients should be added one at a time. You can enter specific email addresses and/or use substi-
tutable special text to replace an email address variable with actual email addresses at processing time. The
built-in variable can be selected in the Recipient dialog Use a variable from the certificate request dropdown.
Keyfactor Command sends SMS (text) messages by leveraging the email to text gateways that many major
mobile carriers provide. Check with your carrier for specific instructions. Keyfactor has tested that AT&T can
be addressed using 10-digit-number@[Link] (e.g. 4155551212@[Link]) and Verizon can be addressed
using 10-digit-number@[Link] (e.g. 2125551212@[Link]). T-Mobile can be addressed using 10-digit-
number@[Link] (e.g. 2065551212@[Link]), but functionality can be spotty. Reliability of alerting
via this method depends on the reliability of the carrier’s gateways.
2. On the Pending Certificate Request Alerts page, highlight the row in the alerts grid and click Copy at the top of
the grid, or from the right click menu.
3. The Pending Request Alert Settings dialog will pop-up with the details from the selected alert. The display
name field will have "- Copy" tagged to the end of it to indicate it is a new alert. You may modify the alert as
needed and click Save to add the new alert, or Cancel to cancel the operation.
2. On the Pending Certificate Request Alerts page, highlight the row in the alerts grid and click Delete at the top
of the grid, or from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Pending Certificate Request Alerts page, click the Configure button at the top of the Pending Request
Alerts page to open the Pending Certificate Request Alert Schedule dialog and configure a monitoring execu-
tion schedule. This defines the frequency with which alerts are sent. You can choose to schedule the alerts
for:
2. On the Pending Certificate Request Alerts page, either highlight one row in the pending request alerts grid
and click the Test button at the top of the grid or click the Test All button at the top of the grid to test all the
alerts.
3. In the Pending Alert Test dialog in the Alert Parameters section, click the toggle button for Send Alerts , if you
would like to deliver email messages as part of the test.
4. Click the Generate button to begin generating alerts. Depending on the number of certificate requests to
process, this may take a few seconds.
5. In the Pending Alert Test dialog in the Alert Data and Alert Message sections, you can review the certificate
requests found to confirm that the expected requests are appearing and that the substitutable special text is
being replaced as expected. Scroll the First, Previous, Next and Last buttons at the bottom of the dialog. The
number of alerts generated will display between the navigation buttons.
If you're using an event handler, the event handler is run and the handler actions taken (PowerShell script
run, event log message) when the test is run. This is true whether or not you click the Send Alerts toggle.
Refer to the following table for a complete list of the substitutable special text that can be used to customize alert
messages.
Table 8: Substitutable Special Text for Pending Request Alerts
{apprlink} Approval Link Link pointing to the certificate-specific approval page in the Manage-
ment Portal where the person responsible for approving the request
can go to approve or deny the request
{reqid} CMS Request Id The request ID for the certificate as stored in the Keyfactor
Command database. This is not the same as the request ID issued by
the CA.
Common Name
{requester} Requester The user account that requested the certificate from the CA, in the
form "DOMAIN\username"
{requester:mail} Requester’s Email address retrieved from Active Directory of the user account
Email that requested the certificate from the CA, if present
{requester:givenname} Requester’s First First name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:sn} Requester’s Last Last name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:displayname} Requester's Display name retrieved from Active Directory of the user account
Display Name that requested the certificate from the CA, if present
{careqid} Issuing CA / A string containing the Issuing CA name and the certificate’s Request
Request ID ID from the CA
{san} Subject Altern- Subject alternative name(s) contained in the certificate request.
ative Name There are four possible sources for the SANs that appear here:
l For CSR enrollment, the original SANs included in the
CSR.
l Any SANs added through the Keyfactor Command
Management Portal. For CSR enrollment, these take
the place of the SANs in the CSR if the
ATTRIBUTESUBJECTALTNAME2 option is enabled on
the CA. See CSR Enrollment on page 121.
l A SAN matching the CN added automatically during
enrollment as a result of setting the RFC 2818 compli-
ance flag in the CA configuration. See Adding or
Modifying a CA Record on page 310. For PFX enroll-
ment, the user has the option of editing this entry at
enrollment time; entry of something is required.
l A SAN matching the CN added automatically by the
Keyfactor Command policy module on the CA if the
Keyfactor Command RFC 2818 Policy Handler is
enabled, if one was not included in the CSR or added
manually. See Review the Policy Module Installation
on page 662.
{template} Template Name Name of the certificate template used to create the certificate
request
{templateshortname} Template Short Short name (often the name with no spaces) of the certificate
Name template used to create the certificate request
{requester:field} String Value from Locates the object in Active Directory identified by the user or
AD computer account that requested the certificate from the CA, and
substitutes the contents of the attribute named by "field". For
example, for users:
l {requester:department}
l {requester:sAMAccountName}
For computers:
l {requester:operatingSystem}
l {requester:location}
l {requester:managedBy}
Note: Because Issued Certificate Request Alerts are sent for any CAs synced to Keyfactor Command, it is
recommended that any CAs are synced first and then the Issued Certificate Request Alerts set up after-
ward to avoid a lot of unnecessary emails, upon syncing.
An issued certificate request alert is designed to send an email notification to a certificate requester when a certi-
ficate request he or she made using a certificate template that required manager approval is approved.
The issued alert handler runs immediately when an enrollment is approved within the Keyfactor Command plat-
form and also runs via a schedule to pick up any approvals done outside of Keyfactor Command.
2. On the Issued Certificate Request Alerts page, click Add from the top menu to create a new alert, or Edit
,from either the top or right click menu, to modify an existing one.
3. In the Issued Certificate Alert Settings dialog, select your Certificate Template (or select All Templates) in the
first dropdown.
4. In the Display Name field, enter a name for the alert. This name appears in the list of issued certificate alerts
in the Management Portal.
5. In the Subject field, enter a subject line for the email message that will be delivered when the alert is
triggered. You can use substitutable special text in the subject line. Substitutable special text uses a variable in
the alert definition that is replaced by data from the certificate or certificate metadata at processing time. For
example, you can enter {cn} in the alert definition and each alert generated will contain the specific common
name of the given certificate instead of the variable {cn}.
To add substitutable special text to the subject line; place your cursor where you would like the text to appear
on the subject line, select the appropriate variable from the Insert special text dropdown, and click Insert.
Alternately, type the special text variable enclosed in curly braces (e.g. {cn}).
<table>
<tr><td>Serial Number: </td><td>{serial}</td></tr>
<tr><td>Thumbprint: </td><td>{thumbprint}</td></tr>
<tr><td>SANs: </td><td>{san}</td></tr>
<tr><td>App Owner: </td><td>{metadata:AppOwnerFirstName} {metadata:Ap-
pOwnerLastName}</td></tr>
</table>
7. The Download Link substitutable special text field is an important one to include in your alert intended for
the requester of the certificate or the person responsible for installing the certificate. This provides a link in
the email message that the user can click to be taken to the Keyfactor Command Management Portal to down-
load the certificate.
b. In the Management Portal, browse to the My Certificates collection page and look in the
browser's address bar at the end of the URL for the number that has been assigned to the collec-
tion. For example, the following URL points to collection 9:
[Link]
=9
c. Grant the users who will receive the issued alerts Read permissions on the My Certificates collec-
tion (see Certificate Permissions on page 587).
d. In the message body of the issued alert, create a link that looks like the following, where
[Link] is the name of your Keyfactor Command server and ID is the correct
collection ID for your My Certificates collection (e.g. 9):
<a
href="https://
[Link]
/KeyfactorPortal/CertificateCollection/Edit?cid=ID&query=Thumbprint+-eq+%22
{thumbprint}%22">Download Now</a>
8. Check the Use handler box if you would like the alert to trigger an event handler at processing time, select the
appropriate handler in the dropdown, and click the Configure button to configure the event handler. See
Using Event Handlers on page 194 for more information on using event handlers.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in
the extension path or a subdirectory of it specified by the Extension Handler Path application setting.
By default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
9. In the Recipients section of the page, click Add to add a recipient to the alert. Each alert can have multiple
recipients. Recipients should be added one at a time. You can enter specific email addresses and/or use substi-
tutable special text to replace an email address variable with actual email addresses at processing time. There
are three built-in variables that can be selected in the Recipient dialog Use a variable from the certificate
request dropdown. In addition, you can type a special text variable enclosed in curly braces in the Email field
if you have, for example, a metadata field that contains an email address.
2. On the Issued Certificate Request Alerts page, highlight the row in the alerts grid and click Copy at the top of
the grid, or from the right click menu.
3. The Issued Certificate Alert Settings dialog will pop-up with the details from the selected alert. The display
name field will have "- Copy" tagged to the end of it to o indicate it is a new alert. You may modify the alert as
needed and click Save to add the new alert, or Cancel to cancel the operation.
2. On the Issued Certificate Request Alerts page, highlight the row in the alerts grid and click Delete at the top of
the grid, or from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Issued Certificate Request Alerts page, click the Configure button at the top of the Issued Certificate
Request Alerts page to configure a monitoring execution schedule. This defines the frequency with which
alerts are sent. You can choose to schedule the alerts either for daily delivery at a specified time or at inter-
vals of anywhere from every 1 minute to every 12 hours. A short interval is the most common configuration.
Refer to the following table for a complete list of the substitutable special text that can be used to customize alert
messages.
Table 9: Substitutable Special Text for Issued Certificate Alerts
{dnldlink} Download Link Link pointing to the Certificate Requests page in the Keyfactor
Command Management Portal where the certificate requester or
the person responsible for installing the certificate can go to down-
load the certificate. The certificate will be available only in a .cer/.crt
format (without the private key) unless private key retention has
been enabled on the template (see Certificate Templates on
page 332).
{principal:mail} Principal’s Email Email address retrieved from Active Directory of the user whose
UPN is contained in the SAN field of the certificate, if present
{principal:givenname} Principal’s First First name retrieved from Active Directory of the user whose UPN is
{principal:sn} Principal’s Last Last name retrieved from Active Directory of the user whose UPN is
Name contained in the SAN field of the certificate, if present
{principal:displayname} Principal’s Display name retrieved from Active Directory of the user whose UPN
Display Name is contained in the SAN field of the certificate, if present
{requester} Requester The user account that requested the certificate from the CA, in the
form "DOMAIN\username"
{requester:mail} Requester’s Email address retrieved from Active Directory of the user account
Email that requested the certificate from the CA, if present
{requester:givenname} Requester’s First First name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:sn} Requester’s Last Last name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:displayname} Requester’s Display name retrieved from Active Directory of the user account
Display Name that requested the certificate from the CA, if present
{careqid} Issuing CA / A string containing the Issuing CA name and the certificate’s Request
Request ID ID from the CA
{template} Template Name Name of the certificate template used to create the certificate
{templateshortname} Template Short Short name (often the name with no spaces) of the certificate
Name template used to create the certificate request
{upn} User Principal The user principal name (UPN) contained in the subject alternative
Name name (SAN) field of the certificate, if present (e.g. "user-
name@[Link]")
{requester:field} String Value from Locates the object in Active Directory identified by the user or
AD computer account that requested the certificate from the CA, and
substitutes the contents of the attribute named by "field". For
For computers:
l {requester:operatingSystem}
l {requester:location}
l {requester:managedBy}
Important: These alerts are not used to provide email alerts or run event handlers for certificate requests
that require approval based on policies configured in Keyfactor Command workflows. Denial notification
for requests handled by Keyfactor Command workflow are configured within the workflow (see Adding or
Modifying a Workflow Definition on page 210).
Unlike pending certificate request alerts that are sent on a configurable schedule, denied certificate request alerts
are sent immediately after the certificate request is denied through Keyfactor Command.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
A denied certificate request alert is designed to send an email notification to a certificate requester when a certi-
ficate request he or she made using a certificate template that required manager approval is denied. It can include
a comment from the administrator who denied the request indicating why the request was denied. From the
Denied Certificate Request Alert page you can add a new alert, edit an existing one, delete an alert and copy an
existing alert to form a template for a new alert.
2. On the Denied Certificate Requests Alerts page, click Add at the top of the grid to create a new alert, or click
Edit to modify an existing one (Edit is also available from the right click menu).
3. In the Denied Certificate Request Alert Settings dialog, select your Certificate Template (or select All
Templates) in the first dropdown.
4. In the Display Name field, enter a name for the alert. This name appears in the list of denied certificate
request alerts in the Management Portal.
5. In the Subject field, enter a subject line for the email message that will be delivered when the alert is
triggered. You can use substitutable special text in the subject line. Substitutable special text uses a variable in
the alert definition that is replaced by data from the certificate or certificate metadata at processing time. For
example, you can enter {rcn} in the alert definition and each alert generated will contain the specific
requested common name of the given request instead of the variable {rcn}.
6. In the Message box, enter the body of the email message that will be delivered when the alert is triggered.
You can use the Insert special text dropdown below the message window to add substitutable special text to
the message. The metadata that appears in the dropdown will depend upon the custom metadata you have
defined (see Certificate Metadata on page 611). Place your cursor where you would like the text to appear,
select the appropriate variable from the dropdown, and click Insert. Alternately, you can type the special text
variable enclosed in curly braces directly. In addition to the substitutable special text fields available in the
dropdown, you can also build your own substitutable fields for the requester based on string values from the
user or computer Active Directory record. See Table 10: Substitutable Special Text for Denied Certificate
Request Alerts. If desired, you can format the message body using HTML.
7. The Denial Comments substitutable special text field is an important one to include in your alert intended for
the requester of the certificate. This provides the comment the administrator made at the time he or she
denied the certificate request (see Certificate Requests on page 146).
8. Check the Use handler box if you would like the alert to trigger an event handler at processing time, select the
appropriate handler in the dropdown, and click the Configure button to configure the event handler. See
Event Handler Registration on page 636 for more information on using event handlers.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in
the extension path or a subdirectory of it specified by the Extension Handler Path application setting.
By default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
9. In the Recipients section of the page, click Add to add a recipient to the alert. Each alert can have multiple
recipients. Recipients should be added one at a time. You can enter specific email addresses and/or use substi-
tutable special text to replace an email address variable with actual email addresses at processing time. There
are three built-in variables that can be selected in the Recipient dialog Use a variable from the certificate
request dropdown. In addition, you can type a special text variable enclosed in curly braces in the Email field
if you have, for example, a metadata field that contains an email address.
Keyfactor Command sends SMS (text) messages by leveraging the email to text gateways that many major
mobile carriers provide. Check with your carrier for specific instructions. Keyfactor has tested that AT&T can
be addressed using 10-digit-number@[Link] (e.g. 4155551212@[Link]) and Verizon can be addressed
using 10-digit-number@[Link] (e.g. 2125551212@[Link]). T-Mobile can be addressed using 10-digit-
number@[Link] (e.g. 2065551212@[Link]), but functionality can be spotty. Reliability of alerting
via this method depends on the reliability of the carrier’s gateways.
2. On the Denied Certificate Requests Alerts page, highlight the row in the denied certificate request alerts grid
and click Copy at the top of the grid, or from the right click menu.
3. The Denied Certificate Request Alert Settings dialog will pop-up with the details from the selected alert. The
display name field will have "- Copy" tagged to the end of it to indicate it is a new alert. You may modify the
alert as needed and click Save to add the new alert, or Cancel to cancel the operation.
2. On the Denied Certificate Requests Alerts page, highlight the row in the denied certificate request alerts grid
and click Delete at the top of the grid, or from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Refer to the following table for a complete list of the substitutable special text that can be used to customize alert
messages.
Table 10: Substitutable Special Text for Denied Certificate Request Alerts
{requester:mail} Requester’s Email address retrieved from Active Directory of the user account
Email that requested the certificate from the CA, if present
{requester:givenname} Requester’s First First name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:sn} Requester’s Last Last name retrieved from Active Directory of the user account that
Name requested the certificate from the CA, if present
{requester:displayname} Requester's Display name retrieved from Active Directory of the user account
Display Name that requested the certificate from the CA, if present
{careqid} Issuing CA / A string containing the Issuing CA name and the certificate’s Request
Request ID ID from the CA
{san} Subject Altern- Subject alternative name(s) contained in the certificate request
ative Name
{template} Template Name Name of the certificate template used to create the certificate
request
{templateshortname} Template Short Short name (often the name with no spaces) of the certificate
Name template used to create the certificate request
{requester:field} String Value from Locates the object in Active Directory identified by the user or
AD computer account that requested the certificate from the CA, and
substitutes the contents of the attribute named by "field". For
example, for users:
l {requester:department}
l {requester:sAMAccountName}
For computers:
l {requester:operatingSystem}
l {requester:location}
The alerts can be customized to provide detailed information about the keys along with, for example, instructions
to users on how to enroll for a replacement key.
Key Rotation alert operations include: creating, editing or deleting a key rotation alert, configuring an alert
schedule, copying alerts to create similar alerts for different recipients or collections, and testing alerts.
2. On the Key Rotation Alerts page, click Add from the top menu to create a new alert, or Edit ,from either the
top or right click menu, to modify an existing one.
3. In the Key Rotation Alert Settings dialog, select a Timeframe for the alert by choosing the number of days,
weeks, or months to define the alert period.
4. In the Key Rotation Alert Settings dialog, enter a Display Name for the alert. This name appears in the list of
key rotation alerts in the Management Portal.
5. In the Subject field, enter a subject line for the email message that will be delivered when the alert is
triggered. You can use substitutable special text in the subject line. Substitutable special text uses a variable in
the alert definition that is replaced by data from the key record at processing time. For example, you can
enter {fingerprint} in the alert definition and each alert generated at processing time will contain the specific
fingerprint of the given key instead of the variable {fingerprint}. To add substitutable special text to the
subject line, type the special text variable enclosed in curly braces (e.g. {fingerprint}).
6. In the Message box, enter the body of the email message that will be delivered when the alert is triggered.
You can use the Insert special text dropdown below the message window to add substitutable special text to
the message. Place your cursor where you would like the text to appear, select the appropriate variable from
the dropdown, and click Insert. Alternately, you can type the special text variable enclosed in curly braces
directly. If desired, you can format the message body using HTML. For example, you could place the key detail
information into a table by replacing this text:
Fingerprint: {fingerprint}
<table>
<tr><td>Fingerprint:</td><td>{fingerprint}</td></tr>
<tr><td>Username:</td><td>{username}</td></tr>
<tr><td>Comment:</td><td>{comment}</td></tr>
</table>
7. Check the Use handler box if you would like the alert to trigger an event handler at processing time, select the
appropriate handler in the dropdown, and click the Configure button to configure the event handler. See
Using Event Handlers on page 194 for more information on using event handlers.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in
the extension path or a subdirectory of it specified by the Extension Handler Path application setting.
By default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
2. On the Key Rotation Alerts page, highlight the row in the alerts grid and click Copy at the top of the grid, or
from the right click menu.
3. The Key Rotation Alert Settings dialog will pop-up with the details from the selected alert. The display name
field will have "- Copy" tagged to the end of it to indicate it is a new alert. You may modify the alert as needed
and click Save to add the new alert, or Cancel to cancel the operation.
2. On the Key Rotation Alerts page, highlight the row in the alerts grid and click Delete at the top of the grid, or
from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Key Rotation Alerts page, click the Configure button at the top of the Key Rotation Alerts page to
configure an alert execution schedule. This defines the frequency with which key rotation alerts are sent. This
type of alert is scheduled for daily delivery at a specified time.
2. On the Key Rotation Alerts page, either highlight one row in the expiration alert grid and click the Test button
at the top of the grid or click the Test All button at the top of the grid to test all the alerts.
3. In the Key Rotation Alert Viewer dialog in the Alert Parameters section, select a Start Date and End Date for
testing. You can use this option to simulate running the alerts a month from now instead of today, for
example, or put in a broad date range to be sure you pick up some expiring certificates for testing purposes.
4. In the Key Rotation Alert Viewer dialog in the Alert Parameters section, click the toggle button for Send Alerts
if you would like to deliver email messages as part of the test.
5. Click the Generate button to begin generating alerts. Depending on the number of keys to process, this may
take a few seconds.
6. In the Key Rotation Alert Viewer dialog in the Alert Data and Alert Message sections, you can review the keys
found to confirm that the expected keys are appearing and that the substitutable special text is being
replaced as expected. Scroll through the alerts using the First, Previous, Next and Last buttons at the bottom
of the dialog. The number of alerts generated will display between the navigation buttons.
If you're using an event handler, the event handler is run and the handler actions taken (PowerShell script
run, event log message written) when the test is run. This is true whether or not you click the Send Alerts
toggle.
Refer to the following table for a complete list of the substitutable special text that can be used to customize alert
messages.
Table 11: Substitutable Special Text for Key Rotation Alerts
{comment} Comment in The user-defined descriptive comment, if any, on the key. Although entry of an
Key email address in the comment field of an SSH key is traditional, this is not a
required format. The comment may can contain any characters supported for
string fields, including spaces and most punctuation marks.
{fingerprint} Fingerprint of The fingerprint of the public key. Each SSH public key has a single cryptographic
Key fingerprint that can be used to uniquely identify the key.
{keylength} Key Length The key length for the key. The key length depends on the key type selected.
Keyfactor Command supports 256 bits for Ed25519 and ECDSA and 2048 or 4096
bits for RSA.
{keytype} Key Type A number of cryptographic algorithms can be used to generate SSH keys.
Keyfactor Command supports RSA, Ed25519, and ECDSA. RSA keys are more
universally supported, and this is the default key type when generating a new
key.
{serverlogons} Number of The number of Linux logons associated with the key, if any, granting the holder of
Server Logons the private key pair logon access on the server where the Linux logon resides.
for Key
{username} Username The username of the user or service account associated with the key. For a user,
associated the username is in the form of an Active Directory account (e.g. DOMAIN\user-
with Key name). For a service account, the username is made up of the username and
client hostname entered when the service account key was created (e.g. myap-
p@appsrvr75).
OCSP monitoring and notification provides only information on whether or not the OCSP endpoint is responsive.
Expiration is not relevant for OSCP.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
From the Revocation Monitoring page on the Keyfactor Command Management Portal you can view and edit
existing location endpoints, add new locations, delete an endpoint, test revocation monitoring location alert email
notifications, and monitor location endpoint responsiveness.
2. On the Revocation Monitoring page, click Add to create a new monitoring location, or Edit to modify an
existing one, and then populate the Revocation Endpoint Settings dialog appropriately for the type of revoc-
ation endpoint using the information below:
c. In the Location field, type a URL for the CRL location. This can be either an HTTP location or an LDAP loca-
tion. Be sure to monitor the CRL locations that are in use by applications in your environment—if you're
d. In the Email Reminder section of the page, check the Warn box and set the number of days ahead of
expiration that email reminders should begin to be sent.
e. In the Show on Dashboard section of the page, check the Warn box and set the number of weeks, days
or hours ahead of expiration for warning flags to begin appearing on the Management Portal dashboard
(see Dashboard: Revocation Monitoring on page 14).
f. In the Monitoring Execution Schedule section of the page, configure a monitoring execution schedule.
This defines the frequency with which locations are checked and alerts sent. You can choose to schedule
the alert for this location either for daily delivery at a specified time or at intervals of anywhere from
every 1 minute to every 12 hours. A daily schedule is the most common configuration. Schedules are
configured separately for each endpoint.
g. In the Recipients section of the page, add email addresses of the users and/or groups who should receive
email notifications when CRLs are approaching expiration or are unreachable. Recipient lists are
configured separately for each endpoint.
Keyfactor Command sends SMS (text) messages by leveraging the email to text gateways that many
major mobile carriers provide. Check with your carrier for specific instructions. Keyfactor has tested that
AT&T can be addressed using 10-digit-number@[Link] (e.g. 4155551212@[Link]) and Verizon
can be addressed using 10-digit-number@[Link] (e.g. 2125551212@[Link]). T-Mobile can be
addressed using 10-digit-number@[Link] (e.g. 2065551212@[Link]), but functionality can
be spotty. Reliability of alerting via this method depends on the reliability of the carrier's gateways.
c. Keyfactor Command offers two options to retrieve endpoint information for OCSP:
l Resolve it based on a certificate authority defined in Keyfactor Command (see Adding or Modi-
fying a CA Record on page 310). This option is only available for Microsoft CAs in the forest in
which Keyfactor Command is installed or EJBCA CAs installed on the same network as the
Keyfactor Command server. When you use this option, a request is sent for information from the
Keyfactor Command server to the CA. For Microsoft CAs, this a DCOM request. For EJBCA CAs, this
is a REST request.
l Import it from a certificate issued by the certificate authority to be monitored. This can be any
certificate issued by the CA and containing the OCSP information. The certificate needs to be a
base-64 encoded PEM file (.cer/.crt).
In the CA Info field, select the CMS radio button to automatically retrieve the CA certificate information
from Keyfactor Command or select the File radio button to upload a file with the CA certificate inform-
ation.
l If you select CMS, pick the desired CA from the CA dropdown and then click the Resolve button to
retrieve the certificate authority information.
l If you select File, click the Upload button, browse to locate the file containing a certificate issued
by the desired CA and open it.
With either method of retrieving the information, you should see the full certificate authority
name and authority key ID populate below the CA dropdown. The serial number field will popu-
late for uploaded files.
d. In the Location section of the page, enter the full URL to the OCSP responder servicing this certificate
authority's CRL.
e. In the Show on Dashboard section of the page, check the box to include this OCSP location on the
Management Portal dashboard (see Dashboard: Revocation Monitoring on page 14).
f. In the Monitoring Execution Schedule section of the page, configure a monitoring execution schedule.
This defines the frequency with which locations are checked and alerts sent. You can choose to schedule
the alert for this location either for daily delivery at a specified time or at intervals of anywhere from
every 1 minute to every 12 hours. A daily schedule is the most common configuration. Schedules are
configured separately for each endpoint.
g. In the Recipients section of the page, add email addresses of the users and/or groups who should receive
email notifications when OCSP endpoints are unreachable. Recipient lists are configured separately for
each endpoint.
3. Click Save to save the endpoint location, or the changes. Click Cancel to cancel.
2. On the Revocation Monitoring page, highlight the row in the grid and click Delete at the top of the grid, or
from the right click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Revocation Monitoring page, click the Test All button at the top of the grid, or select a specific location
from the grid and click Test from the top of the grid or the right click menu.
3. In the Revocation Monitoring Test dialog in the Alert Parameters section, select an End Date for testing. You
can use this option to simulate running the alerts a month from now instead of today, for example, or put in a
date far in the future to be sure you pick up some expiring CRLs for testing purposes.
4. In the Revocation Monitoring Test dialog in the Alert Parameters section, click the toggle button for Send
Alerts if you would like to deliver email messages as part of the test.
5. Click the Generate button to begin generating alerts. Depending on the number of endpoints to process, this
may take a few seconds.
6. In the Revocation Monitoring Test dialog in the Alert Data and Alert Message sections, you can review the
alerts to confirm that the expected CRLs and OCSP endpoints are appearing. Scroll through the alerts using
the First, Previous, Next and Last buttons at the bottom of the dialog. The number of alerts generated will
display between the navigation buttons.
Tip: Alerts are generated when a CRL is expired or in the warning period as defined by the number of
days configured in the Email Reminder setting. For example, if you had a CRL that expired on June 30 and
configured the email reminder period to 15 days before expiration, the warning status would begin for
that CRL on June 15 and CRL alerts would be generated. A warning will also appear for any CRL or OCSP
locations that produced an error or couldn’t be resolved.
When alerts are tested or sent on a schedule, corresponding message are also written to the system event
log on the server where the Keyfactor Command service runs. For testing, this is true whether or not you
click the Send Alerts toggle. Information is logged to the event log for both locations that are in a good
state (e.g. CRL resolves and is not in a warning or expired state or response from OCSP) and locations that
are in an error state (e.g. CRL resolves but is in the warning period or expired, CRL is expired, CRL or
OCSP location does not resolve).
For specific Windows event ID information, see Keyfactor Command Windows Event IDs on page 692.
Tip: Powershell handlers will run in different security contexts depending on where they were triggered.
If you trigger them by the Portal/API they will use the App Pool account. If you trigger them via the
schedule in the Keyfactor Command mangement portal they will use the Service account. Keep this in
mind if your configuration of the PowerShell script is going to use Windows Auth to reach back into
Keyfactor Command,or elsewhere.
To add a PowerShell handler to an alert, the alert must first be created and saved. See Alerts on page 150 for more
information on creating various alerts. The example below uses an expiration alert, but the process applies to all
types of alters.
1. Select the alert to which you want to add the event handler from the respective alert grid.
2. Check the Use handler box and select the PowerShell event handler in the dropdown.
Tip: If the expected event handler types do not appear, confirm that they exist and are enabled on
the Event Handler Registration page (see Event Handler Registration on page 636).
3. Click the Configure button in the Use handler section of the page to open the Configure Event Handler dialog
and then click Add.
4. In the Configure Event Handler Parameter dialog, select PowerShell Script Name as the parameter Type, and
enter the filename and optional relative path to the PowerShell script, located in the extensions directory on
the Keyfactor Command server, in the Value field.
Note: As of version 9.0 of Keyfactor Command, PowerShell scripts for alert handlers need to be in the
extension path or a subdirectory of it specified by the Extension Handler Path application setting. By
default this is C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\ (see Application Settings: Console Tab on page 554). For example,
create a directory called Scripts under the ExtensionLibrary directory and then reference your Power-
Shell script as Scripts\MyPowerShell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
6. If desired, you can pass one or more parameters into your PowerShell script—either fixed text (type Static
Value) or substitutable special text (type Special Text). To pass in fixed text, enter a name for the parameter
(e.g. "MyName"), select the Static Value radio button, and type your fixed text in the Value field. To pass in
special text, enter a name for the parameter (e.g. "MyOtherName"), select the Special Text radio button, and
select your desired substitutable special text field in the Value dropdown. When referring to these parameters
in your PowerShell script, refer to them using a "$context" hashtable parameter passed to the script, whose
keys are the names entered in the event handler configuration. See Figure 138: PowerShell Event Handler
with Multiple Parameters. For example, for the parameter named "cn" in the event handler configuration, you
might use this line in a PowerShell script:
In addition to the parameters you opt to pass in the event handler configuration, there are several built-in
parameters that are always passed. These can be found in Table 12: PowerShell Event Handler Special Fields.
You can reference these in your PowerShell script without having to specify them in your event handler config-
uration.
7. Click Close to return to the alert configuration and then save the alert.
Set-ExecutionPolicy RemoteSigned
9. Test the alert as described in Expiration Alert Operations on page 150. It is not necessary to check the Send
Alerts box during the test to cause the PowerShell script to run.
Table 12: PowerShell Event Handler Special Fields
SendEmail All If true, email messages are sent in addition to processing of the PowerShell script.
Recipient All The recipient of the alert. Alerts configured with more than one recipient will execute
the PowerShell script multiple times—once for each recipient and each certificate or
request.
First Recipient Expiration If true and the alert has multiple recipients configured, this output is for the first recip-
Only ient for the given certificate. Subsequent output for the same certificate and different
recipients will show false for this value.
To create a PowerShell script that works with the event handlers, there are just a few things to keep in mind:
l You need to declare the $context hashtable at the start of the script with this line:
[hashtable]$context
l Parameters you want to use in your script are referenced using the $context syntax as follows (where
"MyName" is the name you gave to the parameter in the event handler configuration or the name of the built-
in parameter from Table 12: PowerShell Event Handler Special Fields):
$context["MyName"]
Here is a simple script that takes as inputs all the parameters you defined in your event handler configuration as
well as the built-in parameters and outputs them to a file along with a comment and the date, with configuration
to skip output of a defined list of the built-in parameters:
# This is a sample script that can be set up as a Keyfactor Command event handler. The script will
output
# data passed to the handler to a text file. This script will be called for the combination of each
# certificate involved in the corresponding event and each configured email recipient.
# The following fields are provided for communication with the handler:
# Subject - Email subject line that will be sent if the alert has the email subject
configured
# Message - Email body that will be sent if the alert has the email message body configured
# Recipient - Email address where the alert will be sent if the alert has this configured
# Certificate - For internal use only
# SendEmail - Boolean (true/false) indicating if Keyfactor Command is planning on sending an
email
# for this certificate / recipient combination
# FirstRecipient - Boolean (true/false) indicating if this extension invocation is the first recip-
ient
# for a given certificate
# This can be used in the event it is desired to execute some logic once per certi-
ficate
# This field applies only to expiration alerts
[hashtable]$context
# Four of the built-in context fields can be modified and used as output fields to change how (and
if)
# Keyfactor Command will send emails related to the alert being processed:
# Subject - If an email is produced this new value will be used to create the email subject.
# Message - If an email is produced this new value will be used to create the email message body.
# Recipient - If an email is produced this new value will be used as the email recipient.
# SendEmail - This value can be used to override whether an email will be sent.
# A value of "true" will cause an email to be sent, while "false" will cause the associated email
# to not be sent.
# Examples:
# $context["Subject"] = "new subject line"
# $context["Message"] = "new message line"
# $context["Recipient"] = "newRecipient@[Link]"
# $context["SendEmail"] = "false"
# Typically output values would be used with some form of logic. As an example, to change the recip-
ient
# of the email based on a metadata field provided to the handler, uncomment the following, provide
# appropriate values (including a metadata field that's being passed in to the handler in place of
# "SampleMetadataField"), and remove Recipient from ignoreKeys:
# This example will output to a file the $context values for the user configured fields and skip the
system
# supplied ones. To output the system supplied fields, remove the desired items from the $ignoreKeys
array.
$ignoreKeys = "Subject", "Message", "SendEmail", "Certificate", "FirstRecipient", "Recipient"
# Add a comment and the date at the start of each output block
Add-Content -Path $outputFile -Value "Starting Output: $(Get-Date -format G)"
Tip: A sample PowerShell script is installed with Keyfactor Command in the ExtensionLibrary directory.
1. Edit an existing alert or create a new one. An alert cannot both send emails and write to the event log, so if
you need to do both of these for the same alert configuration, you will need two separate alerts.
2. Configure the message body as you would for an email message, including substitutable special text. The text
from the message body is written to the event log. Note that HTML is not supported in the message body for
event logging. The contents of the Subject line do not appear in the event log.
3. Check the Use handler box and select the logger event handler in the dropdown.
Tip: If the expected event handler types do not appear, confirm that they exist and are enabled on
the Event Handler Registration page (see Event Handler Registration on page 636).
4. Click the Configure button in the Use handler section of the page to open the Configure Event Handler dialog
and then click Add.
5. In the Configure Event Handler Parameter dialog, select Logging Target Machine as the parameter Type, and
enter the fully qualified domain name of the server to which you wish to send the event log message in the
Value field.
By default, the service accounts under which the Keyfactor Command application pool and Keyfactor
Command service run have sufficient permissions to write to the event log on the Keyfactor Command server.
If your target computer is not the Keyfactor Command server, you will need to grant appropriate permissions
on that computer to one or both of these service accounts in order to write to the event log on that
computer. When alerts containing event handlers are run in test most, the application pool service account is
used. When alerts containing event handlers are run as a scheduled task, the Keyfactor Command service
account is used. Local administrator permissions are needed initially to allow the service account to create the
If you wish to use a DNS alias for the target machine value, you may need to disable loopback checking on the
Keyfactor Command server and reference the target machine. See Disable Loopback Checking on page 707.
6. Click Save to save and then Close to return to the alert configuration. No other parameters are needed (or
functional) for an event logging event handler.
7. Test the alert as described in Expiration Alerts on page 150. It is not necessary to check the Send Alerts box
during the test. Alerts are written to the Application event log.
Important: Renewal alerts will not function until you configure security permissions for the renewal
handler as per the Configure Renewal Handler Permission section in the Keyfactor Command Server Install-
ation Guide.
1. Edit an existing expiration alert or create a new one. See Expiration Alert Operations on page 150.
2. Check the Use handler box and select the renewal event handler in the dropdown.
Tip: If the expected event handler types do not appear, confirm that they exist and are enabled on
the Event Handler Registration page (see Event Handler Registration on page 636).
3. Click the Configure button in the Use handler section of the page to open the Configure Event Handler dialog
and then click Add.
4. In the Configure Event Handler Parameter dialog, select Renewal URL as the parameter Type, and enter the
URL to the Keyfactor Command server hosting the Keyfactor API component followed by /KeyfactorApi in the
Value field. Click Save to save your first parameter.
5. If desired, you can configure a renewal template and CA for use with the renewal event handler. These
settings are optional. If you don’t set these, the renewal will be done using the template and CA originally
used on the certificate. If you set only one of these—for example, the template—it will use the setting from
the renewal event handler for that and retrieve the other—for example, the CA—from the certificate.
6. Test the alert as described in Expiration Alerts on page 150. It is not necessary to check the Send Alerts box
during the test.
Important: Renewals are processed and new certificates are issued during expiration alert tests with
associated renewal handlers.
3.2 Workflow
The options available in the Workflow section of the Management Portal are:
l Workflow Definitions
Create workflows that manage certificate enrollments, renewals, or revocations end-to-end to require
approvals, send emails, run PowerShell scripts and/or execute API requests as part of the process.
When a user begins one of the types of actions managed with workflow in Keyfactor Command—certificate enroll-
ment, renewals or revocation—on the usual Management Portal page (e.g. PFX Enrollment) or using the Keyfactor
API, the workflow kicks in behind the scenes and executes however many steps have been configured in the work-
flow definition to bring the action to the appropriate conclusion along the desired path. In the current version of
workflows, the following customizable workflow steps are supported:
l Send Email
Send an email message. This is a separate email message from those typically sent as part of a Require
Approval step. You might send an email message as part of an enrollment request to notify approvers that a
new request needs approval. The email messages can be customized to provide detailed information about,
for example, the certificate request.
l Set Variable Data
Run PowerShell commands within the confines of the workflow to populate variables with information to pass
back to the workflow. The PowerShell script contents are embedded within the step. This step does not call
out to an external file.
l Use Custom PowerShell
Run a PowerShell script. The script contents are in a file placed in the ExtensionLibrary\Workflow directory or
a subdirectory of it on the Keyfactor Command server under the install directory for Keyfactor Command. By
default, this is:
C:\Program Files\Keyfactor\Keyfactor Platform\ExtensionLibrary\Workflow
The file must have an extension of .ps1. A sample PowerShell script is provided in the Workflow directory
(CustomPowershellExample.ps1).
l Require Approval
Require approval for a workflow step before the step can be completed. The require approval step applies to
certificate enrollments, renewals, and revocations and can require approval from just one approver or
multiple approvers. The workflow will be suspended at this point until the correct number of approvals from
users with the correct security roles is received or until one deny is received before continuing to the next
step. As part of this step, an email message is sent indicating whether the step was approved or denied—
Important: Workflows are not supported with CA delegation when they contain steps that require
approval. For more information, see the CA configuration Authorization Methods Tab on page 321.
Tip: The workflow builder does not include a step to send a notification to the requester of a certi-
ficate once the certificate is issued by the CA (as opposed to approved in Keyfactor Command). Use
the issued alerts for this (see Issued Request Alert Operations on page 168 ).
Important: This step applies to Microsoft CAs only. If this step is added to workflow for requests
directed to an EJBCA CA, it will fail on enrollment. Note that EJBCA supports submission of updated
SAN or subject details as part of standard functionality.
In addition to these customizable types of steps, there are built-in steps that you won't see unless you're using the
Keyfactor API to view or edit the workflows (see Workflow Definitions in the Keyfactor Web APIs Reference Guide).
At the end of their respective workflow types there are an enroll step and a revoke step to initiate the actual enroll-
ment or revocation if the workflow reaches the end without being denied or failing. These built-in steps cannot be
modified or moved to a different location in the workflow. There are also NOOP steps that indicate the start and
end of the workflow for housekeeping purposes.
Note: All certificate enrollment, renewal, and revocation requests go through workflow even if you
haven't created any workflow steps or added any custom workflow definitions. In the absence of custom-
ization, the global workflow definitions are used.
When requiring approval using workflow definitions in Keyfactor Command, templates do not need to be
configured to require manager approval at the CA level in the certificate template. This is because the approval
handling is fully controlled within Keyfactor Command. In fact, templates generally should not be configured to
require CA manager approval when using Keyfactor Command workflow, since this would generally require
approval both at the Keyfactor Command level and at the CA level.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the name of the work- The workflow has been published yes/no.
flow definition.
Workflow Type
Id
The type of workflow (enrollment or revocation).
The Keyfactor Command reference GUID for the workflow
definition.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid for several of the columns. Click
the column header again to reverse the sort order. The grid columns can be arranged in any order desired by click-
holding and dragging the header of the column you wish to move. The column widths may be adjusted by click-
holding and dragging the line separating two column headers.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
The workflow builder in Keyfactor Command is a powerful feature that allows you to manage certificate enroll-
ments, renewals, and revocations end-to-end. Out of the box, there are workflow builder steps to require
approvals for certificate enrollment and revocation requests, send email notifications, run PowerShell scripts, and
run API requests as part of the request flow.
Tip: There are two built-in workflow definitions—Global Enrollment Workflow and Global Revocation
Workflow—that are used to manage requests which are not otherwise handled by custom workflows.
These workflows can be configured with steps (see Adding or Modifying a Workflow Definition below), but
they cannot be deleted.
Tip: At any point while editing your workflow definition, you can click Undo at the bottom of the Add/Edit
Workflow Definition dialog to undo changes made since the last save to the current workflow step you are
editing or Undo All at the top of the workflow builder workspace to undo all changes made to the work-
flow definition since the last save.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
Workflow Definitions: Modify
2. On the Workflow Definitions page, click Add from the top menu to create a new workflow definition, or Edit
from either the top or right click menu, to modify an existing one. This will open the workflow in the workflow
builder workspace with the Workflow Definition dialog open on the right.
3. In the Add/Edit Workflow Definition dialog on the Definition tab, enter a Name for your workflow.
5. In the Type dropdown, select the type of requests this workflow will handle. The following types are
supported:
l Enrollment (including renewals)
l Revocation
The workflow type cannot be changed on an edit.
6. Once you have selected a type, a Templates field will appear. Begin typing in the Templates field to search for
available templates or click in the field and scroll down to locate your desired template. Templates that have
been configured with a template friendly name will appear by friendly name. The template cannot be changed
on an edit.
Tip: A given custom workflow can only apply to one certificate template. If you need to run the same
custom workflow steps for more than one template, you can either add these steps to the global
workflow or, if you want to run the steps for more than one type of enrollment or revocation but not
all, you can configure one custom workflow and then export and re-import that workflow to
duplicate it (see Importing or Exporting a Workflow Definition on page 258) and edit the copy to
change the template.
7. On the Workflow Configuration page, click the plus button in between two workflow steps where you want to
add a new step. A new step box will be added below the plus that you clicked.
Tip: To delete a step, click the X at the top right of the step box and confirm that you want to delete
the step.
8. Click the new step box to load the step in the Add/Edit Workflow Definition dialog. If the dialog is not already
open, clicking a step will open it, or you can open a step by clicking the open button ( ) and then clicking the
desired step to load it into the dialog.
9. In the Add/Edit Workflow Definition dialog on the Step tab in the General section, select a Step Type for the
step in the dropdown. To narrow the list of step types in the dropdown, begin typing a search string in the
Search field. The built-in types are:
Important: Workflows are not supported with CA delegation when they contain steps that
require approval. For more information, see the CA configuration Authorization Methods Tab
on page 321.
Tip: The workflow builder does not include a step to send a notification to the requester of a
certificate once the certificate is issued by the CA (as opposed to approved in Keyfactor
Command). Use the issued alerts for this (see Issued Request Alert Operations on page 168 ).
Important: This step applies to Microsoft CAs only. If this step is added to workflow for
requests directed to an EJBCA CA, it will fail on enrollment. Note that EJBCA supports submis-
sion of updated SAN or subject details as part of standard functionality.
10. In the Add/Edit Workflow Definition dialog on the Step tab in the General section, enter a Display Name for
the step. This name appears as the title of the step box on the workflow workspace page.
11. In the Add/Edit Workflow Definition dialog on the Step tab in the General section, either accept the auto-
matically generated Unique Name for the step or modify it. This name must be unique among the steps
within the particular workflow. It is intended to be used as a user-friendly reference ID.
12. In the Add/Edit Workflow Definition dialog on the Step tab in the Workflow Step Execution Conditions section,
click the Workflow Step Enabled toggle to enable or disable the workflow. It is enabled by default.
13. In the Add/Edit Workflow Definition dialog on the Step tab in the Workflow Step Execution Conditions section,
click Add in the Optional Workflow Step Conditions for Execution section to create a new condition for the
step. Conditions are true/false statements indicating whether the step should run and can be based on
tokens.
To add a new condition, click Add and in the Condition Variable field enter either a static value of True or
False or a token that will have a value of True or False at the time the step is run. More than one condition
may be added. If multiple conditions are used in the same step, all conditions must have a value of True at the
time the step is evaluated to be run in order for the step to run. If any single condition evaluates to False, the
step will not run.
Example: The following example takes the common name entered during an enrollment and eval-
uates it to determine whether the domain name on it matches "[Link]" or not. If the
domain is "[Link]", the enrollment is allowed to proceed without requiring approval. If the
domain does not match "[Link]", the request requires approval. This example uses both a
PowerShell Set Variable Data step and a Require Approval step.
To do this, first create the PowerShell step. Here we use a Set Variable Data step (see Set Variable
Data on page 234) since no functions need to be called outside the confines of Keyfactor Command,
though you could use a Custom PowerShell Script step instead. Add a Script Parameter to pull the
request CN into the script.
In the Insert PowerShell Script field, enter a script similar to the following:
# Check to see if the requested CN ends with [Link] and require approval in the
next step if it does not
$Suffix = "[Link]"
if ($[Link]($Suffix))
{
$shouldRun = "False"
}else {
$shouldRun = "True"
}
Next, create the require approval request step (see Require Approval on page 229) with $(shouldRun)
as a condition like so:
This condition on the require approval step will cause the approvals configured in the step to be
required only if the CN submitted in the request does not end with "[Link]", so a request
for "CN=[Link]" will require approval but a request for "CN=[Link]"
will not.
14. The fields in the Configuration Parameters section of the Add/Edit Workflow Definition dialog on the Step tab
will vary depending on the type of step you're configuring.
c. An Edit Content or Edit PowerShell window will open to accept your input. The Edit Content
window supports token replacement. The Edit PowerShell window will open with a text editor.
Enter your information.
d. Click at the top right to close the edit window and return to the workflow definition, popu-
lated with your text.
Tip: Tokens (a.k.a. substitutable special text) may be used in the URL and request content fields.
Tokens use a variable in the workflow definition that is replaced by data from the certificate
request, certificate, or certificate metadata at processing time. For example, you can take the revoc-
ation comment entered when the revocation request is approved—$(cmnt)—and insert it into a
custom metadata field in the certificate by doing a PUT /Certificates/Metadata request for the
$(id). Fields that support tokens are indicated with at the top right of the field. To use a token
in a field, begin typing at the location where you want the token to appear, starting with $(. Once
you have typed $(, a second ) will appear automatically along with a dropdown of available tokens
to choose from. You may continue typing to narrow the values in the dropdown (e.g. type $(req to
see only tokens that begin "req").
l Headers: Enter any headers needed for your request. For a Keyfactor API request, this might look
like:
x-keyfactor-requested-with: APIClient
x-keyfactor-api-version: 1
Tip: For a Keyfactor API request, version 1 is assumed if no version is specified. Content
type and authorization headers do not need to be specified, since those are addressed else-
where in the configuration.
l Variable to Store Response in: Provide a name for the parameter in which to store the response
data from your request. You can then reference this parameter from subsequent steps in the work-
flow.
Tip: The response is stored as a serialized JObject. To make use of only a portion of the
response data in your subsequent step, use JSON path syntax. For example, say you
returned the data from a GET /Agents request in a variable called MyResponse and you
wanted to reference the ClientMachine name for the orchestrator in a subsequent email
message. To limit the data to the first result (0) and only the ClientMachine name, in the
email message you would enter the following:
$(MyResponse.[0].ClientMachine)
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe
(see Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Note: To prevent REST requests from being made to inappropriate locations by malicious
users, configure a system environment variable of KEYFACTOR_BLOCKED_OUTBOUND_IPS
on your Keyfactor Command server pointing to the IP address or range of addresses in CIDR
format that you wish to block. Both IPv4 and IPv6 addresses are supported. More than one
address or range may be specified in a comma-delimited list. For example:
[Link]/24,[Link]/24
When a REST request is made where the URL is either configured to a blocked IP address or
resolves via DNS to a blocked IP address, the REST request will fail.
l Content-Type: In the dropdown, select the content type for the request:
o application/json
l Request Content: The request body of the REST request, if required, with tokens, if desired. For a
Keyfactor API request, this will vary depending on the request and might look like (for a
PUT /Certificates/Metadata request):
{
"Id": "$(certid)",
"Metadata":{
"RevocationComment":"$(cmnt)"
}
}
Note: This example assumes you have a metadata field called RevocationComment (see
Certificate Metadata on page 611).
Example: The following example takes the revocation comment entered when a certificate is
revoked and puts it together with some other information into a custom metadata field, retaining
In the Insert PowerShell Script field, enter a script similar to the following:
# Declare your parameters at the beginning ($Comment, $Notes, $RevCode, $Date, and
$RevokeBy)
param(
[string]$Comment,
[string]$Notes,
[string]$RevCode,
[datetime]$Date
[string]$RevokeBy
)
# Append your additional text to the existing text in the metadata Notes field along
with the revoker (removing
# the leading 'DOMAIN\' part), submission date, revocation code, and comment entered at
revocation,
# and beginning the entry with a newline.
$Notes += "`nRevoked on " + $[Link]("MMMM d, yyyy") + " by " +
$[Link]($[Link]('\')+1) + " with revocation option '" + $RevCode
# Return the updated metadata Notes value as MyNotes to the workflow as a hashtable
$result = @{ "MyNotes" = $Notes }
return $result
Next, create the REST request step with the following values:
l Headers:
{
"x-keyfactor-requested-with": [
"APIClient"
]
}
Figure 160: Metadata Update Example: Add Headers for REST Request
l Variable to Store Response in: None (there is no output from this command on a success)
l Verb: PUT
l URL: (Where [Link] is your Keyfactor Command server name.)
[Link]
l Content-Type: application/json
l Request Content:
This REST step takes the MyNotes output from the PowerShell step and updates the metadata
Notes field to match that value. The resulting value in your Notes field will look something like this
(assuming lines one, two and three were preexisting):
Note: You can achieve this same result of updating a metadata field entirely within Power-
Shell without using the REST step. This example uses both PowerShell and REST steps to
demonstrate passing a value from one to the other.
Note: If your REST request takes a long time to complete, the step may time out and the workflow
instance fail. The default timeout is 60 seconds and is configurable with the Workflow Step Run
Timeout application setting (see Application Settings: Workflow Tab on page 572).
Tip: Tokens (a.k.a. substitutable special text) may be used in the subject line, message and email
recipient fields. Tokens use a variable in the workflow definition that is replaced by data from the
certificate request, certificate, or certificate metadata at processing time. For example, you can
select $(requester) in the workflow definition for an enrollment request and the email message will
contain the specific certificate requester name instead of the variable $(requester). Fields that
support tokens are indicated with at the top right of the field. To use a token in a field, begin
typing at the location where you want the token to appear, starting with $(. Once you have typed
$(, a second ) will appear automatically along with a dropdown of available tokens to choose from.
You may continue typing to narrow the values in the dropdown (e.g. type $(req to see only tokens
that begin "req").
l Minimum Approvals: Enter the minimum number of users who must approve the request to
consider the request approved.
l Denial Email Subject: Enter the subject line for the email message that will be delivered if the
request is denied, including tokens if desired.
l Denial Email Message: Enter the email message that will be delivered if the request is denied. The
email message can be made up of regular text and tokens. If desired, you can format the message
body using HTML. See Table 13: Tokens for Workflow Definitions for a complete list of available
tokens.
l Denial Email Recipients: Click Add, enter a recipient for the denial email, and Save. Each email
message can have multiple recipients. You can use specific email addresses and/or use tokens to
replace an email address variable with actual email addresses at processing time. Available email
tokens include:
o $(requester:mail)
The certificate requester, based on a lookup in Active Directory of the email address asso-
ciated with the requester on the certificate.
o Your custom email-based metadata field, which would be specified similarly to
$(metadata:AppOwnerEmailAddress).
l Approval Email Subject: Enter the subject line for the email message that will be delivered if the
request is approved, including tokens if desired.
Tip: The approval message is delivered before the enrollment actually takes place. To send an
email alerting interested parties that the certificate was issued, including a link to download the
certificate, use an issued certificate alert (see Issued Certificate Request Alerts on page 168).
Tip: Tokens (a.k.a. substitutable special text) may be used in the subject line, message and email
recipient fields. Tokens use a variable in the workflow definition that is replaced by data from the
certificate request, certificate, or certificate metadata at processing time. For example, you can
select $(requester) in the workflow definition for an enrollment request and the email message will
contain the specific certificate requester name instead of the variable $(requester). Fields that
support tokens are indicated with at the top right of the field. To use a token in a field, begin
typing at the location where you want the token to appear, starting with $(. Once you have typed
$(, a second ) will appear automatically along with a dropdown of available tokens to choose from.
You may continue typing to narrow the values in the dropdown (e.g. type $(req to see only tokens
that begin "req").
l Subject: Enter the subject line for the email message that will be delivered when the workflow defin-
ition step is executed, including tokens if desired.
l Message: Enter the email message that will be delivered when the workflow definition step is
executed. The email message can be made up of regular text and tokens. If desired, you can format
the message body using HTML. For example, for an enrollment pending request notification:
Hello,
A certificate using the $(template) template was requested by $(requester:displayname) from $(CA)
on $(subdate). The certificate details include:
<table>
<tr><th>Certificate Details</th><th>Metadata</th></tr>
<tr><td>CN: $(request:cn)</td><td>App Owner First Name: $(metadata:Ap-
pOwnerFirstName)</td></tr>
<tr><td>DN: $(request:dn)</td><td>App Owner Last Name: $(metadata:Ap-
pOwnerLastName)</td></tr>
<tr><td>SANs: $(sans)</td><td>App Owner Email Address: $(metadata:Ap-
pOwnerEmailAddress)</td></tr>
<tr><td> </td><td>Business Critical: $(metadata:BusinessCritical)</td></tr>
Please review this request and issue the certificate as appropriate by going here:
$(reviewlink)
Thanks!
Your Certificate Management Tool
Tip: Tokens (a.k.a. substitutable special text) may be used in the script parameter value field.
Tokens use a variable in the workflow definition that is replaced by data from the certificate
request, certificate, or certificate metadata at processing time. For example, you can take the revoc-
ation comment entered when the revocation request is approved—$(cmnt)—and append addi-
tional data to it using PowerShell.
l Script Parameters: Add any parameters you will use to pass data into your script. These can contain
static values or tokens (see Table 13: Tokens for Workflow Definitions). To add a parameter:
a. In the Script Parameters section, click Add.
b. In the Add/Edit Parameter dialog, enter a name for the parameter in the Parameter field. In the
Value field, enter either a static value to be passed into the PowerShell script or select from the
available tokens to pass the token value into the PowerShell in your parameter.
This will result in the following dictionary entries being added to the database and available for
output or use in subsequent steps in the workflow:
You can reference these as tokens in subsequent steps as follows: $(MyFieldOne), $(MyFieldTwo),
$(TestThree).
Example: The following example takes the revocation comment entered when a certificate is
revoked and appends an additional comment, including dates, to it. To create this, add Script Para-
meters to pull the revocation comment, submission date and effective date into the script as shown
in Figure 159: Metadata Update Example: Add Parameters.
In the Insert PowerShell Script field, enter a script similar to the following:
# Append your additional text to the existing comment along with the submission and
effective dates
$Comment += " - Revocation requested on " + $[Link]("g") + " and effective on "
+ $[Link]("g")
# Return the updated comment to the workflow in the original parameter as a hashtable
$result = @{ "Comment" = $Comment }
return $result
You may reference the updated comment using the standard revocation comment token ($(cmnt))
in subsequent steps in your workflow and may view the updated comment wherever the revoc-
ation comment is available for viewing within Keyfactor Command.
Example: The following example takes two additional enrollment fields submitted on an enroll-
ment and sets the value of one to a fixed value if the value of the other (a multi-value field) is a
given value. In other words, the possible values for Department (a multi-value field) are:
l Accounting
l E-Commerce
l HR
l IT
l Marketing
l R&D
l Sales
If the value of Department is anything other than Accounting, the value of Code (a string field) can
be any value. If the value of Department is Accounting, anything submitted in the Code field by the
end user is discarded and replaced by the fixed value for Code provided in the script.
This example provides a solution using a Set Variable Data step type, which necessitates manually
unpacking the JSON attribute string. One possible method of doing this is provided in the example.
If you prefer, you may instead use a Use Custom PowerShell step with the ConvertFrom-Json cmdlet
To create this, add Script Parameters to pull the additional attributes into the script as shown in
Figure 170: Additional Attribute Update Example: Add Parameters
In the Insert PowerShell Script field, enter a script similar to the following:
# Split the incoming attribute string into its component values at the temporary string
$SplitAttributes = $[Link]('######')
# Initialize a hashtable
$UpdatedAttributes = @{}
# If the value of Department is "Accounting", then the value of Code must be "G5N145";
override submitted value--if any--and use fixed value
if($UpdatedAttributes['Department'] -eq "Accounting") {
$UpdatedAttributes['Code'] = "G5N145"
}
# Return the updated attributes to the workflow in the original parameter as a hasht-
able
$result = @{ "AdditionalAttributes" = $UpdatedAttributes }
return $result
The updated attributes will be submitted to the CA as part of the enrollment package and can be
viewed in the workflow instance (see Viewing a Workflow Instance on page 270).
Tip: Tokens (a.k.a. substitutable special text) may be used in the script parameter value field.
Tokens use a variable in the workflow definition that is replaced by data from the certificate
request, certificate, or certificate metadata at processing time. For example, you can take the revoc-
ation comment entered when the revocation request is approved—$(cmnt)—and append addi-
tional data to it using PowerShell.
l Script Parameters: Add any parameters you will use to pass data into your script. These can contain
static values or tokens (see Table 13: Tokens for Workflow Definitions). To add a parameter:
b. In the Add/Edit Parameter dialog, enter a name for the parameter in the Parameter field. In the
Value field, enter either a static value to be passed into the PowerShell script or select from the
available tokens to pass the token value into the PowerShell in your parameter.
Example: The following example takes the common name entered during an enrollment and eval-
uates it to determine whether the domain suffix ends with "[Link]". If it does, the script
does a DNS lookup of the full CN to find the IPv4 address for that name and, if found, adds that
value as a SAN to the request. Two additional SANs are added to the request by removing the
"[Link]" domain suffix and instead appending the domain suffixes provided in the
Domain1 and Domain2 parameters (e.g. [Link] and [Link]). If the
CN does not have a domain suffix ending with "[Link]", the PowerShell script does
nothing.
To create this, add Script Parameters to pull the CN and SANs into the script as shown in Metadata
Update Example: Add Parameters on page 226 and add to static values to pass in your two addi-
tional domain names.
In the PowerShell Script Name field, in the dropdown select the script containing content similar to
the following:
# Add the incoming SANs to the correct list (assumes only IPv4 addresses or DNS SANs
will be encountered)
foreach($san in $SplitSANs){
$sanComponents = $[Link]() -split ":"
Switch ($sanComponents[0].Trim()){
"DnsName" {$DnsSans += ,$sanComponents[1].Trim()}
"IPAddress" {$IpSans += $sanComponents[1].Trim()}
}
}
# Check to see if the incoming CN ends with [Link] and, if so, add some SANs.
$Suffix = "[Link]"
if ($[Link]($Suffix))
{
# Load just the portion of the CN without the domain name into a variable.
$CNName = $[Link](0,$[Link] - $[Link])
# Load the resulting IPv4 and DNS SANs into the SANS variable
$UpdatedSANs = @{}
if(![string]::IsNullOrWhiteSpace($DnsSans)) {
$UpdatedSANs['dns'] = $DnsSans
}
if(![string]::IsNullOrWhiteSpace($IpSans)) {
$UpdatedSANs['ip4'] = $IpSans
}
# Return the updated SANs to the workflow as a hashtable (case matters in the return
value name "SANs" in order
# to reload the results back into the SANs token)
$result = @{ "SANs" = $UpdatedSANs; }
return $result
Your enrollment will complete using the updated list of SANs, including any SANs you added manu-
ally on the PFX enrollment page or in the CSR. You may reference the updated SANs using the
standard SANs token ($(sans)) in subsequent steps in your workflow and may view the complete
SAN list wherever the SANs are available for viewing within Keyfactor Command.
Example: The following example takes the approval comment entered when a certificate is
enrolled or the approval or denial comment entered when a certificate is revoked using a require
approval step and stores the comment in a metadata field. There will be no certificate to associate
the metadata field with for an enrollment request that is denied. Normally, approval and denial
comments are discarded after a workflow instance is complete, so this allows the comment to be
retained.
To create this, after the Require Approval step(s) in the workflow, add a Use Custom PowerShell
step. A Use Custom PowerShell step is used here because we are calling the external command
ConvertFrom-Json. If you wanted to use a Set Variable Data step instead, you would need to go
through a process of extracting all your metadata values from the incoming metadata string and
placing them in a hashtable instead of using ConvertFrom-Json (see the additional attributes
example).
In the Use Custom PowerShell step, add Script Parameters to pull any approval comments and the
metadata field you're planning to store them in (in this example, a field called ApprovalComments)
into the script , along with the metadata bucket to include any remaining metadata values, as
shown in Figure 174: Approval Comment Update Example: Add Parameters.
In the PowerShell Script Name field, in the dropdown select the script containing content similar to
the following:
# Append your signal comment(s) to any existing comment in the ApprovalComment metadata
field
if([string]::IsNullOrWhiteSpace($ApprovalComment)) {
$UpdatedMetadata['ApprovalComment'] = $SignalComment
}else {
$UpdatedMetadata['ApprovalComment'] = $ApprovalComment + ", " + $SignalComment
}
# Return the updated metadata fields, including ApprovalComment, to the workflow in the
original parameter as a hashtable
$result = @{ "ApprovalComment" = $UpdatedMetadata }
return $result
If the workflow requires multiple approvals or has multiple require approval steps, all the approval
comments entered in the given workflow instance prior to the PowerShell step will be added to the
metadata field. If you expect to have multiple comments, you may prefer to use a big text field
rather than the string type fields shown here.
Note: If your PowerShell script takes a long time to execute, the step may time out and the work-
flow instance fail. The default timeout is 60 seconds and is configurable with the Workflow Step
Run Timeout application setting (see Application Settings: Workflow Tab on page 572).
This step is used to create a new signed CSR to prepare an updated enrollment request for delivery to a
Microsoft CA after a previous step in the workflow has been used to update either the SANs in the initial
request, subject (DN) in the initial request or both. This step must be placed later in the workflow than the
step(s) that modify the SANs and/or subject. The SANs and subject may be modified with either of the
PowerShell step types (see Set Variable Data on page 234 and Use Custom PowerShell on page 240) or a
custom step type. This step is used for both PFX enrollment and CSR enrollment, since both use a CSR that is
generated at the start of the workflow. A Microsoft CA will not accept a CSR for enrollment if the subject
has been modified and will only accept a CSR for enrollment with modified SANs if the EDITF_
ATTRIBUTESUBJECTALTNAME2 flag has been enabled on the CA—a security risk Keyfactor does not recom-
mend. EJBCA doesn’t support enroll on behalf of (EOBO), so this step type does not apply to EJBCA CAs.
EJBCA is able to handle subject and SAN changes without the need for this type of step based on end entity
profile constraints.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe
(see Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Example: The following example uses PowerShell to take the distinguished name (subject) and
SANs entered during an enrollment along with two static domain names and evaluates the domain
name of the common name in the subject to determine whether the domain suffix ends with the
"original" domain name provided in the static value ("[Link]"). If it does, the script
replaces the domain name in the subject with the value provided by the "new" static value and
adds a SAN with CN prefix and the new domain name (e.g. CN=[Link] becomes
CN=[Link] and a SAN is added for [Link]). If the CN does not have a
domain suffix ending with "[Link]", the PowerShell script does nothing. Here we use a
Set Variable Data step (see Set Variable Data on page 234) since no functions need to be called
outside the confines of Keyfactor Command, though you could use a Custom PowerShell Script step
In the Insert PowerShell Script field, enter a script similar to the following:
# Add the incoming SANs to the correct list (assumes only IPv4 addresses or DNS SANs
will be encountered)
foreach($san in $SplitSANs){
$sanComponents = $[Link]() -split ":"
Switch ($sanComponents[0].Trim()){
"DnsName" {$DnsSANs += ,$sanComponents[1].Trim()}
"IPAddress" {$IpSANs += $sanComponents[1].Trim()}
if(![string]::IsNullOrWhiteSpace($DnsSANs)) {
$UpdatedSANs['dns'] = $DnsSANs
}
if(![string]::IsNullOrWhiteSpace($IpSANs)) {
$UpdatedSANs['ip4'] = $IpSANs
}
# Replace escaped commas in the subject temporarily with a string to facilitate split-
ting
$TempString = "######"
$CleanSubject = $CSRSubject -replace "\\,", $TempString
# Check to see if the incoming CN ends with $OriginalDomain and, if so, add it as a SAN
with $NewDomain and update the Subject with $NewDomain (assumes non-null CN)
if ($[Link]($OriginalDomain))
{
# Load just the portion of the CN without the domain name into a variable.
$CNName = $[Link](0,$[Link] - ($[Link] + 1)) #
+1 to account for the '.'
if(![string]::IsNullOrWhiteSpace($SubjectCN)){
$NewSubject += "CN=" + $CNName + "." + $NewDomain + ","
}
if(![string]::IsNullOrWhiteSpace($SubjectO)){
$NewSubject += "O=" + $SubjectO + ","
}
if(![string]::IsNullOrWhiteSpace($SubjectOU)){
$NewSubject += "OU=" + $SubjectOU + ","
}
if(![string]::IsNullOrWhiteSpace($SubjectL)){
if(![string]::IsNullOrWhiteSpace($SubjectST)){
$NewSubject += "ST=" + $SubjectST + ","
}
if(![string]::IsNullOrWhiteSpace($SubjectC)){
$NewSubject += "C=" + $SubjectC + ","
}
if(![string]::IsNullOrWhiteSpace($SubjectE)){
$NewSubject += "E=" + $SubjectE + ","
}
# Load the resulting IPv4 and updated DNS SANs into the SANs variable
$UpdatedSANs = @{}
if(![string]::IsNullOrWhiteSpace($DnsSANs)) {
$UpdatedSANs['dns'] = $DnsSANs
}
if(![string]::IsNullOrWhiteSpace($IpSANs)) {
$UpdatedSANs['ip4'] = $IpSANs
}
}
# Return the updated subject and SANs as NewSubject and NewSANs to the workflow as a
hashtable
$result = @{ "Subject" = $NewSubject; "SANs" = $UpdatedSANs }
return $result
Add an Update Certificate Request Subject\SANs for Microsoft CAs step at a point in the workflow
after your PowerShell step to allow the request to be re-signed before it is submitted to the
Microsoft CA for enrollment.
15. For Require Approval steps or custom steps requiring signals, in the Workflow Step Editor in the Signals
section, select one or more security roles (see Security Overview on page 573) in the Approval Status drop-
down. To narrow the list of security roles in the dropdown, begin typing a search string in the Search field.
Click the erase icon ( ) to clear your selections.
Users who hold the security role(s) selected here will be able to submit signals (e.g. approve requests) for this
workflow.
Tip: Signals represent data used at the point in the workflow step where the workflow needs to
continue based on user input. Here, you're configuring which users are allowed to provide that input.
Important: If all the security roles configured for a workflow step are deleted from Keyfactor
Command, no users will be able to submit signals for workflow instances initiated with that workflow
definition. To remedy this, update the workflow definition with one or more current security roles,
re-publish it, and then restart any outstanding workflow instances.
16. Click Save Workflow at the top of the workflow workspace to save the workflow step.
17. On the Workflow Configuration page, click the plus button in between two workflow steps to add another
step in the workflow or click Save Workflow to save the workflow with its current steps.
18. Before you can use the workflow, it must be published to activate it. Click the Publish button at the top of the
workflow workspace to publish it immediately or return to the workflow definitions page and publish it later,
if desired (see Publishing a Workflow Definition on the next page).
19. To close the workflow workspace and return to the workflow definitions page, click the Close button at the
top of the workflow workspace.
Note: If you edit an existing published workflow definition, a new version of the workflow definition will
be created. If you edit an existing workflow definition which has never been published, the existing config-
uration will be overwritten with the changes you've made—a new version will not be created.
An audit log entry is created when you add or edit a workflow definition (see Audit Log on page 617).
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
Workflow Definitions: Modify
2. On the Workflow Definitions page, select a workflow definition and click Delete from either the top or right-
click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Note: The built-in global workflow definitions (Global Revocation Workflow and Global Enrollment Work-
flow) cannot be deleted. A workflow definition cannot be deleted if there is an active or suspended work-
flow instance for the workflow definition.
An audit log entry is created when you delete a workflow definition (see Audit Log on page 617).
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
Workflow Definitions: Modify
2. On the Workflow Definitions page, select a workflow definition and click Publish from either the top or right-
click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Exporting a Workflow
Workflow definitions can be exported either from the workflow workspace page while viewing or editing the work-
flow (see Adding or Modifying a Workflow Definition on page 210) or from the workflow definitions page.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
2. On the Workflow Definitions page, click Edit from either the top or right click menu. This will open the work-
flow in the workflow workspace with the Workflow Definition dialog open on the right.
3. At the top of the workflow workspace, select a different Version of the workflow in the dropdown, if desired
(see Workflow Versions on page 261).
5. Browse to place the exported file on the local computer. The file will have an extension of .json.
2. On the Workflow Definitions page, select a workflow definition and click Export from either the top or right-
click menu.
4. Browse to place the exported file on the local computer. The file will have an extension of .json.
Note: The following information is removed on export and will not be in the exported file:
l Secrets
Some types of workflow steps include secret values (e.g. passwords). Secret values are not exported.
If your workflow includes steps with secret values, these will need to be re-entered if you choose to
import the exported file.
l Roles for Signals
Some types of workflow steps make use of signals to allow users to provide input to the workflow
midstream (e.g. provide approvals). This requires configuration of security roles that define who is
allowed to provide this input. These security role values are not exported. You will need to set appro-
priate security roles on any workflow steps that use signals if you choose to import the exported file.
Importing a Workflow
Workflow definitions can be imported either to create a new workflow or to replace an existing workflow (e.g. to
revert to a backup). When you import a workflow definition while editing an existing workflow definition, it will
overwrite any changes you have made to the existing workflow since the last time it was published. Previously
published versions of the workflow—including the most recent—will be retained. This is useful in cases where you
want to export a previous version of a workflow and reimport it to make it the currently active version.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
Workflow Definitions: Modify
2. On the Workflow Definitions page, click Add from the top menu to create a new workflow definition into
which you will import, or Edit from either the top or right click menu, to import into an existing one to revert
to a previous version. This will open the workflow in the workflow workspace with the Workflow Definition
dialog open on the right.
4. Browse to locate the workflow definition file you wish to import. Only files with an extension of .json will
appear.
Tip: In order to be successfully imported, the file must be correctly formatted JSON with at least
WorkflowType and Steps properties. The maximum file upload size is 2 MB.
5. Click Import to import the workflow definition and populate it into the workflow workspace.
6. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
7. In the workflow workspace, edit and save the workflow definition as needed as per Adding or Modifying a
Workflow Definition on page 210. The following values will need attention:
l Key (Template)
When the workflow definition is imported into a new workflow definition, the template is cleared. You
will need to set an appropriate template on the imported workflow definition before saving. The
template is not cleared for imports into workflows with existing published versions.
This is done both to support export of workflow definitions from one environment and import into
another where the template set likely would be different and to support copying of workflow defin-
itions, since you can't have two definitions for the same template.
l Secrets
Some types of workflow steps include secret values (e.g. passwords). Secret values are not imported. If
your workflow includes steps with secret values, these will need to be re-entered. This is true for
imports into new workflow definitions and workflow definitions with existing published versions.
l Roles for Signals
Some types of workflow steps make use of signals to allow users to provide input to the workflow
midstream (e.g. provide approvals). This requires configuration of security roles that define who is
Important: If you're importing a copy of a workflow definition that already exists in Keyfactor
Command and you want to save it as a separate copy, be sure to change the Name of the workflow
before saving the imported workflow to avoid overwriting the existing version of the workflow.
Workflow Versions
When you open a workflow definition for editing, you will see the version of the workflow shown at the upper left
of the workflow workspace in a dropdown. By default, the current version will be shown.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Definitions: Read
When you have the current, most recent, version of the workflow loaded, you will see several options in the
button bar at the top of the workflow workspace (if you have appropriate permissions) and the Add/Edit Workflow
Definition Dialog will be active. If you select an older version in the dropdown, only the Version, Export, and Close
options will appear on the workflow workspace button bar and the Add/Edit Workflow Definition Dialog will be
read only.
Refer to the following table for a complete list of the substitutable special text that can be used to customize work-
flow email messages.
Table 13: Tokens for Workflow Definitions
$(certid) Request ID Revocation The request ID for the certificate as stored in the
Keyfactor Command database. This is not the
same as the request ID issued by the CA.
$(issuerdn) Issuer DN Revocation The distinguished name of the issuer of the certi-
ficate.
$(locations) Certificate Store Enrollment The certificate store locations to which the certi-
Locations and Revoc- ficate will be deployed following enrollment, for
ation enrollment requests, or in which the certificate is
found, for revocation requests.
$(request:dn) Requested Distin- Enrollment The distinguished name contained in the certi-
guished Name ficate request.
$(request:keysize) Request Key Size Enrollment The key size contained in the certificate request.
$(request:keytype) Request Key Enrollment The key type contained in the certificate request.
Type
$(requester) Requester Enrollment The user account that requested the certificate
and Revoc- from the CA, in the form "DOMAIN\username".
ation
$(requester:givenname) Requester’s First Enrollment The first name retrieved from Active Directory of
Name and Revoc- the user account that requested the certificate
ation from the CA, if present.
$(requester:sn) Requester’s Last Enrollment The last name retrieved from Active Directory of
Name and Revoc- the user account that requested the certificate
ation from the CA, if present.
$(requester:displayname) Requester's Enrollment The display name retrieved from Active Directory
Display Name and Revoc- of the user account that requested the certificate
ation from the CA, if present.
$(reviewlink) Review Link Enrollment Link pointing to the review page in the Manage-
and Revoc- ment Portal for the workflow instance where the
ation person responsible for providing signal input (e.g.
approving the request) can go to review the
request and provide the input.
$(sans) Subject Altern- Enrollment Subject alternative name(s) contained in the certi-
ative Names ficate request. There are four possible sources
for the SANs that appear here:
l For CSR enrollment, the original
$(template) Template Name Enrollment The short name (often the name with no spaces)
of the certificate template used to create the
certificate request.
Example:
You have a custom enrollment workflow definition for the EnterpriseWebServer template. It contains a
couple of steps including RequireApproval, which requires approval from at least two PKI admins before a
certificate with this template may be issued. The workflow definition has been edited and published a few
times and is now at version 3. John enrolls for a certificate using the Management Portal PFX Enrollment
option and selects this template. When the enrollment completes, he receives a message indicating that
the request is awaiting approval.
Figure 183: PFX Enrollment Complete for a Template Requiring Approval via Workflow
A workflow instance has now been created for his request. Users with appropriate permissions can view
the instance in Workflow Instances.
Users with permissions to approve the request can do so through their My Workflows page and the
Assigned to Me tab (see My Workflows on page 283).
After John completes his enrollment and before it is approved, an administrator makes a change to the
workflow for the EnterpriseWebServer template and publishes the new version. The current workflow is
now at version 4. However, John's request remains outstanding and valid with version 3 of the workflow.
Any change made for version 4 of the template will not be reflected in John's request.
The only circumstance under which John's request might complete using version 4 of the workflow defin-
ition would be:
l If the administrator observed the suspended workflow (suspended because it is awaiting approvals),
knew there was a new version of the workflow, and pro-actively restarted the workflow instance. A
workflow instance restarted from a suspended state will always restart (from the beginning) with the
currently active version of the workflow definition.
l If the administrator observed the suspended workflow, stopped the workflow knowing it should not
be allowed to complete with the workflow definition it was submitted with, made a further update to
the workflow definition, and then restarted the workflow with the newly updated version of the
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
The Keyfactor Command reference GUID for the workflow The date and time when an instance was initiated.
definition.
Status
Id
Status matches or doesn’t match the selected value—
The Keyfactor Command reference GUID for the workflow Unknown, Running, Suspended, Failed, Complete,
instance. Rejected, CanceledforRestart
Complete or partial matches with the name of the user Complete or partial matches with the description for the
who initiated the workflow instance in domain\username action taking place in the workflow instance step. The
format. values in the title will vary and generally include the user
initiating the request and the CN of the certificate or certi-
Last Modified ficate request involved.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid for several of the columns. Click
the column header again to reverse the sort order. The grid columns can be arranged in any order desired by click-
holding and dragging the header of the column you wish to move. The column widths may be adjusted by click-
holding and dragging the line separating two column headers.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
A workflow instance is created for every certificate enrollment, renewal, or revocation request you make through
the Keyfactor Command Management Portal. If the request is made using a workflow definition (see Workflow
Definitions on page 205) that has been configured with steps to require approvals for the request, run a Power-
Shell script, or make an API request as part of the request flow, you may find yourself on the Workflow Instances
page needing to manage the instances.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - All
2. On the Workflow Instances page, double-click or click View from either the top or right click menu.
Instance Section
l Id
A GUID indicating the Keyfactor Command reference ID for the instance.
l Title
A description for the action taking place in the step. For example:
"KEYEXAMPLE\jsmith is enrolling for a certificate with CN=[Link]."
Or:
"KEYEXAMPLE\mjones is revoking certificate with CN=[Link]."
l Status
The current status message of the workflow instance.
For example, for an enrollment that succeeded, the status message might be:
For a workflow suspended and awaiting approval, the status message might be:
For an enrollment that could not be submitted because a regular expression rule was not met, the
status message might be something like:
For an enrollment that failed due to rejection by the CA, the status message might be:
A workflow that failed at a PowerShell step might include the PowerShell error in the status message:
l Current Step
The display name defined for the workflow instance step at which the instance has paused or stopped.
For a successfully completed workflow, this will be either Keyfactor-Revoke or Keyfactor-Enroll. For a
suspended workflow, this will be the custom step that is awaiting user input to continue the workflow.
For a failed workflow, this will be the step at which the workflow failed.
The data included in this section will vary depending on the request type, the status of the request, and the
configuration of the workflow.
Enrollment
l Subject
The distinguished name of the certificate.
l CSR:Raw
The unparsed version of the certificate signing request generated for the certificate request.
l CSR: Parsed
The parsed version of the certificate signing request generated for the certificate request. The CSR
may include:
Note: This field is populated only after the certificate has been issued by the CA.
Note: This field is populated only if the certificate request fails at the CA level or requires
manager approval at the CA level.
l Certificate Authority
The certificate authority that will be used to enroll against in hostname\logical name format.
l Custom Name
A custom friendly name for the certificate, if entered at enrollment.
l Disposition Message
A message about the certificate request.
Note: This field is populated only after the certificate request has been submitted to the
CA.
l Format
The desired output format for the certificate. A value of STORE indicates that the certificate is
intended to be delivered into one or more certificate stores.
l Include Chain
A flag indicating whether to include the certificate chain in the enrollment response (true) or not
(false).
l Initiating User Name
Entry 1: [Link]
Entry 2: [Link]
l Serial Number
The serial number of the certificate.
l Stores
The certificate stores to which the certificate should be distributed, if applicable.
l Template
The template that was used when requesting the certificate.
l Thumbprint
The thumbprint of the certificate.
Revocation
l Certificate Authority
The certificate authority that that issued the certificate.
l Certificate Id
The Keyfactor Command reference ID for the certificate being revoked.
l Comment
A freeform reason or comment to explain why the certificate is being revoked.
l Delegate
A flag indicating whether delegation was enabled for the certificate authority that issued the certi-
ficate at the time revocation was requested (true) or not (false). For more information, see Author-
ization Methods Tab on page 321.
l Effective Date
The date and time when the certificate will be revoked.
l Initiating User Name
The name of the user who initiated the workflow in DOMAIN\\username format.
l Operation Start
The time at which the revocation workflow was initiated.
l RevokeCode
The specific reason that the certificate is being revoked. Possible values are:
o -1—Remove from Hold
o 0—Unspecified
o 1—Key Compromised
o 2—CA Compromised
o 3—Affiliation Changed
o 4—Superseded
o 5—Cessation of Operation
o 6—Certificate Hold
o 7—Remove from CRL. Only valid in the case that a cert is already on a CRL in a manner that it
can be removed, such as Certificate Hold.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - All
Workflow Definitions: Read
2. On the Workflow Instances page, select a workflow instance and click View Definition from either the top or
right-click menu.
3. A read-only copy of the workflow definition at the time the instance was initiated will open in the workflow
definition workspace. For information about using the workflow definition workspace, see Adding or Modi-
fying a Workflow Definition on page 210.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - All
Workflow Instances: Manage
2. On the Workflow Instances page, select a workflow instance and click Stop from either the top or right-click
menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
When you restart a workflow instance, it starts over from the beginning, not from the failure point.
2. On the Workflow Instances page, select a workflow instance and click Restart from either the top or right-click
menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Note: Only workflow instances with a Status of Failed or Suspended can be restarted.
After restarting a workflow instance, you can view any differences between the original instance and the newly
restarted instance by looking at the audit log record (see Audit Log Operations on page 622) for the workflow
instance restart. The Related Entries in the audit log record do not include the original workflow instance that
failed since restarting a workflow instance generates a new workflow instance.
Tip: If user John Smith restarts a workflow instance that was originally started by user Martha Jones, the
audit log message for this will look something like:
"The user 'KEYEXAMPLE\jsmith' restarted workflow instance, 'KEYEXAMPLE\mjones is
enrolling for a certificate with CN=[Link].'"
In a scenario like this, the user listed at the top of the audit log details will be the user who restarted the
instance, not the user who originally started the request.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - All
Workflow Instances: Manage
2. On the Workflow Instances page, select a workflow instance and click Delete from either the top or right-click
menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
An audit log entry is created when you delete a workflow instance (see Audit Log on page 617). Instances deleted
as the result of system action (e.g. purging old records) are not audited.
3.2.3 My Workflows
When a workflow is initiated by a certificate enrollment, renewal, or revocation request, that workflow instance
may appear in as many as two places:
l If the workflow definition for the instance requires signal input (e.g. approval), every Keyfactor Command user
who holds a security role that has been defined in the workflow definition as allowed to send signals to the
workflow (see Workflow Definitions on page 205) will see that instance appear on the Assigned to Me tab of
the My Workflows page. The users can provide signal input (e.g. approve or deny the request) from here. The
workflow does not necessarily need to receive signal input from all these users, depending on how many users
with this role there are and how many users were required to provide signal input in the workflow definition.
Once the workflow instance is complete, it disappears from the Assigned to Me tab for all users.
l The user who initiated the workflow (e.g. by beginning a certificate enrollment or revoking a certificate) will
see that instance appear on the Created by Me tab of the My Workflows page. When the workflow instance is
complete, it will still appear on the Created by Me tab and be searchable.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - All OR
Workflow Instances: Read - Assigned To Me OR
Workflow Instances: Read - Started By Me
Users with only Read - Started By Me or Read - Assigned To Me will only be able to see the Created by Me
or Assigned to Me tab, respectively. A user with either both Read - Started By Me and Read - Assigned To
Me or Read - All will be able to see both tabs.
Example:
The enrollment workflow definition for the EnterpriseWebServer template requires two approvals from
users with the Enrollment Approvers security role. There are five users with this role: Anne, Charles, John,
Mary, and Sam. Martha enrolls for a certificate using the Keyfactor Command Management Portal
PFX Enrollment method and the EnterpriseWebServer template.
The new workflow instance appears on the Assigned to Me tab of all users with the Enrollment Approvers
role and on Martha's Created by Me tab. Approvers Mary and John approve the instance on their
respective Assigned to Me tab and the certificate is issued. The workflow instance disappears from the
Assigned to Me tab for all users. It's still visible on the main Workflow Instances page and on Martha's
Created by Me tab as a completed instance.
Note: A locking conflict may occur if two (or more) users attempt to provide input to a workflow instance
(e.g. approve a request) at exactly the same time. If this happens, input from only one of the users will be
reflected in the Management Portal, and the workflow instance will not be moved along to the next step if
it should have been with input from the two users. The other input is still accepted, however, and there is
a scheduled task that runs daily and attempts to continue all suspended workflows that may be eligible to
continue but have not done so due to locking conflicts.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Complete or partial matches with the Keyfactor Command The date and time when an instance was initiated.
reference GUID of the workflow definition.
Id Status
Complete or partial matches with the Keyfactor Command Status matches or doesn’t match the selected value—
reference GUID of the workflow instance. Unknown, Running, Suspended, Failed, Complete,
Rejected, CanceledforRestart
Initiating User Name Title
Complete or partial matches with the name of the user Complete or partial matches with the description for the
who initiated the workflow instance in domain\username action taking place in the workflow instance step. The
format. values in the title will vary and generally include the user
initiating the request and the CN of the certificate or certi-
ficate request involved.
Last Modified Workflow Type
The date and time on which an initiated instance was last The type of workflow (enrollment or revocation).
updated. The instance is updated each time a step in the
workflow is completed, when signals are received for a
step that accepts signals (e.g. a requires approval step), or
when an instance is stopped or restarted.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid. Only the Instance Title column
sortable. Click the column header again to reverse the sort order. The grid columns can be arranged in any order
desired by click-holding and dragging the header of the column you wish to move. The column widths may be
adjusted by click-holding and dragging the line separating two column headers.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
Only workflow instances that are in a Suspended state and that the current user has permissions to submit signals
for (e.g. approve or deny) appear on the Assigned to Me tab of the My Workflows page. Once the user submits a
signal to a workflow instance on this page, it is removed from the page.
Note: If a workflow instance is initiated for a workflow definition that has more than one step requiring
input (signals), a user can only provide that input (e.g. approve or deny a require approval request) at the
step in the workflow instance where the workflow instance was suspended pending input. The user
cannot jump ahead and provide input for future steps in the workflow that have not yet occurred.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Workflow Instances: Read - Assigned to Me
Or:
Workflow Instances: Read - All
2. On the Assigned to Me tab of the My Workflows page, double-click or click Review from either the top or right
click menu.
3. On the Workflow Signal Review page, review the information in the instance before submitting a signal for the
request. Information on the review page includes:
Instance Section
l Id
A GUID indicating the Keyfactor Command reference ID for the instance.
l Title
A description for the action taking place in the step. For example:
"KEYEXAMPLE\jsmith is enrolling for a certificate with CN=[Link]."
Or:
"KEYEXAMPLE\mjones is revoking certificate with CN=[Link]."
l Current Step
The display name defined for the workflow instance step at which the instance has paused. For a
suspended workflow, this will be the custom step that is awaiting user input to continue the workflow.
The data included in this section will vary depending on the request type and the configuration of the work-
flow.
Enrollment
l Subject
The distinguished name of the certificate.
l CSR:Raw
The unparsed version of the certificate signing request generated for the certificate request.
l CSR: Parsed
The parsed version of the certificate signing request generated for the certificate request. The CSR
may include:
o Key Length
The desired key size for the certificate.
o Key Type
The desired key encryption for the certificate.
o C
Entry 1: [Link]
Entry 2: [Link]
l Stores
The certificate stores to which the certificate should be distributed, if applicable.
l Template
The template that was used when requesting the certificate.
l (Custom)
Optional user-generated custom fields returning response data from PowerShell scripts or REST
requests. These will be sorted alphabetically in among the other fields on the page.
Revocation
l Certificate Authority
The certificate authority that that issued the certificate.
l Certificate Id
The Keyfactor Command reference ID for the certificate being revoked.
l Comment
A freeform reason or comment to explain why the certificate is being revoked.
l Delegate
A flag indicating whether delegation was enabled for the certificate authority that issued the certi-
ficate at the time revocation was requested (true) or not (false). For more information, see Author-
ization Methods Tab on page 321.
l Effective Date
The date and time when the certificate will be revoked.
l Initiating User Name
The name of the user who initiated the workflow in DOMAIN\\username format.
l Operation Start
In the Signal Input section of the page, you can submit one or more signals for the step. For the built-in
require approval workflow step type, this is where you send an approval or denial for the request along with a
comment about the approval or denial.
A custom workflow step requiring signal input may have more than one signal type to select from in the drop-
down, may have input fields to submit data with the signal, and will likely have buttons with labels other than
"Deny" or "Approve".
4. At the bottom of the Workflow Signal Review page in the Signal Input section, select an option in the Signal
Type dropdown, enter any required signal data, and click an appropriate signal button to submit the signal.
For the built-in require approval workflow step type, select ApprovalStatus in the dropdown (there is only one
choice), enter an optional Comment (the maximum comment length is 500 characters), and click either
Approve to add your approval to the workflow or Deny to deny the workflow instance.
Tip: If you reference the approve/deny comments using the $(approvalsignalcmnts) token, the
included comments will vary depending on where you use the token. If you use the token in an email
message within a require approval step, only comments from that require approval step will be
included. If you use the token in a separate email step within the same workflow, all comments from
any require approval steps within the workflow will be included.
5. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Note: The workflow definition may require more than one approval to be completed and so may not be
immediately completed when you click Approve. However, a single denial is enough to reject the work-
flow instance.
An audit log entry is created when you provide input to a workflow instance (see Audit Log on page 617).
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the Keyfactor Command The date and time when an instance was initiated.
reference GUID of the workflow definition.
Id Status
Complete or partial matches with the Keyfactor Command Status matches or doesn’t match the selected value—
reference GUID of the workflow instance. Unknown, Running, Suspended, Failed, Complete,
Rejected, CanceledforRestart
Initiating User Name Title
Complete or partial matches with the name of the user Complete or partial matches with the description for the
who initiated the workflow instance in domain\username action taking place in the workflow instance step. The
format. values in the title will vary and generally include the user
initiating the request and the CN of the certificate or certi-
ficate request involved.
The date and time on which an initiated instance was last The type of workflow (enrollment or revocation).
updated. The instance is updated each time a step in the
workflow is completed, when signals are received for a
step that accepts signals (e.g. a requires approval step), or
when an instance is stopped or restarted.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid. Only the Instance Title column
sortable. Click the column header again to reverse the sort order. The grid columns can be arranged in any order
desired by click-holding and dragging the header of the column you wish to move. The column widths may be
adjusted by click-holding and dragging the line separating two column headers.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
On the Created by Me tab of the My Workflows page you can view all the workflows that the current user initi-
ated.
2. On the Created by Me tab of the My Workflows page, double-click or click View from either the top or right
click menu.
3. On the Workflow Signal Review page, review the information in the instance. Information on the review page
includes:
Instance Section
l Id
A GUID indicating the Keyfactor Command reference ID for the instance.
l Title
A description for the action taking place in the step. For example:
"KEYEXAMPLE\jsmith is enrolling for a certificate with CN=[Link]."
Or:
"KEYEXAMPLE\mjones is revoking certificate with CN=[Link]."
l Status
The current status message of the workflow instance.
For example, for an enrollment that succeeded, the status message might be:
For a workflow suspended and awaiting approval, the status message might be:
For an enrollment that could not be submitted because a regular expression rule was not met, the
status message might be something like:
For an enrollment that failed due to rejection by the CA, the status message might be:
A workflow that failed at a PowerShell step might include the PowerShell error in the status message:
l Current Step
The display name defined for the workflow instance step at which the instance has paused or stopped.
For a successfully completed workflow, this will be either Keyfactor-Revoke or Keyfactor-Enroll. For a
suspended workflow, this will be the custom step that is awaiting user input to continue the workflow.
For a failed workflow, this will be the step at which the workflow failed.
The data included in this section will vary depending on the request type, the status of the request, and the
configuration of the workflow.
Enrollment
l Subject
The distinguished name of the certificate.
l CSR:Raw
The unparsed version of the certificate signing request generated for the certificate request.
Note: This field is populated only after the certificate has been issued by the CA.
Note: This field is populated only if the certificate request fails at the CA level or requires
manager approval at the CA level.
l Certificate Authority
The certificate authority that will be used to enroll against in hostname\logical name format.
l Custom Name
A custom friendly name for the certificate, if entered at enrollment.
l Disposition Message
A message about the certificate request.
Note: This field is populated only after the certificate request has been submitted to the CA.
l Format
The desired output format for the certificate. A value of STORE indicates that the certificate is
intended to be delivered into one or more certificate stores.
l Include Chain
A flag indicating whether to include the certificate chain in the enrollment response (true) or not
(false).
l Initiating User Name
The name of the user who initiated the workflow in DOMAIN\username format.
l Is PFX
Entry 1: [Link]
Entry 2: [Link]
l Serial Number
The serial number of the certificate.
l Stores
The certificate stores to which the certificate should be distributed, if applicable.
l Template
The template that was used when requesting the certificate.
l Thumbprint
The thumbprint of the certificate.
l (Custom)
Optional user-generated custom fields returning response data from PowerShell scripts or REST
requests. These will be sorted alphabetically in among the other fields on the page.
l Certificate Authority
The certificate authority that that issued the certificate.
l Certificate Id
The Keyfactor Command reference ID for the certificate being revoked.
l Comment
A freeform reason or comment to explain why the certificate is being revoked.
l Delegate
A flag indicating whether delegation was enabled for the certificate authority that issued the certi-
ficate at the time revocation was requested (true) or not (false). For more information, see Author-
ization Methods Tab on page 321.
l Effective Date
The date and time when the certificate will be revoked.
l Initiating User Name
The name of the user who initiated the workflow in DOMAIN\\username format.
l Operation Start
The time at which the revocation workflow was initiated.
l RevokeCode
The specific reason that the certificate is being revoked. Possible values are:
o -1—Remove from Hold
o 0—Unspecified
o 1—Key Compromised
o 2—CA Compromised
o 3—Affiliation Changed
o 4—Superseded
o 5—Cessation of Operation
o 6—Certificate Hold
o 7—Remove from CRL. Only valid in the case that a cert is already on a CRL in a manner that it
can be removed, such as Certificate Hold.
l Serial Number
The serial number of the certificate being revoked.
l Thumbprint
The thumbprint of the certificate being revoked.
3.3 Locations
The options available in the Locations section of the Management Portal are:
l Certificate Authorities
Import CAs from Active Directory and/or define remote CAs, configure synchronization and monitoring tasks
for them, set authorization methods and configure enrollment details.
l Certificate Templates
Import certificate templates from Active Directory or EJBCA, view certificates and configure template-specific
enrollment details such as; enrollment fields, authorization methods, metadata, template regular expressions,
enrollment defaults and policies. Also, set system-wide template enrollment regular expressions, enrollment
defaults and policies.
Important: In order for CAs to successfully synchronize to the Keyfactor Command database and perform
other functions (e.g. enrollment), the service account under which Keyfactor Command is making the
request to the CA must be granted appropriate permission to the CA database as per Grant the Keyfactor
Command Users and Service Account(s) Permissions on the CAs in the Keyfactor Command Server Install-
ation Guide.
Note: Keyfactor CA gateways are not supported in any configuration other than in the same forest in
which Keyfactor Command is installed.
l On-premise Microsoft CA accessed via the Keyfactor CA Management Gateway using a managed instance of
Keyfactor Command
l On-premise EJBCA CA accessed via the Keyfactor CA Management Gateway using a managed instance of
Keyfactor Command
Note: You must install and configure the Keyfactor Universal Orchestrator or Windows Orchestrator
on a machine in the same forest where the Microsoft CA resides and configure it with CA Support and
approve the orchestrator in the Management Portal before creating the CA record.
The majority of CA-related functions within Keyfactor Command are supported by both EJBCA and Microsoft CAs.
Table 14: CA Function Matrix includes a list of CA-related functions and the support provided by EJBCA and
Microsoft CAs.
Important: EJBCA integration with Keyfactor Command requires EJBCA version 7.8.1 or higher.
EJBCA CA Microsoft CA
CA Synchronization
Template1 Import
CA Health Monitoring
Certificate Revocation
1When EJBCA templates are imported, they are named using a naming scheme of <end entity profile name>_<certi-
ficate profile name> for the template name (short name). New templates do not need to be created for Keyfactor
Command.
Requests to the CA can be done in the context of the user initiating the request
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
During installation of Keyfactor Command, CA records are created for any Microsoft CAs found in the local forest in
which Keyfactor Command is installed. If you have Microsoft CAs in separate forests in a two-way trust with the
forest in which Keyfactor Command is installed, you will need to use the import option to import CA records from
those forests. If you have Microsoft CAs in any other configuration or EJBCA CAs, you will need to manually
configure CA records for them.
To import CA records:
1For EJBCA, this is the end entity associated with the client certificate used to authenticate to the EJBCA CA.
2. On the Certificate Authorities grid, click the Import action button to import local or two-way trusted forest
CAs and Keyfactor CA gateways.
3. In the Import Certificate Authorities dialog, select the forest from which you want to import in the dropdown
and click Import.
Your certificate authorities and CA gateways will be retrieved from Active Directory in the trusted forest and
will populate the CA grid. Import once for each forest containing Microsoft CAs that you want to synchronize
or use for enrollment.
Once the records are imported, use the Edit option (see Adding or Modifying a CA Record on the next page) to
configure synchronization and other optional settings for the CA.
Tip: This step does not need to be completed for the forest in which Keyfactor Command is installed
because those records are imported during the installation process.
Note: Keyfactor CA gateways are not supported in any configuration other than in the same forest in
which Keyfactor Command is installed.
Note: The import option only works for Microsoft CAs or Keyfactor CA gateways that have been
registered in Active Directory.
Test a CA Connection
As of Keyfactor Command version 10, CA connections can be tested from the Certificate Authority page. There are
two new action buttons on the Certificate Authority dialog, Test Connection and Save and Test, in addition to the
Cancel button.
Certificate Authorities will be tested before they are saved to the database and must be valid and reachable to be
saved. If the CA can't be verified, an error message with an explanation of the issue will be displayed and added to
the Command_API_Log.
l For EJBCA, the test checks that the CA name provided is valid for the given EJBCA instance. It validates the
hostname, enabled APIs, and authentication certificate. The version is validated (7.8.1 or greater) and
connecting to both the REST v1 and SOAP APIs is also validated.
Note: As a result of this functionality, it is not possible to add offline root or policy CAs, as they will not be
able to be verified. Add any certificates for offline root or policy CAs manually to the Keyfactor Command
database using the Add Certificate option (see Add Certificate on page 62).
To test a CA record:
2. On the Certificate Authorities grid, click Add to add a new CA, or click Edit to modify an existing CA, from
either the top or right-click menu.
3. Follow the instructions for adding or modifying a CA (see Adding or Modifying a CA Record below). Once you
have entered the details you want to test, click Test Connection or Save and Test. Upon a successful test, you
will receive a green success notification at the bottom of the page. Upon a test failure, you will receive a pop-
up message with the details of the failure; a message will also be added to the log.
Tip: When adding or editing your CAs, the connection can now be tested and must be valid and reachable
for the CA to be saved. See Test a CA Connection on the previous page.
Whether your CA has been imported or added manually, you'll need to update it to configure synchronization and
other optional settings.
Important: In order for CAs to successfully synchronize to the Keyfactor Command database and perform
other functions (e.g. enrollment), the service account under which Keyfactor Command is making the
request to the CA must be granted appropriate permission to the CA database as per Grant the Keyfactor
Command Users and Service Account(s) Permissions on the CAs in the Keyfactor Command Server Install-
ation Guide.
2. On the Certificate Authorities grid, click Add to add a new CA, or click Edit from either the top or right-click
menu to modify an existing one.
3. At the top of the dialog, choose an appropriate CA communication protocol in the Select CA Communication
Protocol dropdown. The options are:
l DCOM—Select this option for Microsoft CAs and CA gateways.
l HTTPS—Select this option for EJBCA CAs.
This field cannot be modified on an edit.
4. The remainder of the Certificate Authority dialog shows four tabs. Only the first three are used for EJBCA CAs.
Complete the Certificate Authority dialog with the appropriate data using the following instructions:
Tip: Previous versions of Keyfactor Command referred to the Configuration Tenant as the Template
Forest.
l Logical Name—The logical name of the CA in the remote forest. For example: Corp2IssuingCA1
l Host Name—The fully qualified domain name of the server on which the CA in the remote forest is
installed. For example: [Link]
Domain-Joined Enterprise or Standalone Microsoft CA in a Forest that has No Trust with the Forest
in which Keyfactor Command is Installed
l Logical Name—The logical name of the CA in the remote forest. For example: Corp3IssuingCA1
l Host Name—The fully qualified domain name of the server on which the CA in the remote forest is
installed. For example: [Link]
l Configuration Tenant—The DNS domain name for the Active Directory forest in which the CA
resides. For example: [Link]
EJBCA CA
l Logical Name—The logical name of the EJBCA CA. For example: CorpCA1
Note: EJBCA CA logical names are case sensitive (e.g. CorpCA1 is not the same as
CORPCA1).
l Host URL—The URL pointing to the EJBCA CA. For example: [Link] If the
URL provided does not have a virtual directory (/ejbca or otherwise) the /ejbca will be provided,
otherwise it will use what is supplied in the URL.
l Configuration Tenant—A reference ID for the EJBCA CA server. For EJBCA CAs, this does not need to
be the DNS domain name. The short hostname of the EJBCA CA server makes a good reference ID.
Important: EJBCA and Microsoft CAs cannot be configured with the same Configuration
Tenant, so do not set this to the DNS domain name if you will also be configuring Microsoft
CAs in the same DNS domain.
l Enforce Unique DN
Checking this will cause Keyfactor Command, upon enrollment, to search the EJBCA CA for end
entities with DNs that match the DN in the certificate request. If a matching DN is found, the process
will update the existing end entity in EJBCA with the new certificate request information rather than
creating a new end entity. If you enable this option in Keyfactor Command, it must also be enabled
on the matching EJBCA CA. A mismatch in these settings can result in enrollment failures.
The value of the Keyfactor Command Enforce Unique DN setting is verified for each certificate
request:
o If unset, enrollment proceeds as usual.
o If set, EJBCA is searched for an end entity associated with the DN and CA in the certificate
request and:
o If none is found, the enrollment proceeds as usual.
o If one or more is found, the end entity in EJBCA is updated with the information from
the certificate request, so that the new certificate request is tied to the same end
entity as the existing certificate (or the first one found, if multiple are found). A new
password is generated and the enrollment proceeds as usual.
l Logical Name—The logical name of the standalone CA. For example: CorpSARootCA1
l Host Name—The fully qualified domain name of the server on which the standalone CA is installed.
For example: [Link]
l Configuration Tenant—The DNS domain name for the standalone CA. For example: [Link]
l Logical Name—The logical name of the CA in the remote forest to which the orchestrator will be
connecting for synchronization. For example: Corp4IssuingCA1
l Host Name—The fully qualified domain name of the CA in the remote forest to which the orches-
trator will be connecting for synchronization. For example: [Link]
l Configuration Tenant—The DNS domain name for the Active Directory forest in which the orches-
trator is operating and in which the CA resides. For example: [Link]
Note: You must install and configure the Keyfactor Universal Orchestrator or Windows Orches-
trator on a machine in the same forest where the CA resides, configure it with CA Support and
approve the orchestrator in the Management Portal before creating the CA record.
l Logical Name—The logical name of the CA in the local forest. For example: CorpIssuingCA1
l Host Name—The fully qualified domain name of the server on which the CA in the local forest is
installed. For example: [Link]
l Configuration Tenant—The DNS domain name for the Active Directory forest in which the CA
resides. For example: [Link]
Keyfactor CA Gateway
l Logical Name—The logical name of the CA gateway in the local forest. For example: EntrustGateway
l Host Name—The fully qualified domain name of the server on which the CA gateway in the local
forest is installed. For example: [Link]
l Configuration Tenant—The DNS domain name for the Active Directory forest in which the CA
resides. For example: [Link]
l Logical Name—The logical name created when the gateway was configured. The logical name is
unique for each CA gateway. For a gateway providing a bridge to an on-premise Microsoft CA, the
name configured as the gateway logical name should match the logical name of the Microsoft CA.
l Host Name—The fully qualified domain name of the server in the managed forest environment in
which the Keyfactor CA Management Gateway is installed.
l Configuration Tenant—The DNS domain for the Active Directory forest in the managed forest envir-
onment in which the Keyfactor CA Management Gateway is installed.
l If you select Weekly, you can select one or more days of the week on which to run the scan and a time
when the scan should begin.
l If you select Daily, you can set the time of day when the scan should begin.
l If you select Interval, you can select a scan frequency of anywhere from every 1 minute to every 12
hours.
l Select Off in the dropdown to disable a scan job.
There are two types of synchronization schedules available for CAs—Full and Incremental. You do not
necessarily need to configure both types. A full scan reads all the certificates and certificate requests in
the CA database and synchronizes them to Keyfactor Command regardless of their current state in
Keyfactor Command. An incremental scan reads the certificates and certificate requests in the CA data-
base that have been generated since the last full or incremental scan and synchronizes them to
Keyfactor Command. A common configuration would be a full scan once or twice a week to provide a
clean image of the CA database with a frequent incremental scan to provide timely updates to
Keyfactor Command. For a large CA database, a full scan can take a long time to complete. Since an
incremental scan only synchronizes updates that have occurred to the CA database since the last
synchronization was run, this process is generally quick (other than for the initial synchronization when
Keyfactor Command is first installed). The frequency of the incremental scans would depend on the
volume of certificate requests coming into the CA.
Note: For EJBCA CAs, if the certificate profile has a Validity Offset configured to a value
greater than 10 minutes, certificates requested outside of Keyfactor Command will not be
picked up on incremental scans. These certificates will only appear in Keyfactor Command on
a full synchronization.
Figure 199: EJBCA Certificate Profile Validity Offset Greater than 10 Minutes
For EJBCA CAs, if the certificate profile has Allow Backdated Revocation configured and a
revocation is completed outside of Keyfactor Command with a backdate of greater than 10
minutes, the revocation will not be picked up on incremental scans. These revocations will
only appear in Keyfactor Command on a full synchronization.
In the Enrollment section, check the Enable PFX Enrollment and/or Enable CSR Enrollment box to enable
enrollment for the CA through Keyfactor Command.
Note: In order to perform enrollment through Keyfactor Command, the account making the request
to the CA must be granted appropriate enroll permissions on the CA itself. Which account this is
depends on the authorization configuration (see Authorization Methods Tab on page 321):
l If Use Explicit Credentials is set to true (box checked), enrollment is done in the context of
that explicit user and that user needs permission.
l If Use Explicit Credentials is set to false (box not checked), enrollment is done in the context
of the user authenticated to Keyfactor Command using Kerberos or Basic authentication.
Enrollment is not supported using NTLM authentication.
If desired, check the Require Subscriber Terms box to add a checkbox on the enrollment pages to force users
to agree to a custom set of terms before enrolling. Configure a link to the custom terms using the URL to
Subscriber Terms application setting (see Application Settings: Enrollment Tab on page 559).
Tip: To fully configure enrollment for the CA, you will also need to configure access on the Author-
ization Methods tab (see Authorization Methods Tab on page 321) and configure templates (see Certi-
ficate Template Operations on page 333).
Advanced Tab
In the Details section, if you've opted to use the Keyfactor Universal Orchestrator or Windows Orchestrator to
communicate with a remote CA, check the Use Orchestrator box and choose the appropriate orchestrator
from the dropdown.
Note: The Orchestrator dropdown is only active if the Use Orchestrator box is checked. If Use
Orchestrator is checked, the Orchestrator dropdown will populate with any orchestrators approved
in Keyfactor Command with the CA capability. The Keyfactor Universal Orchestrator or Windows
Orchestrator must be installed on a machine in the forest where the remote CA resides, installed and
configured as per the Universal Orchestrator section of the Keyfactor Orchestrators Installation and
Configuration Guide. In addition, in the Management Portal, the Keyfactor Universal Orchestrator or
Windows Orchestrator must be configured as per Orchestrator Management on page 452.
In the Monitoring section, check the Enable Monitoring box to turn on email alerting when certificate issu-
ance or failures (including denials) since the last threshold alert was sent falls outside the configured limits.
You can choose to schedule the alerts either for daily delivery at a specified time or at intervals of anywhere
from every 1 minute to every 12 hours. Daily is the most common configuration. Set the thresholds for:
l Issuance Greater Than—You will receive an alert if more certificates are issued by this CA in the time
period between executions of the alert than the number you set here. The value set here must be
greater than, or equal to, the value set for Issuance Less Than.
l Issuance Less Than—You will receive an alert if fewer certificates are issued by this CA in the time
period between executions of the alert than the number you set here. The minimum allowed value for
Issuance Less Than is 1.
l Failures Greater Than—You will receive an alert if more certificate requests fail or are denied by this
CA in the time period between executions of the alert than the number you set here. Zero is a valid
setting (meaning you will receive an alert for a single failure).
Note: EJBCA CAs do not return failure counts using the API, so failures cannot be reported on
with threshold monitoring for EJBCA CAs.
In addition to configuring the thresholds for each CA, you must also configure the email recipients on the
Alert Recipients tab (see Certificate Authority Monitoring on page 331) of the Certificate Authorities page.
Monitoring is not supported for CAs accessed with the Keyfactor Universal Orchestrator or Windows Orches-
trator.
Note: If Use Explicit Credentials, Delegate Management Operations and Delegate Enroll-
ment are all set to false (box unchecked), requests to the CA are made in the context of the
Keyfactor Command application pool user. For more information, see the Grant the
Keyfactor Command Users and Service Account(s) Permissions on the CAs section in the
Keyfactor Command Server Installation Guide.
The Use Explicit Credentials option allows you to configure specific credentials that will be used to make
requests to the CA for management tasks and enrollment. This is generally used for Microsoft CAs where
Windows integrated authentication is not supported. Integrated authentication is generally supported for
Microsoft CAs, Keyfactor CA gateways, or Keyfactor CA management gateways on servers joined to the local
Active Directory forest in which Keyfactor Command is installed and any Active Directory forests in a two-
way trust with this forest.
To configure this option, check the Use Explicit Credentials box and enter a username in the format
DOMAIN\username for a service account user in the forest in which the CA resides or, for non-domain-
joined machines, a local machine account on the machine on which the CA is installed. Click the Set Explicit
Password button and in the Set Explicit Password dialog, choose from No Value, Load from Keyfactor
Secrets or Load From PAM Provider.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored securely in
the Keyfactor Command database. Although Keyfactor recommends using Privileged Access Management
(see Privileged Access Management (PAM) on page 639) as a more secure solution to secure information,
Keyfactor Secret is an option for customers that do not already have a relationship with a PAM provider
such as CyberArk or Delinea (formerly Thycotic).
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor Command
to encrypt and store the password in the Keyfactor Command database. Enter and confirm a password.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in the
dialog will then be:
l PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
l PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password (e.g.
Root or Root\MyDir).
l Delinea Secret ID—The numeric ID of the secret to retrieve from Secret Server (see Create a Delinea
Secret Server Secret on page 647).
This service account user needs appropriate permissions in the CA security settings to accomplish the tasks
you plan to carry out for this CA through the Management Portal. For example:
l Certificate enrollment
l Certificate revocation
l Certificate key recovery
l Certificate request approval and denial
These tasks will be carried out on the CA in the context of the credentials you provide here. Access control
for these tasks is controlled with Keyfactor Command security (see Security Roles and Identities on
page 576) and the Restrict Allowed Requesters option, below.
Note: When this option is configured, enrollment and other tasks (e.g. revocation) are done in the
context of the user configured here, not the user making the request in Keyfactor Command. This
overrides the existing AD security policy used by Keyfactor Command.
Note: Once you have established explicit credentials to a forest for a CA, the forest will be included
in the forest dropdown on the Import Templates dialog (see Certificate Templates on page 332).
The Use Explicit Credentials option is not used for EJBCA CAs.
Delegate Management Operations & Delegated Enrollment (Microsoft CAs & CA Gateways)
The Delegate Management Operations and Delegate Enrollment boxes are used for CAs that support integ-
rated authentication to allow interactions with the CAs via Keyfactor Command to be done in the context of
the user authenticated to Keyfactor Command using Kerberos authentication. Integrated authentication is
generally supported for Microsoft CAs, Keyfactor CA gateways, or Keyfactor CA management gateways on
servers joined to the local Active Directory forest in which Keyfactor Command is installed and any Active
Directory forests in a two-way trust with this forest. If delegation is enabled, when a user authenticates
with Kerberos to Keyfactor Command, the Keyfactor Command server can delegate the user's credentials to
the CA to provide end-to-end authentication without unpacking the credentials at the Keyfactor Command
layer.
These options also apply to users who authenticate to Keyfactor Command using Basic authentication, since
Keyfactor Command performs pseudo delegation for these users. These options are not supported for users
who authenticate using NTLM authentication.
If you choose to disable one or both of the delegation options and have not enabled the Use Explicit Creden-
tials option, interaction with the CA for the type of activity that is not delegated (e.g. management oper-
ations) is done in the context of the service account under which the Keyfactor Command application pool
is running. For more information, see Grant the Keyfactor Command Users and Service Account(s) Permis-
sions on the CAs in the Keyfactor Command Server Installation Guide.
Important: If you configure CA delegation and are using Kerberos authentication, you must also
configure Kerberos constrained delegation for the CAs as per the Configure Kerberos Constrained
Delegation (Optional) section in the Keyfactor Command Server Installation Guide.
Note: If a workflow (see Workflow Definitions on page 205) is configured with a step that will
result in a suspended state (e.g. pausing to wait for approvals) and the CA for the request is
configured for delegation, the enrollment or revocation request made via the workflow will fail
with an error indicating that the failure occurred because CA delegation is enabled. Workflows are
not supported with CA delegation in the case where a suspended state may occur because it's
possible that the initiating user's context may not be available all the way to the conclusion of the
workflow.
When using workflow with steps that will result in a suspended state, do not use CA delegation.
Instead, use the Keyfactor Command access control model provided by the Restrict Allowed
Requesters option for enrollment (see Restrict Allowed Requesters (Microsoft and EJBCA CAs)
below) and the Revoke permission for certificates at both the global and collection levels (see Certi-
ficate Permissions on page 587).
If you choose to enable delegation, be aware that each user performing one of these delegable operations
through the Management Portal must have the appropriate permissions to accomplish this task configured
in the CA security settings.
Warning: Granting users permissions in the CA security settings for certificate revocation, certi-
ficate key recovery, or certificate request approval and denial—e.g. the Issue and Manage Certi-
ficates permission—in order to support delegation of these operations through the Management
Portal also grants these permissions to the users when operating outside the Keyfactor Command
Management Portal. Any risk associated with this can be mitigated by implementing the Keyfactor
Command Whitelist Policy Handler on each CA where such permissions are granted (see Using the
Policy Module on page 660).
The Delegate Management Operations and Delegate Enrollment options are not used for EJBCA CAs.
The Restrict Allowed Requesters option is used to select Keyfactor Command security roles that a user
must belong to in order to successfully enroll for certificates in Keyfactor Command via this CA. This option
is supported for all CAs, but it must be used for Microsoft CAs where integrated authentication is not
supported and EJBCA CAs. Integrated authentication is generally supported for Microsoft CAs, Keyfactor CA
gateways, or Keyfactor CA management gateways on servers joined to the local Active Directory forest in
which Keyfactor Command is installed and any Active Directory forests in a two-way trust with this forest.
Since Keyfactor Command cannot make use of the access control model of the CA itself to determine which
users can enroll for certificates at either a template or CA level without using integrated authentication, this
setting replaces that functionality. This setting is similar to setting request certificates for the selected
security roles at the CA level on a Microsoft CA.
Tip: For Microsoft CAs in a two-way trust environment you don't necessarily need to enable
Restrict Allowed Requesters on the CA, though this may be required in some circumstances
depending on the security configuration in the environment. However, templates for a two-way
trust environment always require configuration of this option at a template level to support enroll-
ment (see Certificate Template Operations on page 333).
In addition to granting permissions at the CA level using this option, you need enable the Restrict Allowed
Requesters option to grant permissions on a template-by-template basis (see Certificate Templates on
page 332).
Note: Access control for other types of interactions with the CA (e.g. revocation) is managed with
standard security roles (e.g. the certificate revoke permission) at both the global and certificate
collection level.
Click the Select Authentication Certificate button to upload a client certificate in PKCS#12 format used to
provide authentication to the EJBCA CA. This certificate is used to authenticate to the EJBCA database for
synchronization, enrollment and management of certificates.
Note: Once you have established a connection to the EJBCA CA, it will be included in the forest
dropdown on the Import Templates dialog (see Certificate Templates on page 332).
Check the Enforce RFC 2818 Compliance box to require that certificate enrollments made through the
Keyfactor Command Management Portal for this CA include at least one DNS SAN. This causes the CN entered
in PFX enrollment to automatically be replicated as a SAN, which the user can either change or accept. For
CSR enrollment, if the CSR does not have a SAN that matches the CN, one will automatically be added to the
certificate if this is set.
If you have configured the CA for PFX enrollment on the Basic tab, the Key Retention field dropdown will
display. Select a retention type. Enter the number of days, weeks, months, or years to keep the encrypted
private key stored in the Keyfactor Command database based on the type selected, then select the desired
Configuring private key retention allows the private keys for certificates enrolled through Keyfactor Command
to be stored, encrypted, in the Keyfactor Command database for a user-definable period of time.
l Blank
The private key will not be retained if the box is unchecked, or the blank option is selected.
l Indefinite
The private key will be retained until it is explicitly deleted.
l After Expiration
The private key will be retained until the specified number of days, weeks, months or years after the
certificate expires, at which point it will be scheduled for deletion.
l From Issuance
The private key will be retained until the specified number of days, weeks, months or years after the
date on which the certificate was issued, at which point it will be scheduled for deletion.
Tip: Setting this value to 0 will cause the private keys to be purged by the private key clean up
job when it next runs, after the certificate expires or after the certificate is issued.
5. Click Test and Save to add or update the CA, or click Test Connection to test the CA prior to saving (see Test a
CA Connection on page 309).
Once a CA record has been created for your CA, go to certificate templates (see Certificate Templates on page 332)
and import templates for the CA. Template import is supported for both Microsoft and EJBCA CAs. Template
import is not supported for the following:
l Non-domain-joined standalone Microsoft CAs (these don't use templates)
l CAs accessed via the Keyfactor Universal Orchestrator or Windows Orchestrator
Deleting a CA Record
To delete a CA record:
2. On the Certificate Authorities grid, highlight the row in the CA grid and click Delete at the top of the grid or
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
The two types of monitoring which Keyfactor Command offers for certificate authorities are configured on the
Alert Recipients tab of the Certificate Authorities page at Locations > Certificate Authorities. Monitoring is not
supported for CAs accessed with the Keyfactor Windows Orchestrator or Keyfactor Universal Orchestrator.
1. Configure monitoring on the advanced tab (see links above) for each CA.
2. Set the email recipients for the alerts on the alert recipients tab of the certificate authorities page.
You will need to import templates if you add a new template or change the name or key size of a template after it
has been imported into Keyfactor Command and don't want to wait for the automated import process or have not
configured the automated process (see Importing Certificate Templates on page 334).
Note: When EJBCA templates are imported, they are named using a naming scheme of:
l Short Name: <end entity profile name>_<certificate profile name>
l Display Name: <end entity profile name> (<certificate profile name>)
Only certificate profiles configured as available in a given end entity profile will be imported as templates
associated with the given end entity profile name.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Certificate templates are imported from their source rather than created in Keyfactor Command, which means
there are limited operations that need to be performed in Keyfactor Command in relation to them. Supported
actions on the certificate template page include:
3. In the Select Configuration Tenant dialog, select a configuration tenant in the dropdown.
Tip: Previous versions of Keyfactor Command referred to the Configuration Tenant as the Template
Forest.
If you have a forest in a two-way trusted relationship with the forest in which Keyfactor Command is installed
or have configured a Microsoft CA with the Use Explicit Credentials option or an EJBCA CA, the configuration
tenant for this CA will appear in the dropdown. Import once for each configuration tenant containing
templates that you want to import. The import process may take several seconds.
Note: When EJBCA templates are imported, they are named using a naming scheme of:
l Short Name: <end entity profile name>_<certificate profile name>
l Display Name: <end entity profile name> (<certificate profile name>)
Only certificate profiles configured as available in a given end entity profile will be imported as templates
associated with the given end entity profile name.
Note: System-wide settings replaced and enhanced selected application settings for enrollment begin-
ning in release 10.
1. In the Keyfactor Command Management Portal, browse to Locations > Certificate Templates.
2. On the Certificate Templates page, click System-Wide Settings at the top of the grid.
3. When you open the system-wide settings, you will see three tabs. Configure the system-wide setting inform-
ation with the appropriate data using the following instructions.
4. Click Save to save the system-wide settings. Click Back to return to the certificate templates page.
Regular expressions for enrollment are used to validate that the data entered in the certificate subject fields
meets certain criteria.
Tip: To use a system-wide enrollment regular expression and allow a specific template to bypass that
regular expression, you can configure a template-level regular expression for the desired subject part
and set it to nothing.
1. On the Enrollment RegExes tab, double-click a subject part row in the grid, right-click the row and choose
Edit from the right-click menu, or highlight the row in the grid and click Edit at the top of the grid.
2. On the Enrollment RegEx dialog, in the RegEx field, enter a regular expression against which to validate the
subject part. See Regular Expressions on page 352 for examples.
Enrollment defaults allow you to define default values for select certificate subject parts that will auto-populate
on the PFX enrollment and CSR generation pages in the Keyfactor Command Management Portal.
1. On the Enrollment Defaults tab, double-click a subject part row in the enrollment defaults grid, right-click
the row and choose Edit from the right-click menu, or highlight the row in the grid and click Edit at the top
of the grid.
2. On the Enrollment Default dialog, in the Value field, enter a value to auto-populate in the PFX enrollment
and CSR generation pages of the Keyfactor Command Management Portal. During PFX enrollment or CSR
generation, the user can accept the value or modify it; it is not enforced.
Note: System-wide Enrollment defaults do not apply to requests made with CSR enrollment or the
Keyfactor API.
Tip: See also the Subject Format application setting, which takes precedence over enrollment defaults
at both the system-wide and template level (see Application Settings: Enrollment Tab on page 559 in
the Keyfactor Command Reference Guide).
Policies Tab
Tip: For CA gateways, some cloud providers will automatically include SANs without you needing to
enable the Enforce RFC 2818 Compliance option. Some cloud providers won’t support submission
of a SAN that matches the CN (which is the default when you enable the RFC 2818 option).
Keyfactor recommends disabling this option for CA gateways.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Metadata Types: Modify
PKI Management: Read
PKI Management: Modify
1. In the Keyfactor Command Management Portal, browse to Locations > Certificate Templates.
2. On the Certificate Templates page, double-click the template, right-click the template and choose Edit from
the right-click menu, or highlight the row in the template grid and click Edit at the top of the grid.
3. When you open the certificate template for editing, you will see several tabs. Complete the template inform-
ation with the appropriate data using the following instructions.
Details Tab
The information in the Details section is for reference and cannot be edited. This includes:
l Template Short Name—The common name of the template. This name typically does not contain spaces.
l Template Display Name—The display name of the template.
l Key Size—The minimum supported key size of the template.
l OID—For a Microsoft certificate template, the object ID of the template retrieved from Active Directory. For
an EJBCA certificate template, this field is generated within Keyfactor Command as an object identifier, but
does not follow official OID conventions.
l Curve—For ECC templates, the elliptic curve algorithm defined for the certificate template.
In the Friendly Name section, enter a Friendly Name, if desired. Template friendly names, if configured, appear
in template selection dropdowns in place of the template short names. This can be useful in environments
where the template short names are long or not very human readable. This setting is not required to enable
enrollment or configure private key retention.
In the Allowed Enrollment Types section, click the toggle buttons to enable the options for CSR Enrollment, PFX
Enrollment and/or CSR Generation as desired. Enabling these options causes the template to appear in drop-
downs in the corresponding section of the Management Portal. In the case of CSR Enrollment and PFX Enroll-
ment, the templates only appear in dropdowns on the enrollment pages if they are available for enrollment
from a CA also configured for enrollment within Keyfactor Command (see Adding or Modifying a CA Record on
page 310).
In the Private Key Retention section, click the toggle button to enable Private Key Retention, if desired, and
select the retention type in the dropdown. Enter the number of days, weeks, months, or years to keep the
encrypted private key stored in the Keyfactor Command database based on the type selected, then select the
desired time frame (Day(s), Week(s), Month(s), or Year(s)). You will not have the option to choose a retention
timeframe if you choose Indefinite.
Configuring private key retention allows the private keys for certificates enrolled through Keyfactor Command to
be stored, encrypted, in the Keyfactor Command database for a user-definable period of time.
Note: This does not apply to certificate requests requiring approval at a Keyfactor Command
workflow level.
Tip: Setting this value to 0 will cause the private keys to be purged by the private key clean up job
when it next runs, after the certificate expires or after the certificate is issued.
On the Enrollment Fields tab, you can add custom enrollment fields. These are configured on a per-template
basis to allow you to submit custom fields with CSR enrollments and PFX enrollments to supply custom request
attributes to the CA during the enrollment process. This functionality offers such benefits as:
l Preventing users from requesting invalid certificates, based on your specific certificate requirements per
template.
l Providing additional information to the CA with the request.
Once created on the template, these values are shown in Keyfactor Command on the PFX and CSR enrollment
pages in the Additional Enrollment Fields section. The fields are mandatory during enrollment. The data will
appear on the CA / Issued Certificates attribute tab for certificates enrolled with a template configured with
Keyfactor Command enrollment fields.
Note: These are not metadata fields, so they are not stored in the Keyfactor Command database, but
simply passed through to the CA. The CA in turn could, via a gateway or policy module, use this data to
perform required actions.
On the Enrollment Fields tab you can add, edit and delete enrollment fields.
1. On the Enrollment Fields tab of the selected template click Add. If there are existing fields configured they
will appear in a list on this tab.
2. Enter a Field Name for the new custom field. This name will appear on the enrollment pages.
The Restrict Allowed Requesters option is used to select Keyfactor Command security roles that a user must
belong to in order to successfully enroll for certificates in Keyfactor Command using this template. This is typic-
ally used for EJBCA templates and Microsoft templates that are not in the local Active Directory forest, since in
these cases, Keyfactor Command cannot make use of the access control model of the CA itself to determine
which users can enroll for certificates; this setting replaces that functionality. This setting is similar to setting
request certificates for the selected security roles at the template level on a Microsoft CA. For multi-forest envir-
onments, this setting should be used on any templates from forests other than the Keyfactor Command forest
that will be used for enrollment regardless of the type of trust between the forests, including two-way trusts.
Tip: In addition to granting permissions at the template level, you may need to enable the Restrict
Allowed Requesters option to grant permissions at the CA level (see Adding or Modifying a CA Record
on page 310). This is generally only required for untrusted CAs (including CAs in a forest with a one-way
trust with the forest in which the Keyfactor Command server is located), but may be needed for CAs in a
forest with a two-way trust with the Keyfactor Command forest depending on the security configuration
in the environment.
On the Authorization Methods tab you can add, edit and delete allowed requesters.
To add a new allowed requester, click to toggle the Restrict Allowed Requesters button and:
2. In the Security Role dropdown, select a Keyfactor Command security role (see Security Roles and Identities
on page 576) to grant enrollment permissions on the template.
Metadata Tab
System-wide metadata fields are defined in System Settings (see Certificate Metadata on page 611). Once the
system-wide metadata has been defined, the Enrollment Handling setting can be configured on a template-
specific basis, potentially overriding a system-wide required, hidden or optional setting for that metadata field
on that template, causing only the set of fields configured for the template to appear on the PFX and CSR enroll-
ment pages when the template is selected, and determining if they are required or optional.
Tip: This allows an administrator to apply required, hidden or optional settings to a metadata field on a
per-template basis so that only certain metadata fields appear on certain templates. For example, if
metadata fields A and B are set to required or optional and Metadata field C is set to hidden for the
WebServer template, only A and B will appear during enrollment with that template.
A default value for a metadata field can also be configured that is different from, and overrides, the default
value entered for the system-wide metadata field. For string metadata fields, a regular expression validation and
error message can also be configured on a template-specific basis. The order in which the metadata fields
appear can be changed globally (see Sorting Metadata Fields on page 617).
The Metadata grid columns can be sorted by clicking the column heading (except Default Value). The columns
are:
l Name: The name of the metadata field.
l Data Type: The metadata field type: String, Integer, Date, Boolean, Multiple Choice, or Big Text.
l Enrollment Handling: The handling of the metadata field during enrollment: Optional, Required or Hidden.
l Default Value: The default value during enrollment, if there is one, will be displayed.
l Uses System-Wide Settings: Displays Yes if system-wide settings are in effect for this template, or No if
template-specifc settings are in effect.
1. On the Metadata tab, double-click a row in the metadata grid, right-click the row and choose Edit from the
right-click menu, or highlight the row in the grid and click Edit at the top of the grid.
2. In the Metadata dialog in the System-Wide Settings section, review the existing system-wide settings for the
metadata field.
3. In the Template Settings section, click to toggle the Override system-wide settings button. Configure the
template-level settings for the metadata field. The available fields will vary depending on the type of the
metadata field and may include:
b. Required: This field will be required in order to complete enrollment with this template.
c. Hidden: This field will not be displayed during enrollment with this template.
l Set the Default Value if desired. If no default value is desired, the field may be left blank. For
Multiple Choice type metadata fields, this field will appear as a dropdown where you can select from
the existing values configured for the metadata field.
l If desired, set a RegEx Message and RegEx Validation string specific to the template used to validate
the value upon enrollment entry, and any error message to display if the entry does not match the
regex definition. For more information, see Adding or Modifying a Metadata Field on page 612. This
option is supported for string type metadata fields.
4. Click Save on the Metadata dialog to save changes for each metadata field.
Enrollment Regexes can be applied at either the template-specifc level or system-wide level. Template-level
regular expressions are used to validate that the certificate subject data entered on the CSR enrollment, CSR
generation, and PFX enrollment pages meets certain criteria. Template-level regular expressions differ from
system-wide regular expressions (see Configuring System-Wide Settings on page 335) as they apply on a per-
template basis, rather than system-wide. In the case of a conflict in a regular expression between system-wide
and template-level definitions, the template-level regular expression takes precedence.
Tip: To use a system-wide enrollment regular expression for a subject part and allow a specific
template to bypass that regular expression, you can configure a template-level regular expression for
the desired subject part and set it to no value.
The Enrollment Regexes grid columns can be sorted by clicking the column heading (except Regex and Error).
The columns are:
l Subject Part Full Name: The descriptive name of the certificate subject part (e.g. Common Name).
l Subject Part: The code for the certificate subject information part. For instance, CN=Common Name.
l RegEx: The regular expression to apply to the subject part.
l Error: The error message to display (upon Save when enrolling), when the entry does not meet the specified
criteria.
l Uses System-Wide Settings: Displays Yes if system-wide settings are in effect for this template, or No if
template-specifc settings are in effect.
1. On the Template Regexes tab, double-click a row in the regular expression grid, right-click the row and
choose Edit from the right-click menu, or highlight the row in the grid and click Edit at the top of the grid.
2. In the Enrollment RegEx dialog in the System-Wide Settings section, review the existing system-wide
settings for the subject part.
3. In the Template Settings section, click to toggle the Override system-wide settings button. Enter a regular
expression in the RegEx field. See Regular Expressions on page 352 for examples.
4. In the Error field enter the error message to display during enrollment if the data entered for the subject
part does not meet the validation rule.
5. Click Save on the Enrollment RegEx dialog to save each template-level regular expression.
Template-level enrollment defaults allow you to define default values for certificate subject parts that will auto-
populate on the PFX enrollment and CSR generation pages in the Keyfactor Command Management Portal.
Template-level default values differ from system-wide default values (see Configuring System-Wide Settings on
page 335) as they apply on a per-template basis, rather than system-wide. In the case of a conflict in a default
value between system-wide and template-level definitions, the template-level default values takes precedence.
Note: These default values will not be applied to the additional SANs fields in CSR Enrollment.
Tip: To use a system-wide enrollment default value in a subject part and allow a specific template to
bypass that default value, you can configure a template-level default value for the desired subject part
and set it to no value.
The Enrollment Defaults grid columns can be sorted by clicking the column heading (except Value). The columns
are:
l Subject Part Full Name: The descriptive name of the certificate subject part (e.g. Common Name).
l Subject Part: The code for the certificate subject information part. For instance, CN=Common Name.
l Value: The default value to apply to the subject part.
l Uses System-Wide Settings: Displays Yes if system-wide settings are in effect for this template, or No if
template-specific settings are in effect.
1. On the Enrollment Defaults tab, double-click a row in the defaults grid, right-click the row and choose Edit
from the right-click menu, or highlight the row in the grid and click Edit at the top of the grid.
2. In the Enrollment Default dialog in the System-Wide Settings section, review the existing system-wide
default value for the subject part.
3. In the Template Settings section, click to toggle the Override system-wide settings button. Enter a
template-level default value for the subject part in the Value field.
4. Click Save on the Enrollment Default dialog to save each template-level default.
Tip: See also the Subject Format application setting, which takes precedence over enrollment defaults
at both the system-wide and template level (see Application Settings: Enrollment Tab on page 559 in
the Keyfactor Command Reference Guide).
Policies Tab
Template-level policies allow you to define template-level values for the following settings:
l Allow Wildcards
Enable this option to allow certificates to be created containing wildcards (e.g. *.[Link]) using this
template.
l Allow Public Key Reuse
Enable this option to allow private keys to be reused on certificate renewals made using this template.
l Enforce RFC 2818 Compliance
Enable this option to force certificate enrollments made through Keyfactor Command for this template to
include at least one DNS SAN. In the Keyfactor Command Management Portal, this causes the CN entered in
PFX enrollment to automatically be replicated as a SAN, which the user can either change or accept. For CSR
enrollment, if the CSR does not have a SAN that matches the CN, one will automatically be added to the
certificate if this is set.
Tip: For CA gateways, some cloud providers will automatically include SANs without you needing to
enable the Enforce RFC 2818 Compliance option. Some cloud providers won’t support submission
of a SAN that matches the CN (which is the default when you enable the RFC 2818 option).
Keyfactor recommends disabling this option for CA gateways.
Template-level policies differ from system-wide policies values (see Configuring System-Wide Settings on
page 335) as they apply on a per-template basis, rather than system-wide. In the case of a conflict in a policy
between system-wide and template-level definitions, the template-level policy definition takes precedence.
Several fields on the CSR enrollment, CSR generation, and PFX enrollment pages support using regular expressions
to validate that the data entered in the fields meets certain criteria. Both certificate subject fields and metadata
string fields can be configured with regular expressions. The certificate subject fields that support regular expres-
sions are shown in Table 15: Supported Regular Expressions for Enrollment with Examples.
Regular expressions for enrollment can be defined at a global level to apply to all enrollments and at a template
level to apply only to enrollments done with that template. Template-level definitions take precedence over global
definitions.
Both the regular expressions that do the validation and the error message that the user receives when the valid-
ation fails are user definable. For example, for the common name field you could define a regular expression
similar to the following:
^[a-zA-Z0-9'_\.\-]*\.keyexample\.com$
This regular expression specifies that the data entered in the field must consist of some number of characters in
the first portion of the field made up only of lowercase letters, uppercase letters, numbers, apostrophes, under-
scores, periods, and/or hyphens followed by exactly ".[Link]". Using this regular expression would
prevent users from requesting certificates with common names such as [Link], forcing them to
request certificates for domain names that are valid for your organization. Your error message to the user in this
case might be something like:
CN (Common This regular expression specifies that the data entered in the field must consist of some number of
Name) characters in the first portion of the field made up only of lowercase letters, uppercase letters,
numbers, apostrophes, underscores, periods, and/or hyphens followed by exactly
".[Link]":
^[a-zA-Z0-9'_\.\-]*\.keyexample\.com$
The default value for the Common Name regular expression is:
.+
This requires entry of at least one character in the Common Name field in the enrollment pages.
O (Organization) This regular expression requires that the organization name entered in the field be one of "Key
Example Inc", "Key Example" or "Key Example Inc.":
^(?:Key Example Inc|Key Example|Key Example, Inc\.)$
The period in the final company name (Key Example, Inc.) needs to be escaped in the regular
expression with a slash ("\") but the comma does not.
OU (Organization This regular expression requires that the organizational unit entered in the field be one of these
Unit) four departments:
^(?:IT|HR|Accounting|E-Commerce)$
L (City/Locality) This regular expression requires that the city entered in the field be one of these five cities:
^(?:Boston|Chicago|New York|London|Dallas)$
ST (State/Province) This regular expression requires that the state entered in the field be one of these eight states:
^(?:Massachusetts|Illinois|New York|Ontario|Texas)$
C (Country) This regular expression requires that the country entered in the field be either US or CA:
^(?:US|CA)$
E (Email) This regular expression specifies that the data entered in the field must consist of some number of
characters prior to the "@" made up only of lowercase letters, uppercase letters, numbers,
apostrophes, underscores, periods, and/or hyphens followed by exactly "@[Link]":
^[a-zA-Z0-9'_\.\-]*@keyexample\.com$
DNS (Subject Altern- This regular expression specifies that the data entered in the field must consist of some number of
ative Name: DNS characters in the first portion of the field made up only of lowercase letters, uppercase letters,
Name) numbers, apostrophes, underscores, periods, and/or hyphens followed by exactly either
".[Link]" or ".[Link]":
^[a-zA-Z0-9'_\.\-]*\.(?:keyexample1\.com|keyexample2\.com)$
IPv4 (Subject Altern- This regular expression specifies that the data entered in the field must be exactly "130.101."
ative Name: IPv4 followed by anywhere between 1 and 3 numbers followed by exactly "." followed by anywhere
Address) between 1 and 3 numbers:
^130\.101\.(?:[0-9]{1,3})\.(?:[0-9]{1,3})$
This regular expression specifies only that the IPv4 address is made up of 4 sets of between 1 and 3
numbers separated by periods:
^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$
IPv6 (Subject Altern- This regular expression specifies that the data entered in the field must be made up of eight sets of
ative Name: IPv6 between one and four numbers and/or uppercase letters separated by colons:
Address) ^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$
MAIL (Subject This regular expression specifies that the data entered in the field must consist of some number of
Alternative Name: characters prior to the "@" made up only of lowercase letters, uppercase letters, numbers,
Email) apostrophes, underscores, periods, and/or hyphens followed by exactly "@[Link]":
^[a-zA-Z0-9'_\.\-]*@keyexample\.com$
UPN (Subject Altern- This regular expression specifies that the data entered in the field must consist of some number of
ative Name: User characters prior to the "@" made up only of lowercase letters, uppercase letters, numbers,
Principal Name) apostrophes, underscores, periods, and/or hyphens followed by exactly "@[Link]":
^[a-zA-Z0-9'_\.\-]*@keyexample\.com$
FFor more information about configuring regular expressions on metadata fields, see Certificate Metadata on
page 611.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
DisplayName ShortName
Complete or partial matches with the name of the Complete or partial matches with the template Short
template Display Name. Name.
AllowedEnrollmentType HasPrivateKeyRetention
Complete or partial matches with allowed enrollment Private Key Retention is selected for this template (true/-
types on the template. false).
IsDefaultTemplate KeyType
The template is one of the Microsoft default templates Complete or partial matches with the key type signing
(true/false). This is helpful to filter out the templates that algorithm.
you did/didn't create.
ForestRoot
ConfigurationTenant
Complete or partial matches with the forest location.
Complete or partial matches with the Configuration NOTE: This will be deprecated in a future release and
Tenant name. replaced with ConfigurationTenant.
FriendlyName
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
Certificate stores are managed by configuring the store locations through the Management Portal, assigning an
inventory schedule, and optionally assigning stores to containers (groups) for ease of management. You can create
records for stores in the Management Portal manually or by using the discovery feature (Java keystore, PEM, and
F5 REST only among the built-in stores—custom modules used by the AnyAgent framework may support
discovery).
Managing certificate store requires that an appropriate instance of a Keyfactor orchestrator is running in the envir-
onment and has been approved in the Management Portal (see Orchestrator Management on page 452). Java and
PEM certificate stores can be managed with an instance of the Keyfactor Java Agent running on the machine
where the Java and PEM certificate stores are located. Amazon Web Services (AWS), F5, File Transfer Protocol
(FTP), and NetScaler certificate store can be management with the Keyfactor Universal Orchestrator1 or Windows
Orchestrator running in a network location that has access to both the Keyfactor Command server and the internet
(AWS) or the FTP, F5 or NetScaler machine(s) or device(s). Managing IIS certificate stores requires an instance of
the Keyfactor Universal Orchestrator or Windows Orchestrator running on a domain-joined server in the same AD
forest as the IIS server(s) and the Keyfactor Command server.
Once your certificate stores have been inventoried and their certificates imported into Keyfactor Command, you
can use the standard Management Portal features for managing certificates—such as Expiration Alerts (see Expir-
ation Alerts on page 150)—to manage the certificates from the certificate store locations even if the certificates
were not generated by your Keyfactor Command configured CAs.
Most certificate store types can use Privileged Access Management (PAM) or Keyfactor Secrets to manage pass-
words on the certificate stores. Certificate store types not supported for this include PEM, IIS Personal, IIS
Revoked, and IIS Trusted Roots (because these stores do not require storage of a password).
Certificates and keys for the F5 CA Bundles REST are those Certificates and keys for the F5 Web Server REST are those
found within F5 Bundles. Note that the ca-bundle cannot used by the device itself for the F5 portal and the API. This
be managed with Keyfactor Command, as it is protected certificate is referred to as the device certificate within the
and managed directly by F5. Only the Include Bundles may F5 interface. This option uses the F5 iControl REST API. It is
be managed with this option. This option uses the F5 iCon- intended to be used with BIG-IP versions 13 and later. The
1Support for some of this functionality on the Keyfactor Universal Orchestrator requires the addition of a custom
extension. Contact your Keyfactor representative for more information.
F5 SSL Profiles
IIS Trusted Roots
Certificates and keys for the F5 SSL Profiles are those used
by any applications configured for use by the F5 device. The Trusted Root Certification Authorities store of the
These are certificates that are available in the F5 interface local computer.
as the SSL certificate list. This option uses the F5
SOAP API. It is intended to be used with BIG-IP version 12. IIS Personal
Certificates and keys for the F5 SSL Profiles REST are those
used by any applications configured for use by the F5
device. These are certificates that are available in the F5
interface as the SSL certificate list. This option uses the F5
iControl REST API. It is intended to be used with BIG-IP
versions 13 and later. The REST version of F5 SSL Profiles
supports certificate discovery on the F5 device and F5 high
availability.
F5 Web Server
Certificates and keys for the F5 Web Server are those used
by the device itself for the F5 portal and the SOAP API.
This certificate is referred to as the device certificate
within the F5 interface. This option uses the F5 SOAP API.
It is intended to be used with BIG-IP version 12.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Orchestrator has been approved and made available to Complete or partial matches with one or more certificate
manage certificate store jobs (true/false). store containers.
Orchestrator Id matches or doesn’t match the entered Certificate store has an inventory job scheduled (true/-
GUID (primarily used for internally generated searches false).
when the user is redirected here from another page).
Store Path
Category
Complete or partial matches with the full path to a certi-
Certificate store matches or doesn’t match the selected ficate store—e.g. /opt/application/[Link] or c:\pro-
category—Amazon Web Services, F5 CA Bundles REST, F5 gram files\application\[Link].
SSL Profiles, F5 SSL Profiles REST, F5 Web Server, F5 Web
Server REST, File Transfer Protocol, IIS Personal, IIS
Revoked, Java Keystore, NetScaler, or PEM File.
Client Machine
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid for every column except
Inventory Schedule and Orchestrator Available. Click the column header again to reverse the sort order. The grid
columns can be arranged in any order desired by click-holding and dragging the header of the column you wish to
move. The column widths may be adjusted by click-holding and dragging the line separating two column headers.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
To select a single row in the certificate store grid, click to highlight it and then select an operation from either the
top of the grid or the right-click menu. The delete, schedule inventory and assign container operations can be done
on multiple certificate stores at once. To select multiple rows, click the checkbox for each row on which you would
like to perform an operation. Then select an operation from the top of the grid. The selected stores must all be of
the same category (e.g. PEM or Java) to perform the assign container operation. The right-click menu supports
operations on only one store at a time.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Agent Management: Read
Certificate Store Management: Read
Certificate Store Management: Modify
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, click Add to create a new store location, or click Edit from either the top or
right-click menu to modify an existing one.
4. In the Certificate Stores dialog, select the type of certificate store in the Category dropdown. This field cannot
be modified on an edit.
5. In the Container field, select a container into which to place the store for organization from your previously
defined list, if desired. This field is optional. If no container matching the type of certificate store you are
adding exists, no containers will be available in the dropdown (see Certificate Store Container Operations on
page 395). Leave blank if you do not wish the certificate store to be associated with a specific store container.
If you are using PAM and choose not to select a container, you will need to have created a PAM provider (see
PAM Provider Configuration in Keyfactor Command on page 651) with no certificate store container in order
for it to be available for selection when setting a user or password.
1Support for this functionality on the Keyfactor Universal Orchestrator requires the addition of a custom exten-
sion. Contact your Keyfactor representative for more information.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Tip: F5 CA bundle stores can be added using the certificate store discovery option rather than manu-
ally, if desired (see Certificate Store Discovery on page 398).
l Enter the fully qualified domain name of the F5 device (or F5 cluster for a high availability deployment)
on which the certificate store is located in the Client Machine field. This field cannot be modified on
an edit.
l In the Store Path field, enter the path to the CA bundle on the F5 device into which you want to install
the certificate (e.g. /Common/myca-bundle). The Store Path name is case sensitive, so, for example, if
the partition name on the F5 is "Common" it must be entered in the Store Path field as "Common"
rather than "common". This field cannot be modified on an edit.
l Select the name of the Keyfactor Universal Orchestrator1 or Windows Orchestrator machine that will
manage the stores in the Orchestrator dropdown. The orchestrator must be approved in order to
appear here. Some orchestrators can be configured for auto-approval. See Orchestrator Auto-Regis-
tration on page 446 and Orchestrator Management on page 452.
l In the Primary Node field, enter the fully qualified domain name of the F5 device that acts as the
primary node in a highly available F5 implementation. If you're using a single F5 device, this will often
be the same value you entered in the Client Machine field.
Tip: Configuration of the primary node is necessary to allow management jobs that update
certificates on the F5 device to wait until the primary node is available before making their
update. Inventory jobs are carried out against any available node.
l In the Primary Node Check Retry Wait Seconds field, either accept the default value of 120 seconds or
enter a new value. This value represents the number of seconds the orchestrator will wait after a
pending management job cannot be completed because the primary node cannot be contacted before
trying to contact the primary node again to retry the job.
l In the Primary Node Check Retry Maximum field, either accept the default value of 3 retry attempts
or enter a new value. This value represents the number of times the orchestrator will retry a pending
management job that is failing because the primary node cannot be contacted before declaring the job
failed.
l In the Version of F5 dropdown, select the version of F5 this server is running. The F5 REST API is
supported on version 13 and up.
l Click Set Server Username to choose the source from which to load a user valid on the F5 device with
Administrator permissions. In the Server Username dialog, the options are Load From Keyfactor
Note: Although a user with Resource Administrator permissions is sufficient when using the
F5 methods that use the SOAP API, the F5 methods that use the REST API require full Admin-
istrator permissions.
l Click Set Server Password to choose the source to load a valid password for the server. In the Server
Password dialog, the options are Load From Keyfactor Secrets or Load From PAM Provider. The No
Value option is typically not supported for F5 stores.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored
securely in the Keyfactor Command database. Although Keyfactor recommends using Privileged Access
Management (see Privileged Access Management (PAM) on page 639) as a more secure solution to
secure information, Keyfactor Secret is an option for customers that do not already have a relationship
with a PAM provider such as CyberArk or Delinea (formerly Thycotic).
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor
Command to encrypt and store the password in the Keyfactor Command database. Enter and confirm
a password.
Select the Load from PAM Provider radio button as the Secret Source if you want to store the pass-
word in a supported third-party PAM solution (see Privileged Access Management (PAM) on
page 639). The remaining fields on the dialog will vary depending on the PAM provider.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Tip: F5 SSL profile stores can be added using the certificate store discovery option rather than manu-
ally, if desired, if you opt to select the REST connection method (see Certificate Store Discovery on
page 398).
l Enter the fully qualified domain name of the F5 device (or F5 cluster for a high availability deployment)
on which the certificate store is located in the Client Machine field. This field cannot be modified on
an edit.
l In the Store Path field, enter the name of the partition on the F5 device into which you want to install
the certificate. The Store Path name is case sensitive, so if the partition name on the F5 is "Common" it
Tip: Configuration of the primary node is necessary to allow management jobs that update
certificates on the F5 device to wait until the primary node is available before making their
update. Inventory jobs are carried out against any available node.
l In the Primary Node Check Retry Wait Seconds field, either accept the default value of 120 seconds or
enter a new value. This value represents the number of seconds the orchestrator will wait after a
pending management job cannot be completed because the primary node cannot be contacted before
trying to contact the primary node again to retry the job.
l In the Primary Node Check Retry Maximum field, either accept the default value of 3 retry attempts
or enter a new value. This value represents the number of times the orchestrator will retry a pending
management job that is failing because the primary node cannot be contacted before declaring the job
failed.
l In the Version of F5 dropdown, select the version of F5 this server is running. The F5 REST API is
supported on version 13 and up.
l Click Update Server Username to choose the source from which to load a user valid on the F5 device
with Administrator permissions. In the Server Username dialog, the options are Load From Keyfactor
Secrets or Load From PAM Provider. The No Value option is typically not supported for F5 stores.
Note: Although a user with Resource Administrator permissions is sufficient when using the
F5 methods that use the SOAP API, the F5 methods that use the REST API require full Admin-
istrator permissions.
l Click Update Server Password to choose the source to load a valid password for the server. In the
Server Password dialog, the options are Load From Keyfactor Secrets or Load From PAM Provider. The
No Value option is typically not supported for F5 stores.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
l In the Primary Node Check Retry Wait Seconds field, either accept the default value of 120 seconds or
enter a new value. This value represents the number of seconds the orchestrator will wait after a
pending management job cannot be completed because the primary node cannot be contacted before
trying to contact the primary node again to retry the job.
l In the Primary Node Check Retry Maximum field, either accept the default value of 3 retry attempts
or enter a new value. This value represents the number of times the orchestrator will retry a pending
management job that is failing because the primary node cannot be contacted before declaring the job
failed.
l In the Version of F5 dropdown, select the version of F5 this server is running. The F5 REST API is
supported on version 13 and up.
l Click Update Server Username to choose the source from which to load a user valid on the F5 device
with Administrator permissions. In the Server Username dialog, the options are Load From Keyfactor
Secrets or Load From PAM Provider. The No Value option is typically not supported for F5 stores.
Note: Although a user with Resource Administrator permissions is sufficient when using the
F5 methods that use the SOAP API, the F5 methods that use the REST API require full Admin-
istrator permissions.
l Click Update Server Password to choose the source to load a valid password for the server. In the
Server Password dialog, the options are Load From Keyfactor Secrets or Load From PAM Provider. The
No Value option is typically not supported for F5 stores.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored
securely in the Keyfactor Command database. Although Keyfactor recommends using Privileged Access
Management (see Privileged Access Management (PAM) on page 639) as a more secure solution to
secure information, Keyfactor Secret is an option for customers that do not already have a relationship
with a PAM provider such as CyberArk or Delinea (formerly Thycotic).
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor
Command to encrypt and store the password in the Keyfactor Command database. Enter and confirm
a password.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
l Enter the fully qualified domain name of the server on which the certificate store is located in the
Client Machine field. This field cannot be modified on an edit.
l The Store Path is configured to a fixed value for this type of store and cannot be changed.
l Select the name of the Keyfactor Universal Orchestrator or Windows Orchestrator machine that will
manage the stores in theOrchestrator dropdown. The orchestrators must be approved in order to
appear here. Some orchestrator can be configured for auto-approval. See Orchestrator Auto-Regis-
tration on page 446 and Orchestrator Management on page 452.
Tip: When managing IIS stores, the orchestrator does so with the account it’s running as (its
own service account credentials). The orchestrator service account needs sufficient permis-
sions to be able to install, delete, and update certificates. Typically, this would be a domain
account that has local administrator permission on the IIS machines it needs to manage.
l In the Use SSL section, select True to cause the orchestrator to use SSL over port 5986 (by default)
when communicating with IIS targets using Microsoft Windows Remote Management (WinRM).
Selecting False will cause communications to occur over port 5985 (by default). WinRM HTTPS is not
enabled by default. For more information, see Configure the Targets for IIS Management in the
Keyfactor Orchestrators Installation and Configuration Guide.
Tip: Java keystores can be added using the certificate store discovery option rather than manually, if
desired (see Certificate Store Discovery on page 398).
l Enter the fully qualified domain name of the machine on which the keystore is or will be located in the
Client Machine field. This field cannot be modified on an edit.
l In the Store Path field, enter the full path to the keystore on that machine, including the file name.
Paths and filenames entered for Linux/UNIX machines are case sensitive. This field cannot be modified
on an edit.
l Select the Type from the dropdown. The available types are:
o JKS
Standard Java keystore.
o PKCS12
PKCS12 type files (e.g. P12 or PFX), which are discoverable with the Java Agent using compat-
ibility mode introduced in Java version 1.8.
o Windows-My
Windows local machine personal certificate store. This option is only supported with a custom
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Tip: PEM stores can be added using the certificate store discovery option rather than manually, if
desired (see Certificate Store Discovery on page 398).
l Enter the fully qualified domain name of the machine on which the certificate store is located in the
Client Machine field. This field cannot be modified on an edit.
l In the Store Path field, enter the full path to the store on that machine, including the file name. Paths
and filenames entered for Linux/UNIX machines are case sensitive. This field cannot be modified on an
edit.
l In the Separate Private Key section, select True if the private key for the certificate is stored in a
separate file from the certificate.
6. In the Inventory Schedule fields, select an inventory schedule for the store, if desired. You can choose to run
the inventory Daily, on an Interval, Immediately, Exactly Once, or set inventorying to Off.
l If you select Daily, you can set the time of day when the inventory should begin every day.
l If you select Interval, you can select a scan frequency of anywhere from every 1 minute to every 12
hours.
l If you select Immediate, the inventory will run within a few minutes of saving the record and will run
only once. After this, the inventory schedule will be cleared.
l If you select Exactly Once, you can select a date and time at which to run the inventory job. After the
job has run, the inventory schedule will be cleared.
l Select Off to disable the inventory job.
If you are using Certificate Store Containers (see Certificate Store Containers on page 392) to manage your
stores and their schedules you do not need to set an inventory schedule here.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row(s) in the certificate store grid of the store(s) to delete and click
Delete at the top of the grid or right-click the store location in the grid and choose Delete from the right-click
menu. The right-click menu supports operations on only one store at a time.
4. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Note: This doesn't delete the actual certificate store on the target server, just the Keyfactor Command
definition of it.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Agent Management: Read
Certificate Store Management: Read
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row in the certificate store grid of the store for which to view certi-
ficate store details and click View at the top of the grid or right-click the store location in the grid and choose
View from the right-click menu.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Enrollment: Enroll CSR
Certificate Store Management: Read
Certificate Store Management: Modify
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
In addition, the either the user scheduling the reenrollment job or the user configured to provide authen-
tication to the CA (see Authorization Methods Tab on page 321) must have enrollment permissions
configured on the CA and template.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row in the certificate store grid of the store to reenroll and click
Reenrollment at the top of the grid or right-click the store location in the grid and choose Reenrollment from
the right-click menu.
4. On the Reenrollment dialog, enter a Subject Name for the new certificate using X.500 format and add an Alias
for Java stores. PEM store reenrollments do not display the Alias field.
5. If desired, select a Certificate Authority to direct the enrollment request to and/or Template for the request.
Note: If you don't select a template or CA for reenrollment, the values configured for the "Template
For Submitted CSRs" and/or "Certificate Authority For Submitted CSRs" application setting(s) (see
Application Settings on page 553) will be used.
The reenrollment job will be scheduled to run immediately. Visit the Orchestrator Jobs page to check on the
progress of the job (see Orchestrator Job Status on page 465).
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row in the certificate store grid of the store to update and choose
Set New Password from the right-click menu.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row(s) in the certificate store grid of the store(s) to be assigned to
the container and click Assign Container at the top of the grid or right-click the store location in the grid and
choose Assign Container from the right-click menu. The right-click menu supports operations on only one
4. Select a certificate store container in the Container Name field and click Save.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Privileged Access Management: Read
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
3. On the Certificate Stores tab, highlight the row in the certificate store grid of the store for which to view
inventory and click View Inventory at the top of the grid or right-click the store location in the grid and
choose View Inventory from the right-click menu.
On the left of the inventory viewing dialog you can select a certificate from the store to view. On the right of the
dialog you can see details about that certificate, including the metadata associated with the certificate. In the Certi-
ficate Selection area of the screen, you can select between the chain certificates for the selected certificate and
the end entity certificate, for certificates stored with a chain.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Schedule
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
To schedule inventory:
2. On the Certificate Stores page, select the Certificate Stores tab (the default when you first visit the page).
4. In the Certificate Store Inventory Schedule dialog, select a schedule for the store(s). You can choose to run the
inventory Daily, on an Interval, Immediately, Exactly Once, or set inventorying to Off.
l If you select Daily, you can set the time of day when the inventory should begin every day.
l If you select Interval, you can select a scan frequency of anywhere from every 1 minute to every 12
hours.
l If you select Immediate, the inventory will run within a few minutes of saving the record and will run
only once. After this, the inventory schedule will be cleared.
l If you select Exactly Once, you can select a date and time at which to run the inventory job. After the
job has run, the inventory schedule will be cleared.
l Select Off to disable the inventory job.
You have the option to not schedule inventory on a store-by-store basis and instead create containers and set
inventory schedules that will apply to all the stores added to each container. See Certificate Store Containers
below for information on creating containers.
Certificate store containers allow you to collect similar stores together to provide organization, allow for simplified
bulk operations and control access.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Name CertStoreType
Complete or partial matches with the name of the The certificate store type of the container.
container.
Schedule
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
The results that match your search criteria will be displayed in the results grid below the search selection options.
The search results can be sorted by clicking on a column header in the results grid for most columns. Click the
column header again to reverse the sort order. The grid columns can be arranged in any order desired by click-
holding and dragging the header of the column you wish to move. The column widths may be adjusted by click-
holding and dragging the line separating two column headers.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
Certificate store container operations include creating or editing containers—including scheduling inventory for
the container—and deleting containers.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
3. On the Containers tab, click Add to create a new container, or click Edit from either the top or right-click
menu to modify an existing one.
4. In the Schedule Container dialog, select the appropriate Type for the container from the dropdown. This field
cannot be modified on an edit.
6. In the Inventory Schedule fields, select an inventory frequency to apply as a default to certificate stores
added to the container. The choices are:
l Daily at a selected time
l At intervals of anywhere from every one minute to every 12 hours
l Off
7. If desired, check the Overwrite Existing Schedules box. This option will apply the schedule from the container
to any stores in the container, including those that already have a schedule, whenever the container schedule
is updated.
Deleting a Container
Deleting a container that contains certificate stores does not delete the associated certificate stores. The certi-
ficate stores will remain and be disassociated from the container.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
4. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Container Permissions
Permissions for a container can be viewed or modified using the permission option on the certificate store
containers tab. Container permissions can also be configured as part of the overall permission configuration on the
security roles page. For more information, see Container Permissions on page 590 and Security Roles and Iden-
tities on page 576.
3. On the Containers tab, highlight the row in the certificate store containers grid of the container for which to
view permissions and click Permissions at the top of the grid or right-click the container in the grid and
choose Permissions from the right-click menu.
4. In the Container Permissions dialog, review the permissions (Read, Schedule, and Modify) configured for each
defined security role. To limit the security roles shown in the container permissions dialog, type a string in the
filter box at the top of the dialog. For example, using a filter of "er" in the below-shown dialog will limit the
results to Power Users, Renewal Handler API, and Revokers.
Active checks indicate the top level permission that has been granted. Grayed out checks indicate permissions
that have been inherited.
5. Click Save if you've made any changes, or just Close to close the dialog.
The certificate store discovery feature is used to scan machines and devices for existing certificates and certificate
stores, which can then be configured for management in Keyfactor Command. Certificate store discovery is
supported for the following built-in features:
l PEM and Java certificate stores discovered by the Keyfactor Java Agent. Only stores to which the service
account running the Keyfactor Command Java Agent has at least read permissions will be returned on a
discover job.
l F5 bundle and SSL certificates discovered by the Keyfactor Windows Orchestrator on F5 devices using the F5
REST API (v13+).
The small number that appears on the tab to the right of the word Discover indicates how many discovered stores
there are, if any. This acts as a reminder to check the discover tab for stores after a discovery job is complete.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Schedule
Certificate Store Management: Modify
Privileged Access Management: Read
3. In the Schedule Discovery dialog, select Java Keystore, PEM File, F5 CA Bundles REST, or F5 SSL Profiles REST in
the Category field dropdown. The remaining fields in the dialog will vary slightly depending on the category
you selected.
Java Keystores
4. In the Schedule Discovery dialog, select Java Keystore, PEM File, F5 CA Bundles REST, or F5 SSL Profiles REST in
the Category field dropdown. The remaining fields in the dialog will vary slightly depending on the category
you selected.
5. In the Orchestrator field, select the fully qualified domain name of the Keyfactor Universal Orchestrator1,
Windows Orchestrator, or Java Agent machine managing the scanning. In the case of Java Agents, this is also
the machine you wish to scan for stores. This field is required.
6. In the Schedule dropdown, select either Immediate, to run the discover job within a few minutes of saving it,
or Exactly Once, to select a date and time for the job. The default is Immediate.
7. For F5 discovery jobs, in the Client Machine field enter the fully qualified domain name or IP address of the F5
device to be scanned.
1Support for this functionality on the Keyfactor Universal Orchestrator requires the addition of a custom exten-
sion. Contact your Keyfactor representative for more information.
Note: Although a user with Resource Administrator permissions is sufficient when using the F5
methods that use the SOAP API, the F5 methods that use the REST API require full Administrator
permissions.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored securely in
the Keyfactor Command database. Although Keyfactor recommends using Privileged Access Management (see
Privileged Access Management (PAM) on page 639) as a more secure solution to secure information,
Keyfactor Secret is an option for customers that do not already have a relationship with a PAM provider such
as CyberArk or Delinea (formerly Thycotic).
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor Command to
encrypt and store the password in the Keyfactor Command database. Enter and confirm a password.
Select the Load from PAM Provider radio button as the Secret Source if you want to store the password in a
supported third-party PAM solution (see Privileged Access Management (PAM) on page 639). The remaining
fields on the dialog will vary depending on the PAM provider.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in the
dialog will then be:
l PrivateArk Protected Password Name—The name of the username or password in the safe (see Create
a CyberArk Password on page 644).
l PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password (e.g.
Root or Root\MyDir).
l Delinea Secret ID—The numeric ID of the secret to retrieve from Secret Server (see Create a Delinea
Secret Server Secret on page 647).
9. For F5 discovery jobs, click Set Server Password and, in the Server Password dialog, choose the source from
which to load the password for the user specified with Set Server Username. In the Server Password dialog,
the options are Load From Keyfactor Secrets or Load From PAM Provider. The No Value option is typically not
supported for F5 stores.
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor Command to
encrypt and store the password in the Keyfactor Command database. Enter and confirm a password.
Select the Load from PAM Provider radio button as the Secret Source if you want to store the password in a
supported third-party PAM solution (see Privileged Access Management (PAM) on page 639). The remaining
fields on the dialog will vary depending on the PAM provider.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in the
dialog will then be:
l PrivateArk Protected Password Name—The name of the username or password in the safe (see Create
a CyberArk Password on page 644).
l PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password (e.g.
Root or Root\MyDir).
l Delinea Secret ID—The numeric ID of the secret to retrieve from Secret Server (see Create a Delinea
Secret Server Secret on page 647).
10. In the Directories to search field, specify the directory or directories to search. Multiple directories should be
separated by commas. This field is required.
Java
For Java discovery, enter at a minimum either "/" for a Linux server or "c:\" for a Windows server (without the
quotation marks).
PEM
For PEM discovery, enter at a minimum either "/" for a Linux server or "c:\" for a Windows server (without
the quotation marks).
F5
For F5 discovery, enter "/" (without the quotation marks).
12. Populate the remaining optional fields as needed. See Table 16: Discovery Options.
13. Click Save to schedule the discovery task. Once the scan begins, it may take several minutes to complete.
14. Return to the Discover tab for the results of the scan. Check the Orchestrator Jobs page (see Orchestrator Job
Status on page 465) to review jobs in progress.
Table 16: Discovery Options
Option Description
Orchestrator Select the fully qualified domain name of the Keyfactor Universal Orchestrator, Windows Orches-
trator, or Java Agent machine managing the scanning. In the case of Java Agents, this is also the
machine to be scanned for certificate stores. This field is required.
Schedule Specify the schedule for the scan—Immediate or Exactly Once. If you select Exactly Once, select a date
and time for the scan. The default is Immediate.
Client Machine For F5 devices, enter the fully qualified domain name or IP address of the F5 device or cluster to be
scanned for certificates. This option applies only to F5 CA bundle and F5 SSL profile discover jobs. This
field is required.
Server User- For F5 devices, set the username used to authenticated to the device or cluster.
name
Server Password For F5 devices, set the password used to authenticated to the device or cluster.
Directories to Specify the directory or directories to be searched. Multiple directories should be separated by
search commas. All directories specified to which the service account user (the user account that the Java
agent is operating as or the user configured for the F5 device using the Change Credentials option) has
read rights will be searched other than the excluded directories specified using the "Directories to
ignore" option. It is not necessary to use quotation marks around directory paths containing spaces.
For F5, the path should be specified as "/" (without the quotation marks). This field is required.
Directories to Specify any directories that should not be included in the search. Multiple directories should be separ-
ignore ated by commas. It is not necessary to use quotation marks around directory paths containing spaces.
Extensions Specify file extensions for which to search. For example, search for files with the extension jks but not
txt. The dot should not be included when specifying extensions.
File name Specify all or part of a string against which to compare the file names of certificate store files and
patterns to return only those that contain the specified string. It is not necessary to use quotation marks around
match strings containing spaces.
Follow SymLinks If this option is specified, the tool will follow symbolic links on Linux and UNIX operating systems and
report both the actual location of a found certificate store file in addition to the symbolic link pointing
to the file. This option is ignored for searches of Windows-based Java Agents.
Include PKCS12 If this option is specified, the tool will use the compatibility mode introduced in Java version 1.8 to
Files locate both JKS and PKCS12 type files. This option applies only to Java keystore discover jobs.
Use SSL For F5 devices, use SSL to communicate to the device or cluster.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
Privileged Access Management: Read
3. On the Discover tab, highlight one or more store row(s) in the grid and click Manage at the top of the grid or
right-click the store in the grid and choose Manage from the right-click menu. Java keystores require entry of
the store password or PAM credential access information during the approval process. If you select more than
one Java keystore for approval at the same time, they must all share the same password or PAM information.
The right-click menu supports operations on only one store at a time.
Tip: Configuration of the primary node is necessary to allow management jobs that update
certificates on the F5 device to wait until the primary node is available before making their
update. Inventory jobs are carried out against any available node.
l In the Primary Node Check Retry Wait Seconds field, either accept the default value of 120 seconds or
enter a new value. This value represents the number of seconds the orchestrator will wait after a
pending management job cannot be completed because the primary node cannot be contacted before
trying to contact the primary node again to retry the job.
l In the Primary Node Check Retry Maximum field, either accept the default value of 3 retry attempts
or enter a new value. This value represents the number of times the orchestrator will retry a pending
management job that is failing because the primary node cannot be contacted before declaring the job
failed.
l In the Version of F5 dropdown, select the version of F5 this server is running. The F5 REST API is
supported on version 13 and up.
l Click Set Server Username to choose the source from which to load a user valid on the F5 device with
Administrator permissions. In the Server Username dialog, the options are Load From Keyfactor
Secrets or Load From PAM Provider. The No Value option is typically not supported for F5 stores.
Note: Although a user with Resource Administrator permissions is sufficient when using the
F5 methods that use the SOAP API, the F5 methods that use the REST API require full Admin-
istrator permissions.
l Click Set Server Password to choose the source to load a valid password for the server. In the Server
Password dialog, the options are Load From Keyfactor Secrets or Load From PAM Provider. The No
Value option is typically not supported for F5 stores.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored
securely in the Keyfactor Command database. Although Keyfactor recommends using Privileged Access
Management (see Privileged Access Management (PAM) on page 639) as a more secure solution to
secure information, Keyfactor Secret is an option for customers that do not already have a relationship
with a PAM provider such as CyberArk or Delinea (formerly Thycotic).
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
Tip: Configuration of the primary node is necessary to allow management jobs that update
certificates on the F5 device to wait until the primary node is available before making their
update. Inventory jobs are carried out against any available node.
l Click Set Server Username to choose the source from which to load a user valid on the F5 device with
Administrator permissions. In the Server Username dialog, the options are Load From Keyfactor
Secrets or Load From PAM Provider. The No Value option is typically not supported for F5 stores.
Note: Although a user with Resource Administrator permissions is sufficient when using the
F5 methods that use the SOAP API, the F5 methods that use the REST API require full Admin-
istrator permissions.
l Click Set Server Password to choose the source to load a valid password for the server. In the Server
Password dialog, the options are Load From Keyfactor Secrets or Load From PAM Provider. The No
Value option is typically not supported for F5 stores.
A Keyfactor secret is a user-defined password or other information that is encrypted and stored
securely in the Keyfactor Command database. Although Keyfactor recommends using Privileged Access
Management (see Privileged Access Management (PAM) on page 639) as a more secure solution to
secure information, Keyfactor Secret is an option for customers that do not already have a relationship
with a PAM provider such as CyberArk or Delinea (formerly Thycotic).
Select the Load From Keyfactor Secrets radio button as the Secret Source if you want Keyfactor
Command to encrypt and store the password in the Keyfactor Command database. Enter and confirm
a password.
Select the Load from PAM Provider radio button as the Secret Source if you want to store the pass-
word in a supported third-party PAM solution (see Privileged Access Management (PAM) on
page 639). The remaining fields on the dialog will vary depending on the PAM provider.
CyberArk
Select CyberArk in the Providers dropdown if your PAM provider is CyberArk. The remaining fields in
the dialog will then be:
o PrivateArk Protected Password Name—The name of the username or password in the safe (see
Create a CyberArk Password on page 644).
o PrivateArk Folder Name—The path and name of the folder that stores the CyberArk Password
(e.g. Root or Root\MyDir).
3. On the Discover tab, highlight the row(s) in the discover grid of the store(s) to delete and click Delete at the
top of the grid or right-click the store location in the grid and choose Delete from the right-click menu. The
right-click menu supports operations on only one store at a time.
4. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
SSL network discovery and monitoring scanning is performed by orchestrators that are assigned to orchestrator
pools. An orchestrator pool contains orchestrators that support SSL discovery and monitoring capabilities for its
networks. Orchestrator architecture allows for a pool of orchestrators to work in parallel to execute scan jobs.
Based on defined schedules, Keyfactor Command creates discovery or monitoring scan jobs. Several scan jobs may
be created from one large request. Orchestrators poll the Keyfactor Command Service to determine if scan jobs
are available. Scan jobs are then executed by available orchestrators. Keyfactor Command automatically distrib-
utes the scanning load across the orchestrators in the pool by generating and managing individual scan jobs. Addi-
tionally, the orchestrator that discovers the certificate can be different than the orchestrator that monitors the
certificate.
The orchestrator SSL scanning process will attempt to scan with and without server name indication (SNI) for
endpoints specified by host name during discovery scans and only use SNI during a monitoring scan if the endpoint
has an SNI name from the discovery scan. Whenever an endpoint is defined to scan by its host name, the orches-
trator will try to scan that endpoint twice, one normal scan against the endpoint and one using the supplied host
name as the SNI extension.
Keyfactor Command is installed with a Default Orchestrator Pool that holds all the orchestrators that have been
configured for SSL network discovery and monitoring. Custom orchestrator pools can be created as needed.
The SSL network discovery and monitoring features can only be used if at least one appropriate instance of the
Windows Orchestrator version 6 or above or Keyfactor Universal Orchestrator version 9 or above is running in the
environment and the orchestrator has been approved in the Management Portal. Older versions of the Windows
Orchestrator do not support the version of SSL management found in Keyfactor Command version 6 and later.
Keyfactor recommends that the orchestrator(s) used for SSL network discovery and monitoring be installed on a
server other than the primary Keyfactor Command server(s) due to the resource requirements of the scanning
process when scanning large network segments.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
On the Network Definitions tab, you create and/or edit the network and assign the orchestrator pool responsible
for performing SSL network discovery and monitoring. This section is also used to track the status of the discovery
and monitoring jobs.
Discovery jobs attempt to initiate TLS connections to specified IP addresses and ports or ranges of IP addresses and
ports. If a TLS connection is successful, the certificates provided by the target server as part of the TLS handshake
Monitoring jobs scan a chosen set of locations that have already been discovered by a discovery job scan. Like
discovery jobs, monitoring jobs attempt to initiate TLS connections with the locations specified. In the case of
monitoring jobs, however, a certificate is expected at the endpoint since endpoints are generally identified for
monitoring if they have certificates that need monitoring. As a result, monitoring jobs report on timeouts as well
as connection failures and successes.
SSL Network Operations include adding, editing and deleting SSL network definitions, initiating a manual scan and
monitoring scheduled network scan jobs.
Tip: SSL scan jobs use priority rules to determine which job segments run first if there are multiple job
segments to be run (large jobs are divided into multiple job segments—see Monitoring Network Scan Jobs
with View Scan Details on page 426). Job segments are run with the following priority rules:
l Job segments for Scan Now jobs (see Initiating a Manual Scan on page 428) are run ahead of those for
scheduled jobs.
l New job segments for in-progress jobs with multiple segments are prioritized based on job age—
segments for jobs that have been running the longest move to the front of the line.
l New job segments for in progress jobs with multiple segments start ahead of job segments for jobs
that have not yet started.
2. On the SSL Network Discovery and Monitoring page, select the Network Definitions tab (the default when you
first visit the page).
3. On the Network Definitions tab, click New Network to setup a network to scan, or select an existing network
from the grid and click Edit.
4. The SSL Network Definition dialog is divided into four tabs: Basic, Advanced, Network Ranges, and Quiet
Hours. Enter the network information for each tab, as required. Each tab is described in detail below.
Basic Tab
In the SSL Network Definition dialog on the Basic tab, enter the following information:
Tip: The SSL network name is searchable with certificate search and also appears in the loca-
tion details grid of the certificate details, if the certificate was found during an SSL scan.
Note: Keyfactor Command is installed with a Default Orchestrator Pool and orchestrators
with SSL discovery and monitoring capabilities created in Keyfactor Command are auto-
matically assigned to that pool.
l Discovery/Monitoring Schedule: Select the discovery and monitoring job frequency. Possible options
are:
o Off—No jobs will run.
o Daily—Enter selected time.
o Interval—Enter an interval from every 10 minutes to every 12 hours.
o Weekly—Enter a selected day or days of the week at a selected time.
o Monthly—Enter a selected day of the month (1st through 27th) at a selected time.
Note: The configured schedule determines when the scan is requested to start. The actual
start of the scan is dependent on the orchestrator heartbeat Interval, which is defined by the
Heartbeat Interval (minutes) application setting (see Application Settings on page 553). The
default is 5 minutes.
l Notification Recipients: Enter one or more email address(es) of the recipients who should receive
monitoring results (newline separated).
Advanced Tab
In the SSL Network Definition dialog on the Advanced tab, enter the following information:
l Scanning Enabled : Click to enable scanning for the network. If unchecked, no new network scans will
be scheduled, but the current scan will finish, if this setting is changed during a scan also, the network
will appear as Disabled on the SSL Network Discovery and Monitoring page.
l Automatically monitor network endpoints during discovery: Enable this option to instruct the orches-
trator to tag endpoint certificates, found during discovery scanning, for monitoring. It is recommended
to enable this option.
l Request [Link]: Each network definition contains an option to do a GET on [Link] on
endpoints. Orchestrators perform a GET /[Link] request to behave like a webcrawler and provide
an explanation of network activity.
The Add Range section is for adding new networks via the add range tool.
When you arrive at the Network Ranges tab, the Add Range section shows default values of type: Network
Notation and CIDR Block of '[Link]/24:443 '. Notice that the details grid reflects the default value and the
default type; network notation. As you begin entry of a new network range of the type network notation,
the details section will reflect your entries as you type, allowing you to verify your entry. The details grid will
not show if you chose another type of notation.
Define new network locations, using the add range tool, as follows:
a. In the Add Range section of the page, select your desired method for adding a location in the Type
dropdown. The available options are:
l Network Notation: Enter an IP address range using CIDR notation by populating the CIDR Block
field and selecting the desired subnet in the dropdown. The default subnet is /24, which is one
full octet of variability, or 254 locations.
l IP Address: Enter a single IP address by populating the IP Address field and adding one port.
l Host Name: Add a single location using a host machine name by filling in the Host Name field in
the host name section and adding one port. During scans, host names are converted to IP
addresses and scans are conducted via IP address. Keyfactor Command will do two scans
against that address, one using the hostname as the SNI (server name indication) and one not
using SNI. This is because different servers can be hosted on the same IP address but are
accessed via different SNIs (or without one at all).
Note: All methods support adding multiple ports, either comma separated (433,450),
or as a range (433-450).
b. Enter the desired network notation, IP address, or host name, and click the Add action button.
c. Repeat this step for multiple IP addresses or host names. Each entry will be added as a newline in the
Network Ranges box at the bottom of the dialog.
d. Click Save.
The details grid displays only for the type network notation and will only display the value being typed in
the CIDR block, or the last value entered. The fields in the details grid are defined as follows:
l Range: This is the range of addresses reflected by the CIDR notation entered.
l Mask: Defined by the bitmask (between 1 -30) applied to the address in the CIDR block to identify
the IP addresses included. The bigger the mask the fewer IP addresses will fall under the defined
range. For example, with a '/24', the first 3 sections of the IP address must match exactly, while the
last section can be any value from 0 to 255.
l Hosts: This is the number of useable IP addresses in a given CIDR. (This is always two less than the
number of endpoints. This is because the smallest address is reserved as the address of the overall
network the CIDR represents, while the largest is used as the 'broadcast' address).
You can see any existing network definitions in the Network Ranges box in the Ranges section of the dialog.
The Ranges section:
In the SSL Network Definition dialog on the Quiet Hours tab, define quiet hour periods as follows:
a. In the Add Quiet Hours section of the page, select a day and time to begin a quiet hour period in the Start
section.
b. Select a day of the week and time to end the quiet hour period in the End section.
c. Click Add to add the quiet hour period to the Quiet Hours section of the page.
d. Repeat the above steps for any additional quiet hour periods.
Note: Quiet hours replace and expand upon the blackout period option that existed in previous
versions of Keyfactor Command.
2. On the SSL Network Discovery and Monitoring page, select the Network Definitions tab (the default when you
first visit the page).
3. On the Network Definitions tab, highlight the row in the SSL network grid of the network to delete and click
Delete at the top of the grid or right-click the network in the grid and choose Delete from the right-click
menu.
4. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
To view details for a segment, double-click the segment, right-click the segment and choose Details from the right-
click menu, or highlight the row in the scan details grid and click Details at the top of the grid (see SSL Network
Scan Detail Segment Details on the next page).
Tip: If jobs are taking longer to complete than expected, see Slow SSL Jobs on page 711.
2. On the SSL Network Discovery and Monitoring page, select the Network Definitions tab (the default when you
first visit the page).
3. On the Network Definitions tab, highlight the row in the SSL network grid of the network to scan and click
Scan Now at the top of the grid or right-click the network in the grid and choose Scan Now from the right-
click menu. The scan will begin immediately.
Tip: If a scan is already in progress for the network, the option to start a scan of that type will be grayed
out and cannot be selected.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the orchestrator name The time at which scanning of the segment began.
as listed in the Orchestrator field. Supports the %TODAY% token (see Advanced Searches on
the next page).
Status
Endpoint Count
Status matches or doesn’t match the selected category—
Not Started, In Progress, Complete The number of endpoints scanned in the segment. The
The SSL scan will show a status of In Quiet Hours if scan- maximum number of endpoints per segment is config-
ning is currently in that status. See SSL Network Oper- urable (see the SSL Maximum Scan Job Size setting in
ations on page 419. Application Settings: Agents Tab on page 564).
Start Time
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
SSL network discovery and monitoring scanning is performed by assigning an orchestrator pool, containing orches-
trators with discovery and monitoring capabilities, to a network. An orchestrator pool contains one to many orches-
trators that support the SSL discovery and monitoring capabilities. Network scanning using orchestrator pools
allows the work to be dispersed among the orchestrators in the pool.
Out of the box, all approved Windows orchestrators and Keyfactor Universal Orchestrators with the SSL capability
are assigned to a default orchestrator pool. For scanning of larger and more complicated networks, orchestrator
pools can be configured with multiple orchestrators running concurrently to perform the scanning operation.
Note: Approved orchestrators assigned to a custom pool will be removed from the default orchestrator
pool. If a custom pool is removed, the orchestrator will be re-assigned to the default orchestrator pool.
2. On the SSL Network Discovery page, select the Orchestrator Pools Definition tab.
3. On the Orchestrator Pools Definition tab, click Add from the top menu to create a new pool, or Edit from
either the top or right click menu, to modify an existing one.
Note: The available edit options include edit the name of the pool or select/de-select the discov-
er/monitor options.
5. From the Orchestrators dropdown, select eligible orchestrators—those orchestrators that support monitor
and discovery capabilities—to add to the orchestrator pool and click Add.
Tip: Orchestrators are added with discover and monitor responsibilities. You can de-select one of
these options, if needed.
6. Highlight a row and click Remove to remove the orchestrator from the orchestrator pool. The orchestrator
will be returned to the default orchestrator pool.
Note: You are not able to remove orchestrators from the default orchestrator pool; they are auto-
matically removed if assigned to a custom orchestrator pool.
2. On the SSL Network Discovery page, select the Orchestrator Pools Definition tab and select the row you wish
to delete.
3. Click Delete at the top of the grid, or from the right click menu.
4. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
Note: You are not able to remove the default orchestrator pool.
[Link] Results
The SSL network discovery and monitoring results include endpoints that returned certificates as well as endpoints
that resulted in some level of response (did not time out) but did not return certificates.
For each endpoint discovered during the scan, the results grid includes the following:
DNS Name
The host name converted to an IP address, or the IP address scanned. The DNS name is resolved by the orches-
trator performing the scan, based on the DNS settings of the server running the orchestrator.
IP Address
The IP address scanned.
Port
The port scanned.
Certificate Found
Whether a certificate was found at the endpoint on the most recent scan (true/false).
Certificate CN
Common name discovered on the certificate.
Orchestrator Pool
The orchestrator pool name that contains the orchestrator that discovered and/or monitored the endpoint.
Network
The name of the network.
Monitored
Whether the discovered endpoint is configured for monitoring (true/false). If the Automatically monitor endpoints
found during discovery option is enabled in the network definition, the orchestrator will, upon initial discovery,
monitor the discovered certificate. You can change the monitoring status of a discovered endpoint in the results
grid.
Reviewed
The discovered endpoint has been reviewed (true/false). To denote an endpoint as reviewed, highlight the row in
the results grid and click Mark as Reviewed at the top of the grid or right-click the endpoint and choose Mark as
Reviewed.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the orchestrator pool Complete or partial matches with the network name.
that contains orchestrators used to discover and monitor
the results. Port
Complete or partial matches with the DNS name resolved SNI Name
based on the discovered IP address. If a host name could
not be resolved, this will be the IP address. The server name indication (SNI) of the endpoint.
IP Address Status
Complete or partial matches with the IP address. The status of the scan. Options include: Certificate Found,
Timed Out Connecting, Exception Connecting, Timed Out
Downloading, Exception Downloading, Not SSL, Exception
Is Monitored
in Sql, Invalid or Unreachable Host, Connection Refused,
Endpoint has been marked as monitored (true/false). By Bad SSL Handshake, Client Authentication Failed, No Certi-
default, only endpoints that are marked as monitored ficate, SSL Refused, Not Probed, Unknown.
equals true are displayed.
Issuer DN
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
To select a single row in the grid, click to highlight it and then select an operation from either the top of the grid or
the right-click menu. Some of the operations support action on multiple results at once. To select multiple rows,
hold down the CTRL key and click each row on which you would like to perform an operation. Then select an oper-
ation from the top of the grid. The right-click menu supports operations on only one certificate at a time.
To view details of the scan history and certificates found for an SSL job, in the SSL discovery results grid, double-
click the result, right-click the result and choose View Endpoint Details from the right-click menu, or highlight the
row in the results grid and click View Endpoint Details at the top of the grid. The endpoint history dialog includes
this information:
The details menu can also provide information on why a certificate was not found if one was expected.
Endpoint history records on the endpoint details page older than 30 days, by default, are automatically purged
daily. You can change the length of time for which records are retained by updating the Retain SSL Endpoint
History (days) in the application settings.
At the conclusion of a of a network monitoring scan, an email is sent to the configured recipients indicating which,
if any, certificates associated with that network are nearing expiration. "Near" expiration is determined based on
This is one method of tracking expiration on SSL certificates, but since the certificates are synchronized to the
Keyfactor Command database, you can also use regular expiration alerts (see Expiration Alerts on page 150) and
reports (see Reports on page 77) to track expiration for these certificates as you would for certificates issued from
internal CAs.
The discovery and monitoring notification emails that are delivered at the conclusion of discovery and monitoring
scans both include information about the status of the endpoints scanned, but they present this information
slightly differently. The discovery email breaks down what happened when the job attempted to find a certificate
at each of the endpoints it attempted to communicate with. The monitoring email, on the other hand, focuses on
monitoring the status of the certificate that is expected to be at the endpoint. Although the monitoring email can
be used for identifying certificates that are coming up for expiration, other solutions, such as expiration alerts (see
Expiration Alerts on page 150), may be more useful for this. What the expiration alerts can’t do for you, however,
and the monitoring email can, is identify servers that may have gone offline or whose certificate may have disap-
peared. In other words, expiration alerts monitor certificate status and monitoring alerts monitor endpoint status.
See the example in Figure 267: SSL Monitoring Email. This shows three servers that previously had been discovered
to have a certificate now being unresponsive. In some cases, the servers or certificates may still be there and the
requests for them have just timed out due to slow network connections or other issues, but this provides you with
an opportunity to investigate these servers to determine what the problem might be.
The various numbers that are reported in the Discovery and Monitoring emails are described below:
l The number in the subject: The total number of endpoints that have expired/expiring certificates + the total
number of endpoints that did not return a certificate.
l Expired/Expiring certificates number: The total number of certificates that are expired or will expire within
the next X number of days. The value of X is a configurable setting in Keyfactor Command and is set in the
network definition for each network (see the Expiration Alert setting in SSL Network Operations on page 419).
l Number of endpoints that did not return a certificate: The total number of endpoints that did not return a
certificate.
l Number of rows in each grid: A configurable setting in Keyfactor Command (see the SSL Maximum Email
Results application setting in Application Settings: Agents Tab on page 564). The number of rows in the grids is
not reflected in the total counts.
Value Meaning
Timed out while A timeout occurred when attempting to establish a TCP connection. The timeout interval is defined on
connecting the Advanced tab of the SSL network definition page, see SSL Network Operations on page 419. The
shorter the timeout, the faster the scan goes, but the higher chance that if there is actually something
listening at the port, a connection won't be established causing a timeout. If the orchestrator is over-
loaded (too many parallel tasks), it can add to the time needed to make a connection and increase the
chance of a timeout. Network transit time affects timeouts as does the load and speed of the target
system in the ability to establish a TCP handshake.
Timed out while A TCP connection was made and a TLS connection was started, but it took too long to actually receive
downloading the certificate. This is a rare condition. This is a parameter that is locally configurable on the orches-
trator and defaults to 15 seconds. This value is displayed in the debug trace.
Connection The target IP and Port are listening, but the TCP connection was actively refused.
refused
Not SSL A TCP connection was established, but when the first packet of the TLS handshake was sent, it did not
get a TLS response, implying that some protocol other than TLS is listening on the target.
Bad SSL hand- A TCP connection was established and a proper response to the first TLS packet was returned, but
shake something failed in the rest of the TLS handshake. Several of the internal reasons for why a TLS hand-
shake may have failed have been combined along with other counters in the email response.
Certificate found A TCP connection and a TLS handshake were completed and the TLS handshake returned a certificate
(all within the connection and download timeout periods)
3.4 Orchestrators
Keyfactor Command uses orchestrators (a.k.a. agents) to manage a wide variety of certificate store types. As of
this writing, Keyfactor offers these orchestrators:
The Keyfactor Windows Orchestrator is no longer being developed; its last release was version 8.5. The func-
tionality of this orchestrator is being replaced by the Keyfactor Universal Orchestrator, which offers built-in exten-
sions to cover some functionality plus the ease of plug-and-play extensions to add further functionality. Keyfactor
intends to make some further extensions available as open source downloads in the future. Until such time as
these are available to replace all the functions of the Keyfactor Windows Orchestrator, Keyfactor recommends
customers continue to use the Keyfactor Windows Orchestrator version 8.5, which is fully compatible with version
9 of Keyfactor Command.
Keyfactor AnyAgent
The Keyfactor AnyAgent runs on Windows or Linux servers and is used to allow management of certificates regard-
less of source or location by allowing customers to implement custom agent functionality. Custom store types
and/or job capabilities, on which agents operate, are created by adding commands and leveraging extendable
code to communicate through an API with Keyfactor Command. Because of the custom nature of the functionality
of the AnyAgent, it is not included in the table below, as it could be designed to do one or more of the capacities
below, or additional capacities not included below. Contact Keyfactor for more information.
Amazon Web
1
Services Add/Re-
move
Amazon Web
1
Services
Inventory
Certificate Auto-
enrollment
Certificate Reen-
rollment
Certificate
Renewal
F5 (Web Server, X1
SSL Profiles, CA
Bundles) Add/Re-
move
File Transfer
Protocol Add/Re-
move
File Transfer
Protocol
Inventory
IIS (Personal,
Revoked,
Trusted) Add/Re-
1Support for this functionality on the Keyfactor Universal Orchestrator requires the addition of a custom exten-
sion. Contact your Keyfactor representative for more information.
move
IIS (Personal,
Revoked,
Trusted)
Inventory
Java Keystore 1
Add/Remove
Java Keystore 1
Create
Java Keystore 1
Discovery
Java Keystore 1
Inventory
Linux Logon
Management
Log Fetching
NetScaler 1
Add/Remove
NetScaler 1
Inventory
PEM Add/Re- X1
move
PEM Discovery 1
PEM Inventory 1
Remote CA &
Template
Synchronization
SSH Key
Discovery
The options available in the Orchestrator Management section of the Management Portal are:
Auto-Registration
Configure Keyfactor Command to allow orchestrators to auto-register.
Management
View and configure orchestrators.
Jobs
View active orchestrator jobs and review job errors.
Blueprints
Snapshot the certificate stores and scheduled jobs of one machine and apply them to multiple other similar
machines.
Mac Auto-Enrollment
Configure settings for Mac auto-enrollment.
Note: The built-in auto-registration system does not support the Keyfactor Universal Orchestrator. If you
need auto-registration with the Keyfactor Universal Orchestrator, see Custom Auto-Registration Handlers
on page 451.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The Orchestrator Auto-Registration Settings grid shows the current settings for the following defined job types:
IIS Keygen/re-enrollment
Setting reserved for future use.
2. On the Orchestrator Auto-Registration Settings page, highlight the row in the grid of the job you want to edit
and click Edit at the top of the grid or right-click the job in the grid and choose Edit from the right-click menu.
3. In the Orchestrator Auto-Registration Settings dialog, check the Auto-Register box if you want orchestrators
to be able to auto-register. If you do not enable this, an administrator will need to visit the Orchestrator
Management page in the Management Portal and manually approve each orchestrator.
4. Check the Validate Users box if you want the users under which the orchestrators are running to be a
member of a specific AD group in order to auto-register. If you do not enable this but you do enable auto-
registration, all orchestrators will auto-register.
a. In the User Groups field, enter the AD group or groups against which to validate the user accounts in
"DOMAIN\group name" format. Multiple groups should be separated by a comma and no space. User
accounts may be used if desired.
1. Click Save.
With the custom handler system of auto-registration, a handler module is written and compiled into a DLL, which
is then registered in the Keyfactor Command configuration and called whenever a new orchestrator performs an
initial registration request, provided there are sufficient licenses available to support the orchestrator. The handler
then has the flexibility to call out to an external system such as a database or web service or use any other means
to determine whether the orchestrator should be approved and what values should be applied for the blueprint,
metadata, and orchestrator ClientID.
When an orchestrator first connects to Keyfactor Command, available registration handlers run in sequence to
determine if the orchestrator can be automatically approved. A handler will return one of three results: Allow,
Deny, and Defer. Handlers are executed in order of registration until one returns Allow or Deny or until all handlers
have been executed. Whenever an executed handler returns a response of Defer, the next registered handler will
be executed. If any executed handler returns a response of Deny, further processing will cease and the orches-
trator will be moved into a Disapproved state. In both of these cases, values returned by the output parameters
will be ignored by Keyfactor Command.
l If the value for blueprintName corresponds to a valid orchestrator blueprint that can be applied to this orches-
trator, it is applied. Otherwise, the response is rejected, the orchestrator is left with a state of New, and an
error is logged.
l If the value for ClientID is non-null, it will be permanently associated with this orchestrator approval. The
orchestrator will be expected to provide this value for the ClientMachine field on all future calls.
l If the CSR attribute was provided to the handler, it will be submitted for issuance and the resulting certificate
will be returned to the orchestrator.
l If the request results in an issued certificate and the metadata output parameter has values, the valid
metadata field values will be associated with the issued certificate.
l If ClientParameters has a value, the parameters will be returned to the orchestrator (but will not be used by
Keyfactor Command).
Tip: Sample handler source is available as a starting point for creating a custom auto-registration handler.
Contact Keyfactor support for assistance.
The orchestrator management grid can be sorted in ascending order by clicking on a column header, with the
exception of the Capabilities column. Click the column header again to reverse the sort order. The grid columns
can be arranged in any order desired by click-holding and dragging the header of the column you wish to move.
The column widths may also be adjusted by click-holding and dragging the line separating two column headers. By
default, disapproved orchestrators are not included in the display. To include them, click the Include Disapproved
box.
For a description of the columns shown in the orchestrator management grid, see Viewing Orchestrator Details on
page 455.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the orchestrator name Complete or partial matches with the Active Directory
as listed in the Client Machine field. account the orchestrator used when registering with the
Keyfactor Command server.
Last Seen
Capabilities
Orchestrator last contacted the Keyfactor Command
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
To view details of an orchestrator, double-click the orchestrator, right-click the orchestrator and choose View
Details from the right-click menu, or highlight the row in the grid and click View Details at the top of the grid. The
orchestrator details dialog includes this information:
Id Capabilities
When orchestrators first appear in Keyfactor Command, they have a status of New. The orchestrator cannot
perform any jobs while it has this status. To approve an orchestrator, highlight the row in the orchestrator manage-
ment grid and click Approve at the top of the grid or right-click the orchestrator in the grid and choose Approve
from the right-click menu. Once you have approved a Keyfactor Universal Orchestrator, Windows Orchestrator or
Java Agent, you can schedule jobs for the orchestrator. Once you have approved an SSH Orchestrator, you can
configure server groups and servers for that orchestrator and begin scanning servers. Once you have approved a
Mac enroll agent, users can enroll for certificates from that Mac. Some orchestrators may be configured for auto-
approval via auto-registration (see Orchestrator Auto-Registration on page 446).
To disapprove an orchestrator, highlight the row in the orchestrator management grid and click Disapprove at the
top of the grid or right-click the orchestrator in the grid and choose Disapprove from the right-click menu. When
an orchestrator is disapproved, operations with Keyfactor Command can no longer be carried out by this orches-
trator.
To generate a blueprint from an orchestrator, highlight the row in the orchestrator management grid and click
Generate Blueprint at the top of the grid or right-click the orchestrator in the grid and choose Generate Blueprint
from the right-click menu. For more information about blueprints, see Orchestrator Blueprints on page 474.
To apply a blueprint to an orchestrator, highlight the row in the orchestrator management grid and click Apply
Blueprint at the top of the grid or right-click the orchestrator in the grid and choose Apply Blueprint from the
right-click menu. For more information about blueprints, see Orchestrator Blueprints on page 474.
The orchestrator reset and renewal functions are both useful for orchestrator maintenance. The reset function can
be used when an orchestrator that is in an error state or if you've made some changes on the orchestrator side
that necessitate a refresh. The renewal function is used for orchestrators that are authenticating via client certi-
ficate to initiate a client certificate renewal before this would occur automatically based on approaching certificate
expiration.
Orchestrator Reset
The orchestrator reset function:
l Removes all current orchestrator jobs for the selected orchestrator.
l Deletes all associated certificate stores.
l Sets the orchestrator status to new.
l For orchestrators configured to use client certificate authentication, clears the certificate thumbprints stored
for the orchestrator to allow it to be reconfigured with a new certificate.
Orchestrator Renewal
The orchestrator renewal function is used to request or require that the orchestrator enroll for a new client
authentication certificate on the orchestrator's next session registration. It is used in conjunction with a custom
renewal extension on the orchestrator to force the orchestrator to enroll for a new certificate before it would
normally do so based on the warning and expiry windows. See the Register a Client Certificate Renewal Extension
section of the Keyfactor Orchestrators Installation and Configuration Guide for more information and custom
renewal extensions on the renewal process.
To request certificate renewal for an orchestrator, highlight the row in the orchestrator management grid and click
Request Renewal at the top of the grid or right-click the agent in the grid and choose Request Renewal from the
right-click menu. In the Renewal Status dropdown, select one of the available options:
l None
Unset the value so that the orchestrator will not request a new client authentication certificate (based on this
value).
l Request
The orchestrator will request a new client authentication certificate when it next registers for a session.
Orchestrator activity will be allowed to continue as usual.
l Require
The orchestrator will request a new client authentication certificate when it next registers for a session. A new
session will not be granted and orchestrator activity will not be allowed to continue until the orchestrator
acquires a new certificate.
To view all the active jobs for an orchestrator, highlight the row in the orchestrator management grid and click
View Jobs at the top of the grid or right-click the orchestrator in the grid and choose View Jobs from the right-click
menu. This will take you to the scheduled jobs tab of the orchestrator job status page with the query field popu-
lated by the selected orchestrator.
To view job history for an orchestrator, highlight the row in the orchestrator management grid and click View Job
Histories at the top of the grid or right-click the orchestrator in the grid and choose View Job Histories from the
right-click menu. This will take you to the job history tab of the orchestrator job status page with the query field
populated by the selected orchestrator.
To view the certificate stores associated with an orchestrator, highlight the row in the orchestrator management
grid and click View Certificate Stores at the top of the grid or right-click the orchestrator in the grid and choose
View Certificate Stores from the right-click menu. This will take you to the certificate stores page with the query
field populated by the selected orchestrator.
The fetch logs function is designed to retrieve a portion of the tail end of the orchestrator log for easy review. It is
supported for both the Keyfactor Universal Orchestrator and the Native Agent.
To schedule a job to fetch the logs, click Fetch Logs from the actions buttons at the top of the Orchestrator
Management grid or from the right-click menu. The job will be scheduled to run immediately, which means it
should complete within a few minutes depending on other activity occurring at the same time. The fetch logs job
will appear in Scheduled Jobs under Orchestrator Job Status with a job type of Fetch Logs and when complete will
appear in Job History (see Job History on page 470).
For Native Agent fetch log jobs, when the job is complete, locate the completed job on the Job History tab and
double-click or click Expand Message from the right-click menu or at the top of the grid. The job status message
details show 4000 characters of the tail end of the log.
To review the log data for logs fetched from a Keyfactor Universal Orchestrator, use the GET /Orches-
tratorJobs/JobStatus/Data Keyfactor API method. See the GET Orchestrator Jobs Job Status Data section of the
Keyfactor Web APIs Reference Guide for more information.
Tip: The orchestrator must be approved and have the LOGS capability in order for the Fetch Logs function
to be enabled.
Note: The orchestrator must be configured to write log entries to a file in order for the Fetch Logs func-
tion to be able to retrieve logs. The Keyfactor Universal Orchestrator does this by default, but the Native
Agent needs to be configured appropriately to write to a file in order to support this feature.
To set up logging on the Native Agent, see the Native Agent configuration instructions to configure logging
and start the orchestrator with the appropriate logging level to allow for the use of the Fetch Logs
feature:
[Link]
at [Link]() in /_
/src/[Link]/src/System/Net/Http/[Link]:line 172
This indicates that the amount of data being returned on the job is greater than IIS on the Keyfactor
Command server is configured to accept. You will need to make modifications to the IIS settings on your
Keyfactor Command server to allow it to accept larger incoming pieces of content. You can do this using
the configuration editor built into the IIS management console. Make the setting changes at the Default
Web Site level (or other web site, if you installed your Keyfactor Command in an alternate web site). There
are three settings that may need modification:
l [Link]/security/requestFiltering/requestLimits/maxAllowedContentLength
l [Link]/serverRuntime/uploadReadAheadSize
l [Link]/httpRuntime/maxRequestLength
The most important of these is maxAllowedContentLength. Set this value to at least 2,500,000 bytes to
support the maximum returned data size for the Keyfactor Universal Orchestrator. The default values of
4096 KB for the maxRequestLength and 49,152 for uploadReadAheadSize will probably be sufficient in
most environments, unless you are also using SSL scanning (see Monitoring Network Scan Jobs with View
Scan Details on page 426). (The [Link] values are set in bytes while the [Link] values are
set in kilobytes.)
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The Scheduled Jobs tab on the Orchestrator Job Status page shows all of the currently scheduled jobs for any
approved Android, Java, Native, and SSH Orchestrators and jobs other than remote CA sync for approved Keyfactor
Universal Orchestrators and Windows Orchestrators (SSL jobs only appear while they are in progress). At a glance,
you can see what discovery, inventory, management, and synchronization jobs are scheduled for all the active
orchestrators that can communicate with Keyfactor Command.
Orchestrator
The host on which the orchestrator is running.
Target
The target machine name followed by the path and file name to the certificate store on the target machine for
many types of jobs. This field may be blank for some types of jobs.
Schedule
The time at which or frequency with which a job will run. Add and remove certificate jobs will show "Immediately"
unless they have been scheduled for a later time. Renewals and reenrollments will always show "Immediately"
since these can’t be scheduled for a later time. SSL jobs will always show "Immediately" since they only appear in
the grid while they are in progress.
Job Type
The type of job—e.g. inventory, discovery, management (add and remove certificate), synchronization.
Requested
The date and time when the job was configured or updated.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the orchestrator name Job Type contains or doesn’t contain the selected
as listed in the Orchestrator Machine field. keywords—Management (including add and remove certi-
ficates), Inventory, Certstore Discovery, SSL Discovery,
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Unschedule a Job
To unschedule a job, highlight the row for the job in the orchestrator job status grid and click Unschedule at the
top of the grid or right-click the job in the grid and choose Unschedule from the right-click menu.
To unschedule multiple jobs, do a search for the jobs you wish to unschedule (e.g. JobType -contains "Discovery")
and click Unschedule All Jobs at the top of the grid.
If an inventory job for a certificate store is unscheduled, all instances of that job will be removed (as opposed to
just the next inventory job) and that store will not be inventoried again until another inventory job is scheduled for
it on the Certificate Stores page.
Tip: SSL discovery and monitoring jobs and SSH synchronization jobs cannot be unscheduled from this
page—this should be done in SSL and SSH management instead (see SSL Discovery on page 416 and SSH
Server Groups on page 513).
The Job History tab on the Orchestrator Jobs page shows a record of discovery, inventory and management jobs
for certificate stores, SSH servers, SSL endpoints and remote CAs. It keeps the three most recent inventory jobs,
whether they have warnings, failed, or succeeded. Information on potential causes of the problem to allow for
troubleshooting is provided for failed jobs. The small number that appears on the tab to the right of the title indic-
ates how many failures and warnings there have been, if any, within the last seven days, by default, unless the job
has been marked as acknowledged (see Handling Job History Error or Warning Messages on page 474). This acts as
a reminder to check for failures and warnings. This number of days for reporting is configurable using the Job Fail-
ures and Warnings Age Out (days) application setting (see Application Settings: Agents Tab on page 564).
Note: Currently, any jobs initiated with the Fetch Logs function will not be included in any Job Type
search results, but will be included in any other query search field. See Fetch Logs on page 462 for more
information.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Status matches or doesn’t match the selected category— Job Type matches or does not match the selected
Acknowledged, Completed, InProcess, Waiting, Unknown. category—Management, Inventory, Certstore Discovery,
SSL Discovery, Reenrollment, SSL Monitoring, CA Synchron-
Result ization.
Target Path Partial matches with the error or warning message listed
in the Message field.
Complete or partial matches with the contents of the
Target field, including the target machine name and the Agent ID
certificate store path and file name for types of jobs listing
those, or for SSL jobs, the endpoint group name, or for Agent ID matches or doesn’t match the entered GUID
remote CA synchronization jobs, the CA name. (primarily used for internally generated searches when the
user is redirected here from another page).
Schedule Type
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
To view the details of an error or warning message, double-click the row for the job in the orchestrator job history
grid, right-click the job and choose Expand Message from the right-click menu, or highlight the row in the grid and
click Expand Message at the top of the grid.
To reschedule a job, correct the error that caused the problem, then highlight the row for the job in the orches-
trator job history grid and click Reschedule at the top of the grid or right-click the job in the grid and choose
Reschedule from the right-click menu.
To mark an error or warning grid entry as acknowledged, highlight the row for the job in the orchestrator job
history grid and click Acknowledge at the top of the grid or right-click the job in the grid and choose Acknowledge
from the right-click menu. Jobs that are in process or that have completed successfully cannot be marked as
acknowledged. Marking a job as acknowledged removes it from the count on the job history tab (if the job falls
within the count period defined by the Job Failures and Warnings Age Out (days) application setting—see Applic-
ation Settings: Agents Tab on page 564).
Orchestrator blueprints are generated from the Orchestrator Management page (see Orchestrator Management
on page 452) and applied to new orchestrators manually via the Orchestrator Management page. On the Orches-
Some blueprint operations are carried out on the Orchestrator Management page (generating and applying blue-
prints) while others are done on the Orchestrator Blueprints page (viewing and deleting blueprints).
Applying Blueprints
When you apply a blueprint to an orchestrator, you are defining a set of certificate stores and scheduled jobs for
that orchestrator as determined by the blueprint at the time that the blueprint is applied. There is no ongoing
effect to having a blueprint applied. If the blueprint is deleted, this does not affect the orchestrators to which the
blueprint was applied. Likewise, changing the orchestrator from which the blueprint was created after creation of
the blueprint does not affect the blueprint. The blueprint continues to contain the certificate stores and scheduled
jobs that were associated with the orchestrator at the time the blueprint was taken.
Orchestrator blueprints work with Java and PEM certificate stores and can be used with the Java, Native, and
Android agents.
Blueprints are applied to an orchestrator from the Orchestrator Management page (see Generating and Applying
Blueprints on page 458).
Modifying Blueprints
Blueprints can’t be edited. To modify a blueprint, modify the certificate stores and scheduled jobs on the orches-
trator from which the blueprint was taken and capture a new blueprint (see Generating and Applying Blueprints
on page 458). This will replace the existing blueprint. An orchestrator can only have one blueprint at a time.
Deleting Blueprints
To delete a blueprint:
2. On the Orchestrator Blueprints page, select an orchestrator blueprint and click Delete from either the top or
right-click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
2. On the Orchestrator Blueprints page, select an orchestrator blueprint and double-click or click View from
either the top or right-click menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
On the Certificate Stores tab you can see the certificate store paths and types that have been associated with the
blueprint. On the Scheduled Jobs tab you can see the scheduled jobs for these certificate stores. These would
generally be inventory jobs, though it is possible to blueprint an orchestrator with other types of active jobs (e.g.
discovery).
To save your changes, click Save at the bottom of the page, or to revert to the previous settings without saving,
click Undo.
Tip: For more information about the Mac Auto-Enrollment Agent, see the separate Mac Auto-Enrollment
Guide.
3.5 SSH
Keyfactor SSH Management is designed to allow organizations to inventory and manage secure shell (SSH) keys
across the enterprise. The solution consists of two elements; the SSH functionality on the Keyfactor Command
Management Portal and the Keyfactor Bash Orchestrator.
The Keyfactor Bash Orchestrator runs on Linux servers and can be operated in two possible modes:
l The orchestrator is used in inventory only mode to perform discovery of SSH public keys and associated Linux
user accounts across multiple configured targets.
As you work with SSH keys in Keyfactor Command, you will need to understand the difference between users,
service accounts, and logons:
l A user is an account in Keyfactor Command—based on an Active Directory user account—which has been
granted the Keyfactor Command SSH User role permission (see SSH Permissions on page 549).
A user can use the My SSH Key tool (see My SSH Key on page 483) to generate an SSH key pair for himself or
herself. This stores the user's SSH public and private key in the Keyfactor Command database. An admin-
istrator can then use one of the options in the SSH section of the Management Portal (see Editing Access to an
SSH Server on page 532, Editing Access to an SSH Server Group on page 515, or Adding Logons on page 538) to
map the user record and its associated public key to one or more logons, creating new logons if needed. For
servers operating in inventory and publish policy mode, this will cause the user's public key to be published to
the authorized_keys file(s) for each mapped logon on the associated SSH server(s) during the next synchron-
ization job. The user downloads the private key of the key pair to his or her machine in the My SSH Key tool
and retains it there to allow for SSH connections to the target servers the administrator distributes the
matching public key to.
Note: OpenSSH maintains a file for each user that contains the public keys authorized to connect via
SSH. By default, this file is named authorized_keys. In this document, we refer to this file as author-
ized_keys, however in your environment, this file may have a different name. The file name used in a
given environment is defined in the AuthorizedKeysFile setting in the OpenSSH sshd_config file.
l A service account is a string representing a service for which an SSH key has been requested through the
Service Account Keys page (see Service Account Keys on page 495). It is made up of the Username and Client
Hostname entered during service account key creation in the form servicename@hostname (e.g. myser-
vice@appsrvr12).
Tip: The client hostname that makes up part of the service account name is not necessarily an actual
server hostname. It is a user-defined reference that can contain any string.
An administrator can use the Service Account Keys page (see Service Account Keys on page 495) to generate
an SSH key pair for an application—referenced by a service account name—that makes use of SSH for commu-
nication, storing the application’s SSH public and private key in the Keyfactor Command database. The admin-
istrator needs to store the private key securely on the Linux server where the service account for the
application can access it and follow the same procedure as for users to distribute the public key to the appro-
priate SSH server(s) operating in inventory and publish policy mode.
Note: If an administrator maps a service account's public key to a logon for a server that is in
inventory only mode, nothing will happen. The key will not be published to the server.
l A logon is a Linux user account. In most cases for the purposes of SSH management, these are Linux user
accounts that have or are intended to have SSH public keys associated with them on managed SSH servers,
stored in an authorized_keys files. However, Linux logons without keys (and which should likely never have
keys like "root" or OS-specific accounts like "halt") also appear in Keyfactor CommandSSH management.
Typically, you would initially configure your servers in inventory only mode and scan the servers for any existing
authorized_keys files containing SSH public keys. This is the discovery phase. Once the discovery phase is complete
for a server or server group, you would then switch it to inventory and publish policy mode.
When a server is in inventory and publish policy mode, any new keys that appear in its authorized_keys files in a
manner other than by distribution from Keyfactor Command are automatically deleted. This allows administrators
to closely control who has access to the servers via SSH. Any keys and authorized_keys files that were in place
before the switch to managed mode are synchronized to Keyfactor Command (see Unmanaged SSH Keys on
page 508) but not removed from the Linux server. The administrator can choose to remove them through
Keyfactor CommandSSH management once the switch to inventory and publish policy mode is made, if desired.
Any keys placed on the Linux server via Keyfactor Command once the servers are in inventory and publish policy
mode are considered managed keys and do not appear on the Unmanaged Keys page.
Example: A large organization has dozens of Linux servers that have historically been accessed using SSH
public key authentication. They don't know who has access to which servers using this method or what
public keys are out on the servers. To get the keys under control, they first do discovery:
1. Install the Keyfactor Bash Orchestrator on one Linux server in the environment.
2. Copy the [Link] script, containing the public key of the orchestrator service account, from
the orchestrator to the first ten Linux targets they want to bring under control.
3. On each of the control targets, run the [Link] script. This creates a local user account and
installs the orchestrator's SSH public key to allow the orchestrator to use SSH to remote into the
control target to run inventory and publish policy.
4. In the Keyfactor Command Management Portal, approve the new orchestrator (see Approving or
Disapproving Orchestrators on page 457).
5. In the Management Portal, create at least one server group, setting a scanning schedule of every hour
(Interval = 1 hour) for the initial discovery phase and leaving the Enforce Publish Policy box
unchecked (see Adding Server Groups on page 514).
6. In the Management Portal, add one server record for the orchestrator and one for each control target
(a total of 11 records added), making them members of the group created in the previous step and
selecting the Inventory Only radio button on the Basic tab (see Adding SSH Servers on page 530).
7. After allowing the discovery scans to run, review the logons (see Logons on page 537) and the keys
discovered (see Unmanaged SSH Keys on page 508) to see what keys are out on the servers and who
they belong to.
Now having a handle on what keys are on these ten target servers plus the orchestrator itself, they are
now ready to bring these servers under management. To bring the servers under management, they:
1. In the Management Portal, edit the record for the server group and check the Enforce Publish Policy
box (see Editing or Deleting an SSH Server on page 532). This change will replicate to all servers in the
group.
2. In the Management Portal, use the Logons page to remove any Linux user accounts that should not
be on the target servers (see Editing or Deleting a Logon on page 540).
3. In the Management Portal, use the Unmanaged SSH Keys page to remove any public keys that are no
longer needed from the target servers (see Deleting an Unmanaged Key on page 510).
These servers are now ready for ongoing management. The administrator is now ready to do discovery on
the next group of servers, for which a second server group should be created.
See further examples in My SSH Key on the next page and Service Account Keys on page 495.
For more information about the orchestrator, see the Bash Orchestrator section of the Keyfactor Orchestrators
Installation and Configuration Guide.
The options available in the SSH section of the Management Portal are:
Unmanaged Keys
Review public SSH keys found during discovery on servers configured to be inventoried by the Keyfactor Bash
Orchestrator in inventory only mode.
Server Manager
Manage servers, server groups, server logons for Linux clients, and SSH users controlled by the Keyfactor Bash
Orchestrator.
Example: An administrator wants to provision new user Zed Adams and grant him access to login via
secured SSH using PuTTY to three Linux servers controlled by the Keyfactor Bash Orchestrator. The servers
are set to both inventory and publish policy. To accomplish this, the administrator:
1. Adds Zed's AD account to the AD group that grants him the SSH User role permission in Keyfactor
Command and allows him to login to the Management Portal.
2. Directs Zed to login to the Management Portal, go to the My SSH Key page and generate a new key
pair (see Generating a New Key on page 489). She instructs him to enter the following information in
the form:
l Key Type: Ed25519
l Key Length: 256
l Username: Accept the default (his AD username)
l Email: [Link]@[Link]
l Passphrase: A password of Zed's choosing used to secure the private key on download.
l Comment: Zed B. Adams
b. In the Parameters section of the page, select Ed25519 as the type of key to generate.
c. Click Save private key and save the private key in the PuTTY format (*.ppk) in a safe location on
the local machine.
Figure 293: Use PuTTY Key Generator to Convert Zed's Private Key
4. Uses the Keyfactor Command Management Portal to create Linux logons for Zed on each of the three
servers that Zed should have access to and map Zed's new public key to these three logons (see
Editing Access to an SSH Server Group on page 515).
Note: The three servers that Zed needs access to are in a server group so the administrator
can create Zed's logons and map his key using the Access Management option on the Server
Group page. If the servers were in different server groups or the server group contained
servers to which Zed should not have access, the administrator would need to create the
logons and mappings separately for each server using the Access Management option on the
Servers page (see Editing Access to an SSH Server on page 532).
5. Waits for the logons to be created on the three servers and the public key to be published to them.
The time that this takes depends on the frequency of the server group synchronization schedule (see
Adding Server Groups on page 514).
6. Instructs Zed to configure PuTTY to use the private key for authentication, providing also connection
information for the three Linux servers to which he will be connecting.
7. Confirms that Zed is able to successfully connect using secured SSH to each of the three servers.
Creation Date
The date on which the SSH key pair was generated.
Stale Date
The date on which the SSH key pair is considered to have reached the end of its lifetime. By default, the lifetime of
an SSH key pair is 365 days (see Application Settings: SSH Tab on page 571).
Key Type
A number of cryptographic algorithms can be used to generate SSH keys. Keyfactor Command supports RSA,
Ed25519, and ECDSA. RSA keys are more universally supported, and this is the default key type when generating a
new key.
Key Length
The key length available when generating a new key depends on the key type selected. Keyfactor Command
supports 256 bits for Ed25519 and ECDSA and 2048 or 4096 bits for RSA. The default key length is 2048.
Email
The email address of the user requesting the key. This email address is used to alert the user when the key pair is
approaching the end of its lifetime (see Key Rotation Alerts on page 180).
SHA256 Fingerprint
The fingerprint of the public key. Each SSH public key has a single cryptographic fingerprint that can be used to
uniquely identify the key.
Public Key
The public key of the key pair.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Warning: A given user can only have one SSH key pair in Keyfactor Command. Generating a new key pair
removes the existing key pair from Keyfactor Command, if one exists. This means any mappings between
the Keyfactor user and Linux logon accounts will be updated with the public key from the new key pair.
This essentially invalidates the user's previous private key for servers managed with the Keyfactor Bash
Orchestrator. Although the Generate button is not active for users who already have a key pair, the Rotate
button will also remove the existing key pair.
3. In the Key Information section of the Generate dialog, select a Key Type in the dropdown (see Key Type on
page 486).
5. In the User Information section, confirm that the displayed Username matches the Active Directory user name
you wish to associate with your key. This field defaults to your logged in username and cannot be edited.
6. In the User Information section, enter an Email address. This address is used for key rotation alerts (see Key
Rotation Alerts on page 180). This field is required.
7. In the User Information section, enter a Passphrase to encrypt the downloaded copy of the private key of the
key pair. You will need to provide this passphrase again when you use the private key to connect via SSH. By
default, the minimum password length is 12 characters (see the SSH Key Password setting in Application
Settings: SSH Tab on page 571). This field is required.
Tip: Your private key downloads immediately at the conclusion of the generation process, encrypted
with this passphrase. You may later download the private key again from this same page and encrypt
it with a different passphrase, if desired.
8. In the Key Comment section, enter a Comment to include with the key. This field is optional.
Tip: Although entry of an email address in the comment field of an SSH key is traditional, this is not a
required format. The comment may contain any characters supported for string fields, including
spaces and most punctuation marks.
Tip: Once the key pair is generated, the user needs to download the private key as an encrypted file and
store it locally and an administrator needs to use Keyfactor Command to associate the user's Keyfactor
user account with his or her Linux logon account on the target server that the user wishes to access via
SSH. After this is complete and the orchestrator has published the user's public key to the target server,
the user may connect via SSH to the target server using the new private key for authentication. For more
information, see SSH on page 478.
The rotate key option is used to replace an existing key that is approaching the end of its life or has been comprom-
ised. If key rotation alerts have been configured in the environment (see Key Rotation Alerts on page 180), the user
will receive an email when the key is approaching the end if its lifetime to instruct the user to rotate his or her
keys.
The rotate dialog defaults to all the existing settings of the user's current key. At its simplest, users may choose to
accept all the defaults, enter a passphrase to encrypt the downloaded private key and click save to generate the
new key pair.
3. In the Key Information section of the Rotate dialog, modify the existing Key Type in the dropdown, if desired
(see Key Type on page 486).
4. In the Key Information section, modify the existing Key Length in the dropdown, if desired (see Key Length on
page 486). The available key lengths will vary depending upon the option select in the Key Type dropdown.
6. In the User Information section, modify the existing Email address, if desired. This address is used for key rota-
tion alerts (see Key Rotation Alerts on page 180). This field is required.
7. In the User Information section, enter a Passphrase to encrypt the downloaded copy of the private key of the
key pair. You will need to provide this passphrase again when you use the private key to connect via SSH. By
default, the minimum password length is 12 characters (see the SSH Key Password setting in Application
Settings: SSH Tab on page 571). This field is required.
8. In the Key Comment section, modify the existing Comment to include with the key, if desired. This field is
optional.
Tip: Although entry of an email address in the comment field of an SSH key is traditional, this is not a
required format. The comment may can contain any characters supported for string fields, including
spaces and most punctuation marks.
Tip: Once the key pair is generated, the user needs to download the private key as an encrypted file and
store it locally and an administrator needs to use Keyfactor Command to associate the user's Keyfactor
user account with his or her Linux logon account on the target server that the user wishes to access via
SSH. After this is complete and the orchestrator has published the user's public key to the target server,
the user may connect via SSH to the target server using the new private key for authentication. For more
information, see SSH on page 478.
After generating a key pair, you need to download the private key on the machine from which you will be making
SSH connections. Although the private key is encrypted, for best security practice it should not be moved around
from machine to machine.
The key downloads in the proprietary OpenSSH private key format, encrypted by a user-defined password.
Only the private key can be downloaded with the download option, though the public key is displayed on the
screen and may be copied and pasted to a file, if desired.
2. On the My SSH Key page, confirm that you have been issued a key pair and click Download.
3. In the Download dialog, enter a passphrase that will be used to encrypt the private key. By default, the
minimum password length is 12 characters (see the SSH Key Password setting in Application Settings: SSH Tab
on page 571). This field is required.
By default, the file has the following name, where DOMAIN is your Active Directory domain name and username is
the Active Directory user name of the user logged into the Keyfactor Command Management Portal:
[Link]
Once you have generated an SSH key pair, most things about the key pair are fixed and cannot be changed.
However, two pieces of key information can be changed for an existing key pair—the email address to which alerts
2. On the My SSH Key page, update the fields in the Edit Key Information section as needed and click Save.
Changes made to the key comment will be published to any associated servers during the next synchronization
cycle.
Example: An administrator wants to generate a new SSH key pair for the green chicken application, which
is a Linux-based log aggregation application. The application uses secure SSH to communicate internally
between the server collecting the logs and the servers from which the logs are being collected. All the
servers are controlled by the Keyfactor Bash Orchestrator. The servers are set to both inventory and
publish policy. To accomplish this, the administrator:
1. Uses the Keyfactor Command Management Portal to create a new key pair (see Creating a Service
Account Key on page 498). She enters the following information in the form:
l Key Type: Ed25519
l Key Length: 256
l Server Group: Server Group One
The server group to which the Linux servers belong that the public key will be distributed to.
l Client Hostname: appsrvr75
The Linux server on which the private key of the SSH key pair will be download. This does not
2. Downloads the SSH private key on the server doing the log collection, from which the
SSH connections will be made to collect logs.
3. Uses the Management Portal to map the new public key for the full service account user name (svc_
greenchicken@appsrvr75) to the Linux logons for the service on the servers from which the logs will
be collected (see Editing Access to an SSH Server Group on page 515).
Note: The servers that the logs will be collected from are organized into a server group so
the administrator can create logons and map the service account key using the Access
Management option on the Server Group page. If the servers were in different server groups
or the server group contained servers which should not be updated with logons and keys for
the green chicken service, the administrator would need to create the logons and mappings
separately for each server using the Access Management option on the Servers page (see
Editing Access to an SSH Server on page 532).
4. Waits for the public key to be published to the servers. The time that this takes depends on the
frequency of the server group synchronization schedule (see Adding Server Groups on page 514).
5. Confirms that the service is able to successfully connect using secured SSH.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
3. In the Key Information section of the Create dialog, select a Key Type in the dropdown (see Key Type on
page 486).
4. In the Key Information section, select a Key Length in the dropdown (see Key Length on page 486). The avail-
able key lengths will vary depending upon the option select in the Key Type dropdown.
5. In the Key Information section, select a Server Group in the dropdown (see SSH Server Groups on page 513).
The server group is used to control who has access in the Management Portal to the service account key. It
does not limit where the key can be published. This field is required.
6. In the Key Information section, enter a Client Hostname reference for the service account key. This field is
used for reference only and does not need to match an actual client hostname. It is used when building the
full user name of the service account key for mapping to Linux logons for publishing to Linux servers (e.g. user-
name@client_hostname). The naming convention is to enter the hostname of the server on which the
7. In the User Information section of the page, enter the Username of the service account that will be using the
key to connect to the target server (e.g. svc_myapp). This username will be combined with the Client Host-
name to build the full user name of the service account key for mapping to Linux logons (e.g. svc_myap-
p@appsrvr12). You will need to know this full user name when creating the mappings to publish the public
key to the target servers (see Editing Access to an SSH Server Group on page 515, Editing Access to an SSH
Server on page 532, Adding Logons on page 538, or Editing or Deleting a Logon on page 540). This field is
required.
8. In the User Information section of the page, enter the Email address of the administrator or group of admin-
istrators responsible for managing the key. This is the address to which key rotation alerts for this key will be
directed (see Key Rotation Alerts on page 180). This field is required.
9. In the User Information section, enter a Passphrase to encrypt the downloaded copy of the private key of the
key pair. The service that uses the private key will need to be able to provide it when connecting via SSH. By
default, the minimum password length is 12 characters (see the SSH Key Password setting in Application
Settings: SSH Tab on page 571). This field is required.
Tip: The private key downloads immediately at the conclusion of the creation process, encrypted
with this passphrase. You may later download the private key again from this same page and encrypt
it with a different passphrase, if desired.
10. In the Key Comment section, enter a Comment to include with the key. This field is optional.
Tip: Although entry of an email address in the comment field of an SSH key is traditional, this is not a
required format. The comment may contain any characters supported for string fields, including
spaces and most punctuation marks.
Tip: Once the key pair is generated, an administrator needs to download the private key as an
encrypted file and store it locally on the machine from which the service will make SSH connections
using the private key. Additionally, an administrator needs to use Keyfactor Command to map the full
user name built from the username and client hostname entered when generating the service
account key pair (e.g. svc_myapp@appsrvr12) to the Linux logon account that the service account will
operate as when logging in via SSH on the target server(s) where the public key needs to reside (see
Editing Access to an SSH Server Group on page 515, Editing Access to an SSH Server on page 532,
Adding Logons on page 538, or Editing or Deleting a Logon on page 540). After this is complete and
the orchestrator has published the public key to the target server(s), the service may connect via
SSH to the target server(s) using the new private key for authentication. For more information, see
SSH on page 478.
Once you have generated an SSH key pair, most things about the key pair are fixed and cannot be changed.
However, two pieces of key information can be changed for an existing key pair—the email address to which alerts
about the key should be directed and the comment associated with the public key.
Tip: Only service account keys belonging to server groups that the current user is the owner on appear in
the grid unless the user holds the SSH Enterprise Admin role.
2. On the Service Account Keys page, double-click the key for the desired service account in the grid, highlight
the row in the grid and click Edit at the top of the grid, or right-click the key in the grid and choose Edit from
the right-click menu.
Changes made to the key comment will be published to any mapped logons on associated servers during the next
synchronization cycle.
The rotate key option is used to replace an existing key that is approaching the end of its life or has been comprom-
ised. If key rotation alerts have been configured in the environment (see Key Rotation Alerts on page 180), the
administrator responsible for managing the service account key will receive an email when the key is approaching
the end if its lifetime to instruct the him or her to rotate the service account key.
The rotate dialog defaults to all the existing settings of the service account's current key. At its simplest, the admin-
istrator may choose to accept all the defaults, enter a passphrase to encrypt the downloaded private key and click
save to generate the new key pair.
3. In the Key Information section of the Rotate dialog, modify the existing Key Type in the dropdown, if desired
(see Key Type on page 486).
4. In the Key Information section, modify the existing Key Length in the dropdown, if desired (see Key Length on
page 486). The available key lengths will vary depending upon the option select in the Key Type dropdown.
6. In the User Information section, enter a Passphrase to encrypt the downloaded copy of the private key of the
key pair. You will need to provide this passphrase again when you use the private key to connect via SSH. By
default, the minimum password length is 12 characters (see the SSH Key Password setting in Application
Settings: SSH Tab on page 571). This field is required.
7. In the Key Comment section, modify the existing Comment to include with the key, if desired. This field is
optional.
Tip: Although entry of an email address in the comment field of an SSH key is traditional, this is not a
required format. The comment may can contain any characters supported for string fields, including
spaces and most punctuation marks.
Tip: Once the key pair is generated, an administrator needs to download the private key as an encrypted
file and store it locally on the machine from which the service will make SSH connections using the private
key. Additionally, an administrator needs to use Keyfactor Command to map the full user name built from
the username and client hostname entered when generating the service account key pair (e.g. svc_myap-
p@appsrvr12) to the Linux logon account that the service account will operate as when logging in via SSH
on the target server(s) where the public key needs to reside (see Editing Access to an SSH Server Group on
page 515, Editing Access to an SSH Server on page 532, Adding Logons on page 538, or Editing or Deleting
a Logon on page 540). After this is complete and the orchestrator has published the public key to the
target server(s), the service may connect via SSH to the target server(s) using the new private key for
authentication. For more information, see SSH on page 478.
To delete a service account key, highlight the row in the service account keys grid and click Delete at the top of the
grid or right-click the key in the grid and choose Delete from the right-click menu.
Tip: Only service account keys belonging to server groups that the current user is the owner on appear in
the grid unless the user holds the SSH Enterprise Admin role.
After generating a key pair, you need to download the private key on the machine from which you will be making
SSH connections. Although the private key is encrypted, for best security practice it should not be moved around
from machine to machine.
The key downloads in the proprietary OpenSSH private key format, encrypted by a user-defined password.
Tip: Only service account keys belonging to server groups that the current user is the owner on appear in
the grid unless the user holds the SSH Enterprise Admin role.
2. On the Service Account Keys page, locate the key for the desired service account and click Download.
3. In the Download dialog, enter a passphrase that will be used to encrypt the private key. By default, the
minimum password length is 12 characters (see the SSH Key Password setting in Application Settings: SSH Tab
on page 571). This field is required.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Tip: Only service account keys belonging to server groups that the current user is the owner on appear in
the grid unless the user holds the SSH Enterprise Admin role.
Complete or partial matches with the name of the server Whether the key is RSA, ECC, or Ed25519
group that the service account key is associated with.
Key Length
Username
The key size of the key.
Complete or partial matches with the username of the
service account key. The username is made up of the user- Comments
name and client hostname entered when the service
account key was created (e.g. myapp@appsrvr75). Complete or partial matches with the user-defined
comments on the key.
Creation Date
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
On this page you can review the discovered keys to get a sense of what's out there. You can view the keys, key
comments, fingerprint, type and length. Once you switch your servers to inventory and publish policy mode,
deleting a key from the unmanaged keys page will also delete the key from the server(s) in this mode on which it is
found.
As you bring your servers under management, clean up old keys, and control installation of new keys, the number
of keys appearing on the unmanaged keys page should begin to diminish. Eventually, the page should be empty
when all your servers have been brought under management and all old keys have been replaced with new,
managed, keys.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
To view details for an unmanaged public key, double-click the key, right-click the key and choose View from the
right-click menu, or highlight the row in the unmanaged keys grid and click View at the top of the grid.
To delete an unmanaged key, highlight the row in the unmanaged keys grid and click Delete at the top of the grid
or right-click the key in the grid and choose Delete from the right-click menu.
Note: When you delete an unmanaged key that's found on any servers operating in inventory and publish
policy mode (see SSH on page 478), the key will be removed from the target servers as well as from
Keyfactor Command.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
The date on which the key was discovered. The key size of the key.
Complete or partial matches with the user-defined Whether the key is RSA, ECC, or Ed25519
comments on the key.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
Scanning jobs are configured at the server group level. You can toggle between inventory only mode and inventory
and publish policy mode at either the server group level or on an individual server basis, though if a server group is
in inventory and publish policy mode (configured to Enforce Publish Policy), servers in this group cannot be in
inventory only mode.
Scanning of targets cannot take place until they have been set up for control by the orchestrator (see the Install
Remote Control Targets section of the Keyfactor Orchestrators Installation and Configuration Guide).
Tip: If you plan to scan and manage your orchestrator machine(s) in addition to any targets, you will need
to add SSH server entries for these as though they were targets.
Once the scanning has begun, you can look at the Logons tab to see discovered logons from the targets and asso-
ciated SSH public keys.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
On the Server Groups tab of the Server Manger page you create server groups that allow you to organize SSH
servers and set synchronization schedules and management policies on a group level. You must create at least one
server group before you can add SSH servers into the Keyfactor Command Management Portal.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
2. On the Server Manager page, select the Server Groups tab (the default when you first visit the page).
4. In the Add Server Group dialog, enter a name for the group in the Name field.
6. In the Schedule dropdown, select a frequency for the server synchronization job. Possible options are:
l Interval—Enter an interval from every 1 minute to every 12 hours
l Daily—Enter selected time
l Weekly—Enter a selected day or days of the week at a selected time
l Monthly—Enter a selected day of the month (1st through 27th) at a selected time
Tip: During initial configuration, you may want to set a short timeframe for job frequency and then
extend it as the servers settle into a management routine.
7. If desired, check the Enforce Publish Policy box to set the server group to inventory and publish policy mode
(see SSH on page 478).
To edit a server group, double-click the group, right-click the group and choose Edit from the right-click menu, or
highlight the row in the server groups grid and click Edit at the top of the grid.
Tip: The owner can only be changed by a Keyfactor Command user who holds the SSH Enterprise Admin
role (see SSH Permissions on page 549).
To delete a server group, highlight the row in the server groups grid and click Delete at the top of the grid or right-
click the group in the grid and choose Delete from the right-click menu.
Using the Edit Access function you create mappings between Keyfactor Command user accounts associated with
SSH keys and Linux logons in order to publish the SSH public keys to all the Linux servers that belong to the
selected server group (see SSH on page 478). You can also remove the mappings from here, which causes the
SSH public keys to be removed from the Linux servers belonging to the selected server group.
Before adding a logon to user mapping, be sure that you have switched either the server group or all servers in the
group to which you will add your mapping to inventory and publish policy mode (see Server Manager on page 513)
so that the key for the user will be published to the servers in the group. If the servers in the server group are in
inventory only mode and you add a mapping for it in Keyfactor Command, the mapping will appear in Keyfactor
Command only and the key for the user will not be published out to the servers in the server group. If only some
servers in the server group are in inventory and publish policy mode, the key for the user will only be published to
those servers.
To edit the access for a server group, create a mapping between a Linux logon and a Keyfactor Command user, and
publish the user's key to all the SSH servers belonging to that server group:
3. In the Server groups grid, locate the server group that contains the servers you wish to publish an SSH key to
by mapping a Keyfactor Command user to a Linux logon on that server group.
4. Right-click the server group and choose Edit Access from the right-click menu or highlight the row in the
server groups grid and click Edit Access at the top of the grid.
5. On the Access Management page, select an existing Logon on the left side of the page. Logons only appear
here if they exist with the same spelling on all servers in the server group. If you wish to add a new logon,
enter the new logon name in the Logon field at the top of the left side of the page and click Add Logon. The
new logon appears at the bottom of the Logon list. Click the Logon list title to sort the list, if desired. Select
the new logon. Only one logon may be selected.
6. In the Users dropdown at the top of the right side of the page, select a user or service account to associate the
logon with. Only Keyfactor users that have keys stored in Keyfactor Command, that have been designated as
server group owners, or AD users or groups that have been previously entered for association with a logon
Tip: For keys created through the My SSH Key portal (see My SSH Key on page 483), a Keyfactor user
is an Active Directory user account. For keys created through the Service Account Keys page (see
Service Account Keys on page 495), a Keyfactor user is a user-generated service account name of the
form servicename@hostname.
7. Repeat step 6 for any other user or service accounts that you wish to map to this logon on the servers in this
server group.
8. Click Save.
To remove a mapping of a Linux logon to a Keyfactor Command user for all the servers in a server group, remove
the public key from the Linux logon's authorized_keys files:
3. In the Server Groups grid, locate the server group that contains the servers you wish to remove an SSH key
from by unmapping a Keyfactor Command user from a Linux logon on that server group.
4. Right-click the server group and choose Edit Access from the right-click menu or highlight the row in the
server groups grid and click Edit Access at the top of the grid.
5. On the Access Management page, select a Logon on the left side of the page. Only one logon may be selected.
6. In the Users section on the right side of the page, select a user or service account to unmap from the logon.
Click Remove Access under Users. The Linux logon to Keyfactor user mapping for the selected user will be
removed and the user's SSH key will be removed from the authorized_keys files of the Linux logons on all the
servers in the server group.
Tip: Clicking Remove Shared Access for Logon on the Logons side of the page removes all Linux
logon to Keyfactor user mappings for the selected logon with one click without the need to select the
users on the Users side of the page.
If a logon has user mappings on some servers and not others in the group (see the example, below),
these will not appear in the Server Group Edit dialog, and none of these user mappings will be
removed. The Remove Shared Access for Logon option only removes user mappings that are visible in
the Server Group Access dialog.
This option does not delete the logon from any servers (see Editing or Deleting a Logon on page 540).
7. Repeat step 6 for any other user or service accounts that you wish to unmap from this logon on the servers in
this server group.
8. Click Save.
Example: Server Group One contains three Linux servers—A, B and C. Linux logons for Anne, Betty and
Dave exist on all three servers. A Linux logon for Chuck exists on servers A and B but not C. In Keyfactor
You can see these Linux logon to Keyfactor user mappings in Figure 313: Linux Logon to Keyfactor User
Mappings for Anne, Betty, Chuck and Dave.
As a result of this logon setup and mapping configuration, when you open the Server Group Access dialog
for Server Group One (see Figure 314: Server Group Access Editing Example), in the Logon column you will
see anne, betty and dave but not chuck.
Tip: Logons only appear in the Linux logon column if they exist with the same spelling on all
servers in the server group—dave does not equal david and will not be recognized as a Linux
logon match.
To view the servers belonging to a server group, highlight the row in the server groups grid and click View Group
Members at the top of the grid or right-click the group in the grid and choose View Group Members from the
right-click menu. This will take you to the Servers tab with the advanced search populated by a query for the
selected server group name.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the server group name. Server group is set to enforce publish policy yes/no.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
On the Servers tab of the Server Manager page you enter records for all the SSH servers in the environment that
will be inventoried or managed with the Keyfactor Bash Orchestrator. Each SSH server added here must have
You must create at least one server group before you can add SSH servers into the Keyfactor Command Manage-
ment Portal (see SSH Server Groups on page 513).
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Before adding a new SSH server, be sure that you have added at least one server group (see Adding Server Groups
on page 514) and that your Keyfactor Bash Orchestrator has been registered and approved in Keyfactor Command
(see Orchestrator Management on page 452).
4. In the Add Server dialog on the Basic tab, enter the DNS hostname for the server in the Hostname field. This
can be either the FQDN or a short name. An IP address may be used if desired. This field is required.
Note: The following values are not supported in the Hostname field:
l [Link]
l localhost
l ::1
6. In the Server Group dropdown, select an existing server group. This field is required.
7. In the Port field, either select the default SSH port of 22 or enter a custom port if an alternative port is used
for SSH in your environment.
8. Select either the Inventory Only radio button or the Inventory and Publish Policy radio button (see SSH on
page 478).
Tip: If the server group you selected above is configured in inventory and publish policy mode (with
the Enforce Publish Policy box checked), you will not be able to save the server in inventory only
mode.
To edit a server, double-click the server, right-click the server and choose Edit from the right-click menu, or high-
light the row in the servers grid and click Edit at the top of the grid.
Tip: If the server group for the server is configured in inventory and publish policy mode (with the
Enforce Publish Policy box checked), you will not be able to save the server in inventory only mode.
To delete a server, highlight the row in the servers grid and click Delete at the top of the grid or right-click the
server in the grid and choose Delete from the right-click menu.
Tip: The hostname, orchestrator, and server group for a server are not editable. If you wish to change one
of these, delete the record and add a fresh record for the server.
Using the Edit Access function you create mappings between Keyfactor Command user accounts associated with
SSH keys and Linux logons in order to publish the SSH public keys to the Linux servers (see SSH on page 478). You
can also remove the mappings from here, which causes the SSH public keys to be removed from the Linux servers.
Before adding a logon to user mapping, be sure that you have switched the server to which you will add your
mapping (or its server group) to inventory and publish policy mode (see Server Manager on page 513) so that the
key for the user will be published to the server. If the server is in inventory only mode and you add a mapping for it
in Keyfactor Command, the mapping will appear in Keyfactor Command only and the key for the user will not be
published out to the server.
To edit the access for a server, create a mapping between a Linux logon and a Keyfactor Command user, and
publish the user's key to the SSH server:
4. Right-click the server and choose Edit Access from the right-click menu or highlight the row in the servers grid
and click Edit Access at the top of the grid.
5. On the Access Management page, select an existing Logon on the left side of the page. If you wish to add a
new logon, enter the new logon name in the Logon field at the top of the left side of the page and click Add
Logon. The new logon appears at the bottom of the Logon list. Click the Logon list title to sort the list, if
desired. Select the new logon. Only one logon may be selected.
6. In the Users dropdown at the top of the right side of the page, select a user or service account to associate the
logon with. Only Keyfactor users that have keys stored in Keyfactor Command, that have been designated as
server group owners, or AD users or groups that have been previously entered for association with a logon
will appear in the dropdown. If desired, you may enter an Active Directory user or group name in this field.
Using an Active Directory group to create Linux logon to Keyfactor user mappings will cause the keys stored in
Keyfactor Command for any Active Directory users that are members of this group to be mapped to the
selected Linux logon and published to the server on which the Linux logon exists. Any Active Directory users
that are members of this group but who do not have keys stored in Keyfactor Command will not be mapped
to the selected Linux logon. Click Add User.
7. Repeat step 6 for any other user or service accounts that you wish to map to this logon on this server.
8. Click Save.
To remove a mapping of a Linux logon to a Keyfactor Command user for a server, removing the public key from the
Linux logon's authorized_keys file:
3. In the Servers grid, locate the server that you wish to remove an SSH key from by unmapping a Keyfactor
Command user from a Linux logon on that server.
4. Right-click the server and choose Edit Access from the right-click menu or highlight the row in the servers grid
and click Edit Access at the top of the grid.
5. On the Access Management page, select a Logon on the left side of the page. Only one logon may be selected.
6. In the Users section on the right side of the page, select a user or service account to unmap from the logon.
Click Remove Access under Users. The Linux logon to Keyfactor user mapping for the selected user will be
Tip: Clicking Remove All Access for Logon on the Logons side of the page removes all Linux logon to
Keyfactor user mappings for the selected logon on the selected server with one click without the
need to select the users on the Users side of the page.
This option does not delete the logon from any servers (see Editing or Deleting a Logon on page 540).
7. Repeat step 6 for any other user or service accounts that you wish to unmap from this logon on this server.
8. Click Save.
Tip: The time it will take for changes to access mappings to appear on your Linux server will depend on
the frequency of the server synchronization configured for the server group to which the server belongs
(see Adding Server Groups on page 514).
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the hostname of the Server is in inventory only mode or inventory and publish
SSH server. policy mode.
Complete or partial matches with the name of the server Complete or partial matches with the Active Directory
group to which the SSH servers belong. username of the user who owns the server group to which
the server belongs. The owner can only be set by a
Orchestrator Keyfactor Command user with the SSH Enterprise Admin
role.
Complete or partial matches with the orchestrator
controlling the SSH servers.
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
[Link] Logons
On the Logons tab of the Server Manager page you can view all the Linux user accounts associated with author-
ized_keys files containing valid SSH public keys. The logons shown here include both those discovered on SSH
servers during the initial discovery phase using the orchestrator and those created in Keyfactor Command and
published to the SSH servers using the orchestrator.
On this tab you can create new logons, see the number of keys associated with each logon, and create mappings
between Keyfactor Command users and the logons in order to allow the orchestrator to publish new SSH keys for
those users to the SSH servers (see SSH on page 478).
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Before adding a new logon, be sure that you have switched the server to which you will add your logon (or its
server group) to inventory and publish policy mode (see Server Manager on page 513) so that the new logon will
be published to the server. If the server is in inventory only mode and you add a new logon for it in Keyfactor
Command, the logon will appear in Keyfactor Command only and will not be published out to the server.
Tip: New logons can also be added from the access management options for server groups and servers
while creating Linux logon to Keyfactor Command user mappings (see Editing Access to an SSH Server
Group on page 515 and Editing Access to an SSH Server on page 532).
4. In the Add Logon dialog on the Details tab, enter a Linux Username for the user. This field is required.
5. In the Servers with Publish Policy dropdown on the Details tab, select an available SSH server on which to
create the logon. Only servers that are configured in inventory and publish policy mode (see Server Manager
on page 513) will appear in this dropdown. This field is required.
6. On the Access Management tab in the Users & Groups with Login Access dropdown, select a user or service
account to associate the logon with. Only accounts that have keys stored in Keyfactor Command or that have
been designated as server group owners will appear in the dropdown. If desired, you may enter an Active
Directory group name in this field. This will cause the keys stored in Keyfactor Command for any Active
Directory users that are members of this group to be mapped to the selected Linux logon and published to the
server on which the Linux logon exists. Any Active Directory users that are members of this group but who do
not have keys stored in Keyfactor Command will not be mapped to the selected Linux logon. Click Add. The
Tip: For keys created through the My SSH Key portal (see My SSH Key on page 483), a Keyfactor user
is an Active Directory user account. For keys created through the Service Account Keys page (see
Service Account Keys on page 495), a Keyfactor user is a user-generated service account name of the
form servicename@hostname.
Note: When the logon is created on the Linux server, a home directory will be created for it and within
this, the .ssh directory and authorized_keys file. The logon user will be made owner of the home directory
and granted rwx permissions to it. No password is set for the user and as initially configured, the user will
not be able to remotely login.
Tip: The time it will take for new logons to appear on your Linux server will depend on the frequency of
the server synchronization configured for the server group to which the server belongs (see Adding Server
Groups on page 514).
On the Access Management tab of the Edit Logon dialog, you can map Keyfactor user accounts to Linux logon
account to cause the SSH keys in Keyfactor Command associated with thoseKeyfactor users to be published to the
authorized_keys file of the Linux user (see SSH on page 478).
3. In the Logons grid locate the logon that you wish to publish an SSH key to by mapping an Active Directory
account to it. Be sure to select the logon associated with the correct server, as the same logon name may
appear for multiple servers.
4. Double-click the logon, right-click the logon and choose Edit from the right-click menu, or highlight the row in
the logons grid and click Edit at the top of the grid.
5. On the Access Management tab in the Users & Groups with Login Access dropdown, select a user or service
account to associate the logon with. Only Keyfactor users that have keys stored in Keyfactor Command, that
have been designated as server group owners, or AD users or groups that have been previously entered for
association with a logon will appear in the dropdown. If desired, you may enter an Active Directory user or
group name in this field. Using an Active Directory group to create Linux logon to Keyfactor user mappings will
cause the keys stored in Keyfactor Command for any Active Directory users that are members of this group to
be mapped to the selected Linux logon and published to the server on which the Linux logon exists. Any Active
Directory users that are members of this group but who do not have keys stored in Keyfactor Command will
not be mapped to the selected Linux logon. Click Add.
Tip: For keys created through the My SSH Key portal (see My SSH Key on page 483), a Keyfactor user
is an Active Directory user account. For keys created through the Service Account Keys page (see
Service Account Keys on page 495), a Keyfactor user is a user-generated service account name of the
form servicename@hostname.
Tip: Only the mappings of Keyfactor users to Linux logons on the Access Management tab are editable in
an existing logon record. Nothing on the Details tab of the Edit Logon dialog is editable.
Figure 330: Creating Linux Logon to Keyfactor User Mappings Using Active Directory Groups Key Value
To delete a logon, highlight the row in the logons grid and click Delete at the top of the grid or right-click the logon
in the grid and choose Delete from the right-click menu.
Note: Deleting a logon in Keyfactor Command does not delete it on the Linux server. It must be manually
removed from the Linux server at the same time. If this is not done, when the next inventory of the Linux
server is performed, the logon will be recreated in Keyfactor Command. This function is intended primarily
to be used to clean up logons from SSH servers that have been retired.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Complete or partial matches with the Linux logon name of Complete or partial matches with the hostname of the
the user account on the SSH server. SSH server on which the logon resides.
LastLogon UnmanagedKeyId
The date on which the logon was last used to login to the The Keyfactor Command reference ID of the unmanaged
given hostname. key(s) associated with the logon.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
On the Users tab of the Server Manager page you can view all the SSH users defined in Keyfactor Command. Both
users and service accounts are included. See SSH on page 478 for more information on the difference between
users and service accounts. Active Directory groups may also be included if they have previously been used to
create Linux logon to Keyfactor user mappings (see Editing Access to an SSH Server on page 532). Groups appear
without associated keys (since keys are associated with the member users, not the groups). Users may appear here
On this tab you can see the keys associated with each user and create mappings between the users and Linux
logons in order to allow the orchestrator to publish new SSH keys for those users to the SSH servers associated
with the selected Linux logons (see SSH on page 478).
On the Details tab of the Edit User dialog, you can view details about the user and associated key. On the Access
Management tab of the Edit User dialog, you can map Keyfactor user accounts to Linux logon account to cause the
SSH keys in Keyfactor Command associated with those Keyfactor users to be published to the authorized_keys file
of the Linux user (see SSH on page 478).
Tip: For keys created through the My SSH Key portal (see My SSH Key on page 483), a Keyfactor user is an
Active Directory user account. For keys created through the Service Account Keys page (see Service
Account Keys on page 495), a Keyfactor user is a user-generated service account name of the form servi-
cename@hostname.
3. In the Users grid locate the user whose key you wish to publish to one or more Linux logons.
5. On the Access Management tab in the Login Access dropdown, select a logon to associate the user or service
account with. A logon will appear more than once if it exists on more than one server. Be sure to select the
logon on the correct server. Click Add.
Tip: Only the mappings of Keyfactor users to Linux logons on the Access Management tab are editable in
an existing user record. Nothing on the Details tab of the Edit Users dialog is editable.
To delete a user, highlight the row in the users grid and click Delete at the top of the grid or right-click the user in
the grid and choose Delete from the right-click menu.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Username Fingerprint
Complete or partial matches with the username of the The fingerprint of the public key. Each SSH public key has a
user. Keyfactor users (based on Active Directory users), single cryptographic fingerprint that can be used to
Active Directory groups, and service accounts are included uniquely identify the key.
in the grid. For Active Directory users and groups, the user-
name is in the form DOMAIN\username. For service Email
accounts, the username is made up of the username and
client hostname entered when the service account key The email address of the user requesting the key. This
was created (e.g. myapp@appsrvr75). Supports the email address is used to alert the user when the key pair is
%ME% token (see Advanced Searches on the next page). approaching the end of its lifetime (see Key Rotation
Alerts on page 180).
Key Type
Stale Date
A number of cryptographic algorithms can be used to
generate SSH keys. Keyfactor Command supports RSA, The date on which the SSH key pair is considered to have
Ed25519, and ECDSA. RSA keys are more universally reached the end of its lifetime. By default, the lifetime of
supported, and this is the default key type when gener- an SSH key pair is 365 days (see Application Settings: SSH
ating a new key. Tab on page 571). Supports the %TODAY% token (see
Advanced Searches on the next page).
Key Length
Logon Count
The key size available when generating a new key depends
on the key type selected. Keyfactor Command supports The number of Linux logons associated with the user.
256 bits for Ed25519 and ECDSA and 2048 or 4096 bits for
RSA. The default key length is 2048.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
You can choose to populate the date field by:
l Clicking in a date Value field to open a pop-up calendar to select a date that will populate the field.
l Clicking in a segment of the date format (i.e., mm/dd/yyyy) and entering a value. As you continue to type in
any one segment, the cursor will keep moving onto the next segment.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
Most functions in the Management Portal are available to users with the Server Admin role for SSH. The Enterprise
Admin role is used to grant administrators the permission to create server groups and change the owner of a
server group (see SSH Server Groups on page 513). Other than these two things, users with the Server Admin role
and those with the Enterprise Admin role have the same level of access. Users with the User role (and neither of
the SSH admin roles) can access only the My SSH Key page to allow them to generate an SSH key pair for their own
use.
Tip: Permissions for the SSH reports and the key rotation alerts (see Key Rotation Alerts on page 180) are
covered by the standard reporting and workflow permission roles, not by the specialized SSH permission
roles.
Table 19: SSH Permissions Table shows the access users with each of these roles has to the SSH functions within
the Management Portal.
User Key: Generate and Rotate (My SSH Key) Yes Yes Yes
Service Account Key: View and Search for Service Account Yes Limited1 No
Keys
Unmanaged Keys: View and Search for Unmanaged Keys Yes Yes6 No
Server Group: View and Search for Server Groups Yes Limited8 No
Server Group: Edit Access (map an SSH key to a logon for a Yes Limited11 No
server group)
1Users with the Server Admin role may only view and search for service account keys that are in server groups
they own.
2Users with the Server Admin role may only create service account keys in server groups they own.
3Users with the Server Admin role may only view and edit service account keys that are in server groups they own.
4Users with the Server Admin role may only view and delete service account keys that are in server groups they
own.
5Users with the Server Admin role may only view and download service account keys that are in server groups they
own.
6Users with the Server Admin role may only view and delete unmanaged keys that are in server groups they own.
7Users with the Server Admin role may only view and delete unmanaged keys that are in server groups they own.
8Users with the Server Admin role may only view and search for server groups they own.
9Only users with the Enterprise Admin role may change the owner of a server group. Users with the Server Admin
role may change other settings when editing a server group.
10Users with the Server Admin role may only view the servers in server groups they own.
11Users with the Server Admin role may only map SSH keys from user accounts to Linux logons on servers that are
in server groups they own.
Server: Edit Access (map an SSH key to a logon on a server) Yes Limited5 No
1Users with the Server Admin role may only view and search for servers that are in server groups they own.
2In order to create new servers, these users must also hold the Agent Management - Read role.
3Users with the Server Admin role may only create new servers as members of server groups that they own. In
order to create new servers, these users must also hold the Agent Management - Read role.
4Users with the Server Admin role may only view and edit servers that are in server groups they own.
5Users with the Server Admin role may only map SSH keys from user accounts to Linux logons on servers that are
in server groups they own.
6Users with the Server Admin role may only view and delete servers that are in server groups they own.
7Users with the Server Admin role may only view and search for logons that are in server groups they own.
8Users with the Server Admin role may only create new logons on servers that are members of server groups that
they own.
9Users with the Server Admin role may only view and edit logons that are on servers in server groups they own.
10Users with the Server Admin role may only map SSH keys from user accounts to Linux logons on servers that are
in server groups they own.
11Users with the Server Admin role may only view and delete logons that are on servers in server groups they own.
12Users with the Server Admin role may only view and search for users that are associated with logons that are in
server groups they own.
13Users with the Server Admin role may only map SSH keys from user accounts to Linux logons on servers that are
members of server groups that they own.
The options available in the System Settings section of the Management Portal are:
Audit Log
1Users with the Server Admin role may only view and delete users that are associated with logons that are in
server groups they own.
Each tab of the Applications Settings page is organized into sections—a General section and additional sections
based on the functionality controlled by each tab. Click the plus ( / ) next to a section to toggle expand/collapse
that section.
Depending on your Keyfactor Command license, not all application settings may be applicable in your envir-
onment.
Console General Bulk Edit Details The number of certificates at a time that are read from the data-
Batch Size base when using the Edit All feature to edit certificate metadata.
This setting can be adjusted if there are responsiveness issues
when editing large numbers of certificates at once. The default
value is 5000.
Console General Bulk Edit Batch The number of certificates at a time that are saved to the data-
Size base when using the Edit All feature to edit certificate metadata.
This setting can be adjusted if there are responsiveness issues
when editing large numbers of certificates at once. The default
value is 3000.
Console General CA Sync Consec- The number of errors a CA synchronization can encounter before
utive Error Limit the synchronization job stops (without running to completion).
Console General CA Sync Page Size The number of records at a time that are read from the CA
during a CA synchronization job. The default value is 500.
Console General Dashboard Collec- The number of minutes before data for the Collections dash-
tion Caching board panel is refreshed. The default value is 20.
Interval (minutes)
Console General Weeks of CA The number of weeks of CA data to include in the dashboard
Stats graphs. The default value is 24.
Console General Debug Embedded If set to True, causes an Enable Debug tickbox to appear on the
Reports parameters page for reports you access and run from the Navig-
ator (reports on the Reports menu dropdown of the Manage-
ment Portal). This option does not appear for reports generated
from the Report Manager grid. When enabled it allows the
reports to output debug level information when they run. If set
to False, does not display the Enable Debug option. The default
value is False.
Console General Display CA Host- If set to True, causes both the CA’s FQDN and logical name (e.g.
name [Link]\Corp Issuing CA Two) to display in the CA
fields on the Certificate Authority, Certificate Requests and API
Applications pages of the Management Portal. If set to False,
only the CA’s logical name (e.g. Corp Issuing CA Two) displays on
these pages. The default value is True.
Console General Extension The path to the location on the Keyfactor Command server
Handler Path where the event handler .dll files are stored. By default this is
"C:\Program Files\Keyfactor\Keyfactor Plat-
form\ExtensionLibrary\".
As of version 9.0 of Keyfactor Command, PowerShell scripts for
alert handlers need to be in the extension path or a subdirectory
of it specified by this application setting. For example, create a
directory called Scripts under the ExtensionLibrary directory and
then reference your PowerShell script as Scripts\MyPower-
Shell.ps1. Any scripts referenced by PowerShell handlers that are
outside this path will fail to run.
Console General Immediately Sync If set to True, causes certificates to immediately sync to
Revoked Certi- Keyfactor Command upon revocation rather than waiting for the
Console General Report Footer A string that appears at the bottom of Logi-based reports either
generated from the Management Portal or generated with the
Report Manager in PDF format. The report footer appears only at
the very end of the report, not at the foot of every page in the
report.
Console General Report Footer The file name of an image to be used at the bottom of each page
Icon of exported and scheduled PDF reports. You can use this to
replace the Keyfactor logo with a custom image on your reports.
The image is auto set to a height of 30px. This image should be
placed in the _SupportFiles folder under the Logi folder (located
at C:\Program Files\Keyfactor\Keyfactor Platform\Logi by
default).
Console General Revoke All If set to True, causes the Revoke All button to appear at the top
Enabled of certificate collection grids to allow users with appropriate
permissions to revoke all certificates in a certificate collection. If
set to False, hides the Revoke All button. The default value is
True.
Console General Timer Service The number of minutes between checks by the master
Configuration scheduling service for changes to the synchronization schedules.
Interval (minutes) Any changes made to this value will not be applied until the
Keyfactor Command service is restarted. The default value is 10.
Console Monitoring Expiration Alert The maximum number of expiration alert emails that will be sent
Test Result Limit when an expiration alert test is run from within the Management
Portal. If the number set here is exceeded during a test, emails
will not be sent, but a portion of the alerts will be visible on the
expiration alerts test page (see Testing Expiration Alerts on
page 154). The default value is 100.
Console Monitoring Key Rotation The maximum number of key rotation alert emails that will be
Alert Test Result sent when a key rotation alert test is run from within the Manage-
Limit ment Portal. If the number set here is exceeded during a test,
emails will not be sent, but a portion of the alerts will be visible
on the key rotation alerts test page (see Testing Key Rotation
Alerts on page 183). The default value is 100.
Console Monitoring Pending Alert The maximum number of pending alert emails that will be sent
Test Result Limit when a pending alert test is run from within the Management
Portal. If the number set here is exceeded during a test, emails
will not be sent, but a portion of the alerts will be visible on the
pending alerts test page (see Testing Pending Request Alerts on
page 164). The default value is 100.
Console Monitoring Pending Alerts The maximum number of pending alert emails that will be sent
Max Reminders for a given pending certificate. Every time a pending alert task is
run, an email will be sent for a given pending certificate until the
limit is reached. It is recommended that the number is kept at 5
or less. The default value is 1.
Auditing General Audit Entry The number of years to retain the audit log entry details. The default
Retention value is 7.
Period
Note: The audit log cleanup job runs once daily and
removes any audit log entries older than the time specified
in the retention parameter except those in the following
protected categories:
l Security
l CertificateCollections
l ApplicationSettings
l SecurityIdentities
l SecurityRoles
Auditing Log Server Host Name The host name of the centralized logging server to receive the
Keyfactor Command audit log entries.
Auditing Log Server Port The port to connect to the centralized logging server. The default
port (configurable during install) is 514.
Auditing Log Server Use SysLog If set to True, enables sending audit log details to a centralized
Server logging server. See Audit Log Output to a Centralized Logging Solu-
tion on page 690.
Auditing Log Server Use TLS If set to True, enables sending audit log details to a centralized
Connection logging server over a TLS connection. See Audit Log Output to a Cent-
ralized Logging Solution on page 690.
Note: Regular expressions for enrollment that were previously configured under application settings are
now configured on the templates page (see Regular Expressions on page 352).
Enrollment General Display CA If set to True, causes both the CA’s FQDN and logical name (e.g.
Hostname [Link]\Corp Issuing CA Two) to display in the CA
dropdowns in the Keyfactor Command Management Portal inter-
faces. If set to False, only the CA’s logical name (e.g. Corp Issuing
CA Two) displays in these dropdowns. The default value is True.
Enrollment General Subject The format of the subject field that will be created for the certi-
Format ficates requested through the Keyfactor Command Management
Portal if the template used for enrollment is set to supply in
request. For example:
CN={CN},E={E},O=Key Example\, Inc.,OU=
{OU},L=Chicago,ST=IL,C=US
The data in the subject format takes precedence over any data
entered during PFX enrollment or supplied by enrollment
defaults (see Enrollment Defaults Tab on page 348). For
example, with the above subject format, the organization for
certificates generated through PFX enrollment will always be
"Key Example, Inc." regardless of what is shown on the
PFX enrollment page during enrollment.
This setting applies to CSRs generated using the CSR generation
method in the Keyfactor Command Management Portal, CSR and
PFX enrollments done in the Keyfactor Command Management
Portal, and to CSR and PFX enrollments done using the Classic
API.
Data from the default subject does not display on the CSR or
PFX enrollment page. To define defaults that will display in the
PFX enrollment form (and can be modified by users), use enroll-
ment defaults (see Enrollment Defaults Tab on page 348).
Enrollment General URL to The URL for a web page providing terms and conditions to which
Subscriber a user must agree before being allowed to enroll for a certificate
Terms if the CA setting of Require Subscriber Terms is enabled.
Enrollment CSR Allow CSR SAN If set to True, enables the section of the CSR enrollment page
Entry that allows for entry of custom subject alternative names (SANs).
The default value is False.
Enrollment CSR Enabled If set to True, enables administrative CSR enrollment. The
default value is True.
Enrollment PFX Allow Custom If set to True, enables the section of the PFX enrollment page
Friendly Name that allows for entry of a custom friendly name for the certi-
ficate. The default value is False.
Enrollment PFX Allow Custom If set to True, enables the section of the PFX enrollment page
Password that allows for entry of a custom password for the PFX file. The
default value is False.
Enrollment PFX Enabled If set to True, enables administrative PFX enrollment. The
default value is True.
Enrollment PFX File Extension The file extension that will be given to the certificate files.
Typical extensions are PFX or P12. The default value is PFX.
Enrollment PFX Only use If set to True, the one-time password generated to encrypt the
Alpha PFX file acquired through the Keyfactor Command Management
Numeric Chars Portal (if the user’s Active Directory password is not used) will
contain just numbers and letters. If set to False, the password
will contain numbers, letters and special characters. This setting
is ignored if PFX Use Active Directory Password is set to True.
The default value is True.
Enrollment PFX Use Active If set to True, uses the user’s Active Directory password to
Directory Pass- encrypt the PFX file containing the certificate acquired through
word the Keyfactor Command Management Portal and its private key.
If set to False, generates a one-time password to encrypt the PFX
file. The default value is False.
Enrollment PFX Password The number of characters in the one-time password generated
Length to encrypt the PFX file acquired through the Keyfactor Command
Management Portal. The minimum number is 8. The default
value is 12.
Enrollment PFX Require If set to True, requires the user to enter a custom friendly name
Custom for the certificate. The default value is False.
Friendly Name
Agents General Job Failures and Warnings The number of days orchestrator job failures and
Age Out (days) warnings should be included in the count of failures
on the orchestrator job history tab. The default value
is 7.
Agents General Certificate Authority For The certificate authority used for reenrollment
Submitted CSRs requests made from the Certificate Stores page. See
Certificate Store Reenrollment on page 387.
Agents General Heartbeat Interval The frequency, in minutes, with which an orchestrator
(minutes) (e.g. Keyfactor Universal Orchestrator, Keyfactor Java
Agent or Keyfactor Mac Auto-Enrollment Agent)
should query the Keyfactor Command orchestrator
server for a status on the accuracy of its jobs list. The
default value is 5.
Agents General Send Entropy during on Whether the configure call returns the property
device key generation "Entropy" containing 2048 bytes. This property is
Agents General Registration Check The frequency, in minutes, with which an orchestrator
Interval (minutes) should check with the Keyfactor Command server to
see if it has been approved as an orchestrator. The
default value is 30.
Agents General Number of times a job The number of times an orchestrator job will attempt
will retry before reporting to retry running if it encounters an error before
failure failing. The default value is 5.
Agents General Revoke old Client Auth If set to True, revokes the previous certificate used for
Certificate orchestrator client certificate authentication after the
certificate has successfully been renewed using the
client certificate authentication renewal extension.
The default value is True.
Agents General Session Length (minutes) The frequency, in minutes, with which an orchestrator
renews its session with the Keyfactor Command
server and obtains a new session token in the absence
of any other reason for the orchestrator to renew the
session token. The session token is also renewed
when an orchestrator job changes (e.g. an inventory
schedule changes, a certificate is scheduled for addi-
tion to a certificate store, or a certificate is scheduled
for removal from a store) or the orchestrator is
restarted. The default value is 1380.
Agents General Template For Submitted The template used for reenrollment requests made
CSRs from the Certificate Stores page. See Certificate Store
Reenrollment on page 387. The template selected for
this value must be available for enrollment against the
CA listed in the Certificate Authority For Submitted
CSRs setting.
Agents Authentication Always Use Certificate If set to True, the orchestrator will be authenticated
from Header
Agents F5 Ignore Server SSL Warn- If set to True, the orchestrator will connect to the F5
ings device using SSL even if it detects a problem with the
certificate on the F5 device (e.g. it doesn’t trust the
issuer of the certificate because the certificate is self-
signed). This option applies only to the F5 methods
based on the F5 SOAP API (see Certificate Stores on
page 357). The F5 methods based on the F5 iControl
REST API automatically ignore SSL warnings without
the need to set this option. The default value is False.
Agents SSL SSL Maximum Discovery The maximum number of endpoints for scanning that
Job Size will be assigned to any one orchestrator for a given
discovery scan job part. Together with the SSL Scan
Job Timeout setting, this can be used to fine tune the
running of SSL discovery scan jobs. The default value
is 16,384.
Agents SSL SSL Maximum Email The maximum number of results to display in an SSL
Results monitoring results email message table of certificates
that have expired or are expiring shortly. The default
value is 500.
Agents SSL SSL Maximum Monitoring The maximum number of endpoints for scanning that
Job Size will be assigned to any one orchestrator for a given
monitoring scan job part. Together with the SSL Scan
Job Timeout setting, this can be used to fine tune the
running of SSL monitoring scan jobs. The default value
is 16,384.
Agents SSL Retain SSL Endpoint The number of days old an endpoint history record
History (days) must be before it is available for deletion by the
endpoint history cleanup process. Endpoint history
records older than this will be retained if they are the
last records for the given endpoint. Both the last
discovery and last monitoring records will be retained
regardless of age. The default value is 30.
Agents SSL SSL Scan Job Timeout The maximum number of minutes any one orches-
(minutes) trator is allowed to attempt to run an SSL scan job
before the job for that orchestrator is abandoned and
given to the next orchestrator in the orchestrator pool
to run (if applicable). The default value is 180.
Agents SSL SSL Scan User Agent Defines what is sent to endpoints when Request
[Link] is enabled on a SSL Network.
API General Allow Deprecated If set to False, API applications will not be able to access earlier
API Calls versions of API methods or other legacy API methods that have
been replaced or updated. Many of the updated methods offer addi-
tional security measures, so this setting can reduce the risk of unau-
thorized API access, but may cause API applications written against
these earlier versions to stop functioning correctly. If you do not
have any such applications, this should be set to False. The default is
True.
For more information, see Versioning in theKeyfactor Web APIs
Reference Guide.
API General API Throttling The maximum rate at which API applications can make requests to
Interval (seconds) the API. A larger value will mitigate risks from certain denial of
service and brute-force/dictionary attacks, but will limit the perform-
ance of applications needing to make multiple API calls. This can be
set to zero to disable throttling.
API Certificate Authorization The number of minutes for which a token (from a GET token request
Enrollment Token Timeout such as GET /CertEnroll/1/Token) is valid as an HTTP request header
for authentication. This setting also controls the number of minutes
in the past a /CertEnroll/3 request timestamp can be and still be
accepted.
API Certificate Reverse Legacy If set to True, switches the order of the certificates returned in the
Enrollment Enrollment Chain certificate chain from an enrollment request with the Classic API
Order (such as a POST /CertEnroll/3/Pkcs10 request). For example, if the
certificates are being returned with the CA's root certificate as the
first certificate in the list and the end entity certificate as the last
certificate in the list while this value is False, changing this value to
True will cause the certificates to be returned with the end entity
certificate first in the list and the CA's root certificate last in the list.
The default value is False.
SSH General Key Lifetime The number of days for which an SSH key generated through My SSH Key
(days) (see Generating a New Key on page 489) or Service Account Keys (see
Creating a Service Account Key on page 498) is considered valid. The
default is 365 days.
SSH General SSH Key Pass- The regular expression against which the password entered when
word creating, rotating or downloading keys for both user SSH keys (My SSH Key
on page 483) and service account SSH keys (Service Account Keys on
page 495) will be validated. The default is a minimum of 12 characters
configured as:
^.{12,}$
SSH General SSH Key Pass- The error message displayed to the user in the relevant SSH pages of the
word Error Keyfactor Command Management Portal when the password referenced
Message does not match the regular expression defined for the password using the
SSH Key Password setting.
Workflow General Workflow The number of seconds a workflow instance step will be allowed to
Step Run run before timing out and setting the instance to a status of Failed.
Timeout The default is 60 seconds.
(seconds)
Workflow General Instance The number of days to retain completed workflow instances
Cleanup Days (successful or failed) before they are purged. The cleanup job runs
daily at midnight. The default value is 14.
Note: When defining the AD groups/users you will use to form Identities, consider whether you will
have a one-to-one or one-to many relationship between Identities and Roles.
l Define the naming convention for Security Roles. Menu access and certificate security will be assigned to
Roles which in turn will be applied to Security Identities.
l Determine the Keyfactor Command menu access and level of functionality you want to apply to each Role
using the permissions information found Security Role Permissions on page 578.
l Determine certificate security based on collections and certificate stores permissions based on containers, if
any. See below for more information for consideration.
Next, you need to think about what you want your users to be able to do with the stores they have access to. By
granting Read access to the stores, you're allowing your users to browse to the certificate stores page and see all
the stores and containers that they've been granted access to, but they can perform no operations related to the
stores. These are controlled with additional permissions (see below) that can also be set either globally or on a
container-by-container basis. You can combine global and container-level security.
Example: You've decided that you need to use container-level security at the Read level on three
different containers rather than granting global Read to your Web Server Managers group. You want
these users to be able to push new certificates out to certificate stores in the IIS Personal, PEM and Java
containers but not to stores on your F5 and NetScaler devices. You could either grant them the Schedule
permission on a container-by-container basis or you could grant them the global Schedule permission for
Certificate Store Management. Since the users have neither the global Read permission nor container
permission for the containers for the F5 and NetScaler devices, these two settings would accomplish the
same goal.
In addition to the permissions that must be considered when designing a permission scheme for certificate stores,
you must also give consideration to permissions for certificates. Users must have permissions to certificates in
order to use the certificate store operations. See Certificate Permissions on page 587 and Container Permissions
on page 590.
Next, you need to think about what you want your users to be able to do with the certificates they can view. There
are certificate operation permissions (see Certificate Permissions on page 587) that you can set that control what
your users can do with the certificates. These can be set either globally or on a collection-by-collection basis. You
can combine global and collection-level security.
Example: You've decided that you need to use collection-level security at the Read level on four different
collections to grant Read access to your PKI Help Desk group and will not grant them global Read permis-
sions. You also want these users to be able to edit the metadata fields of the certificates in all four of
these collections. You could either grant them the Edit Metadata permission on a collection-by-collection
basis or you could grant them the global Edit Metadata permission. Since the users don't have the global
Read permission (and thus can't read the other collections), these two settings would accomplish the
same goal.
At the global level, the Certificates Read role permission grants access to both the certificate search page and all
certificate collections. Users who have been granted only collection-level Read permissions and not global Read
permissions have access only to the collections to which they have been granted access and not to the certificate
search page. See Security Role Permissions on page 578 and Certificate Permissions on page 587.
In addition to the Certificates role permissions that must be considered when designing a permission scheme for
certificates, you must also give consideration to the Certificate Collections and Certificate Store Management
global role permissions.
l Enabling the Certificate Collections Modify global role permission allows users to use the Save, Save As and
Delete buttons for a collection. This allows users to create new certificate collections based on existing collec-
tions (Save As), delete existing collections (Delete), or modify select settings about an existing collection
(Save). Typically, Certificate Collections permissions would only be granted to users who also had at least
global Read permissions to allow them to do certificate searches from which to create new collections.
l You will need to consider the Certificate Store Management role permissions if you use certificate stores and
want any of your limited access users to make use of the Add to Certificate Store, Remove from Certificate
Store, or Renew/Reissue operations on certificates. These certificate operations are only available to users
Security Roles are used in conjunction with Security Identities to define much of the user access to entities within
Keyfactor Command. From the Securities Roles and Identities page you can view the lists of security roles and
security identities and manage your security configuration. For more information on security considerations in
Keyfactor Command see Keyfactor Command Security Design Considerations on page 573.
Security Roles
During the Keyfactor Command installation and configuration process, the security role Administrators is created
(see Administration Section). The Administrators role grants full permissions to the Management Portal and
cannot be edited or deleted. If all users of the Management Portal should have full access to all features within the
portal, this one role will be sufficient for your needs. However, if you would like to grant access to other users but
limit the functionality available to those users, you need to add one or more new security roles for this purpose.
A Reporting API Access role is automatically created during installation to support the dashboard and reporting
access required by the Logi Analytics Platform. The service account used for the IIS application pool on the
Keyfactor Command Management Portal server (where Logi is installed) is automatically created as an identity and
associated with this role if you've opted to use integrated Windows authentication. If you've opted to use basic
authentication, the user you enter on the Dashboard and Reporting tab of the configuration wizard in the
Keyfactor API User field will be created as an identity and associated with this role.
Configuring security roles within Keyfactor Command (see Security Role Operations on page 594) has several
effects. These roles are used to:
l Grant access to the Management Portal, by selecting menu access permissions for a role. See Security Role
Permissions on page 578.
Note: For the most part, when you grant Modify role permissions to an area in the Management Portal,
you must also grant Read role permissions to that same area for that security role to receive full func-
tionality. Granting Modify without Read to a user or a group can result in unexpected behavior. See also
Certificate Permissions on page 587.
Security roles affect the Management Portal and the APIs only.
Security roles for SSH key management are structured somewhat differently than those for most of the rest of the
product set, as they don't use the standard Read and Modify convention. For more information, see SSH Permis-
sions on page 549.
Security Identities
Identities are created in Keyfactor Command using Active Directory users or groups. During the Keyfactor
Command installation and configuration process, administrative security identities are created using the Active
Directory user or group record you entered on the Keyfactor Portal tab of the configuration wizard in the Admin-
istrative Users field (see Administration Section). More than one user or group may be entered during config-
uration, if desired. Identities entered in the configuration wizard are associated with the Administrators role that
grants all permissions to the Management Portal.
If you would like to grant access to other users but limit the functionality available to those users, you need to add
one or more new security identities for this purpose and link them to one or more appropriate security roles. See
Security Identity Operations on page 598.
The Security Role Permissions that are available to be assigned to security roles within Keyfactor Command are
documented below.
Agent Auto-Registration
Table 27: Agent Auto-Registration Security Role Permissions
Read AgentAutoRegistration: Users can view the orchestrator auto-registration settings; users must
Read also have Read permissions for Agent Management to access this
page in the Management Portal.
Agent Management
Table 28: Agent Management Security Role Permissions
Read WorkflowManagement: Users can view the pending, issued, and denied workflow alerts.
Read
Modify WorkflowManagement: Users can modify the pending, issued, and denied workflow alerts,
Modify including the alert text, recipients, and event handlers. Users can also
add new alerts, delete alerts, and configure the pending alert
delivery schedule.
Test WorkflowManagement: Users can test the pending alerts, including sending email to recip-
Test ients. Users must also have Read permissions for Alerts.
API
Table 30: API Security Role Permissions
Read API: Read Users can call the Classic (CMS) API endpoints. This permission is not needed to
use the Keyfactor API endpoints.
Application Settings
Table 31: Application Settings Security Role Permissions
Auditing
Table 32: Auditing Security Role Permissions
Read Auditing: Read Users can access the Audit Log page in the Management Portal, and will be able
to make API requests to obtain data from the audit log (query, etc.). The System
Settings dropdown menu will display the Audit Log option to users with the
Auditing Read permission.
Modify CertificateCollections: Users can add or edit Certificate Collections. See Certificate Permis-
Modify sions on page 587 for more information.
Certificate Enrollment
Table 34: Certificate Enrollment Security Role Permissions
Enroll PFX CertificateEnrollment: Users can use the PFX Enrollment page in the Management Portal and
EnrollPFX the equivalent API functions.
Enroll CSR CertificateEnrollment: Users can use the CSR Enrollment page in the Management Portal and
EnrollCSR the equivalent API functions.
CSR Generation CertificateEnrollment: Users can use the CSR Generation page in the Management Portal and
CsrGeneration the equivalent API functions.
Manage Pending CertificateEnrollment: Users can use the Pending CSRs page in the Management Portal and
CSRs PendingCsr the equivalent API functions.
Read CertificateMetadataTypes: Users can read custom metadata attribute definitions on the Certi-
Read ficate Metadata page in the Management Portal and the equi-
valent API functions.
Modify CertificateMetadataTypes: Users can add, edit, and delete custom metadata attribute defin-
Modify itions on the Certificate Metadata page in the Management Portal
and the equivalent API functions.
Certificate Requests
Table 36: Certificate Requests Security Role Permissions
Manage WorkflowManagement: Users can participate in the pending, issued, and denied alerts by
See Container Permissions on page 590, Certificate Operations on page 38, Certificate Store Types on page 601
and Certificate Store Operations on page 361 for more information.
Read CertificateStoreManagement: Users can view the certificate stores and containers tabs on the
Read Locations > Certificate Stores menu, and view certificate store
types.
Modify CertificateStoreManagement: Users can manage all operations regarding certificate stores—
Modify including the stores, containers, and discovery process—and
certificate store types.
Certificates
Table 38: Certificates Security Role Permissions
Read Certificates: Read Users can view certificates, including certificate history, and can download
certificates. Users who also have Read permissions for Certificate Store
Management or container permissions can add certificates to certificate
stores from Certificate Search and Certificate Collections. See Certificate
Permissions on page 587 for more information.
Edit Metadata Certificates: Users can modify certificate metadata for certificates accessed through
EditMetadata Certificate Search and Certificate Collections in the Management Portal and
the equivalent API functions..
Import Certificates: Import Users can import certificates using the Management Portal Add Certificate
page or the Keyfactor API POST /Certificates/Import method. Users who
also have Read permissions for Certificate Store Management or container
permissions can add certificates to certificate stores from Add Certificate.
Download with Certificates: Recover Users can download the certificates with their private key.
Private Key
Revoke Certificates: Revoke Users can revoke certificates through Keyfactor Command.
Delete Certificates: Delete Users can delete certificates and, if applicable, the private keys of the certi-
ficates from the Keyfactor Command database.
Import Private Certificates: Users can save the private key for the certificate in the Keyfactor Command
Key ImportPrivateKey database.
Dashboard
Table 39: Dashboard Security Role Permissions
Read Dashboard: Read Users can view the panels on their personalized dashboard and add and
remove them.
Risk Header Dashboard: Users can view the risk header at the top of the dashboard.
RiskHeader
Read EventHandlerRegistration: Read Users can view the event handler registration settings.
Modify EventHandlerRegistration: Modify Users can modify the event handler registration settings.
Read MacAutoEnrollManagement: Read Users can view the Mac Auto-Enroll Management settings.
Modify MacAutoEnrollManagement: Modify Users can modify the Mac Auto-Enroll Management settings.
Read AdminPortal: Users can access the Management Portal. This permission must be enabled for
Read all roles that will access the Management Portal.
Monitoring
Table 43: Monitoring Security Role Permissions
Read Monitoring: Users can view the expiration alerts in the Certificate Alerts in the Management
Read Portal and the equivalent API functions, including the alert schedule.
Modify Monitoring: Users can modify the expiration alerts, including the alert text, recipients and
Modify event handlers. Users can also add new alerts, delete alerts and configure the
expiration alert delivery schedule.
Test Monitoring: Test Users can test the expiration alerts, including sending email to recipients. Users
must also have Read permissions for Monitoring to access this in the Manage-
ment Portal.
PKI Management
Table 44: PKI Management Security Role Permissions
Read PkiManagement: Read Users can view PKI management settings within:
l Certificate Authorities
l Certificate Templates
l Revocation Monitoring
Modify PkiManagement: Modify Users can modify PKI management settings to:
l Import, add, edit, and delete certificate authorities
l Import and edit certificate templates
l Add, edit, delete, and test revocation monitoring
endpoints
l Configure revocation monitoring schedule
l Configure revocation monitoring recipients
Modify PrivilegedAccessManagement: Modify Users can add, edit, and delete PAM providers.
Reports
Table 46: Reports Security Role Permissions
Modify Reports: Modify Users can modify the delivery schedule for reports in Report Manager in the
Management Portal and the equivalent API functions and add, edit, and delete
custom reports.
Security Settings
Table 47: Security Settings Security Role Permissions
Read SecuritySettings: Users can view the settings for Security Roles and Security Identities. Users
Read must also have the Read permission for System Settings to access this in the
Management Portal.
Modify SecuritySettings: Users can modify the settings for Security Roles and Security Identities.
Modify
User SSH: User Users can generate their own SSH keys.
Server Admin SSH: ServerAdmin Users can use all SSH functions, except creating server groups and assigning
server group owners. Users have limited access to some functions based on
server group ownership (see SSH Permissions on page 549).
Enterprise Admin SSH: Enter- Users can use all SSH functions (see SSH Permissions on page 549).
priseAdmin
SSL Management
Table 49: SSL Management Security Role Permissions
Read SslManagement: Users can view the SSL Discovery pages in the Management Portal and the
Read equivalent API functions, including defined networks and the network
ranges configured for them, agent pools, and scan results. Users can use the
query tool on the Results tab to find discovered endpoints and then view the
discovered endpoints, including the details for the endpoints.
System Settings
Table 50: System Settings Security Role Permissions
Read SystemSettings: Users can view the orchestrator auto-registration settings; users must also
Read have Read permissions for Agent Management to access this in the Manage-
ment Portal. Users can view the System Settings for:
l SMTP Configuration for email delivery of reports and alerts
l Installed components
l Licensing
Workflow Definitions
Table 51: Workflow Definitions Security Role Permissions
Modify WorkflowDefinitions: Users can modify both the built-in and any custom workflow defin-
Modify itions, including the name and description and the configuration for the
steps. Users can also add new workflow definitions, delete workflow
definitions, publish workflow definitions, and import and export work-
flow definitions.
Workflow Instances
Table 52: Workflow Instances Security Role Permissions
ReadAll WorkflowInstances: Users can view all the workflow instances that have been initiated.
ReadAll
Read - Assigned WorkflowInstances: Users can view the workflow instances that have been initiated and are
To Me ReadAssignedToMe awaiting input from them.
Read - Started By WorkflowInstances: Users can view the workflow instances that have been initiated by them
Me ReadMy (e.g. because they enrolled for a certificate).
Manage WorkflowInstances: Users can manage initiated workflow instances, including stopping,
Manage restarting, and deleting them.
Permissions on certificates and their collections are controlled at two levels—globally at the certificate level and
on a collection-by-collection basis. Global certificate permissions are controlled on the Certificates role permis-
sions. Global collection permissions are controlled with the Certificate Collections role Modify permission used in
conjunction with the collection-by-collection basis permissions controlled on the Collections Permissions tab.
Certificate-related permissions can be granted globally (per global permissions—Certificates on page 581) or on a
collection basis (per the Certificate Permissions above tab). Both options share the same permissions options,
except global certificate permissions have the additional role permissions of Import Private Key and Import, which
can not be assigned at the collection level.
Users with collection-level Read role permissions on a collection will see the collections to which they have been
granted access appear on the Certificate Collections menu (if they have been configured to appear on the menu
(see Certificate Collection Manager on page 72). The users will be able to view all the certificates in the collections
and open the details of the certificates.
In the case of collections, users will be able to further refine the collection query by including additional selection
criteria in the query field, but these are used in addition to the base query. Users are not allowed to clear the base
query for the collection, which is displayed above the query field. For example, for the collection shown in Figure
346: Collection with Read Collection-Level Security, if the user added this in the query field:
CN -notcontains "keyother"
The query would return all the certificates issued in the last 30 days with the string "appsrvr" in the CN using a
template referencing "Web" but without the string "keyother" in the CN—in other words, the web server certi-
ficates for application servers issued in the last 30 days for the [Link] domain but not the web server
certificates for application servers issued in the last 30 days for the [Link] domain.
If the users have also been granted global Read permission on Certificates, they can modify the metadata of any
certificates within the Keyfactor Command database. If the users have not been granted the global Read permis-
sion, they can only modify the certificates found in collections to which they have been granted collection-level
Read access.
Note: If you plan to edit metadata via the Keyfactor API, the user running the API needs only Edit
Metadata permissions. Read permissions are not required.
Important: In order to successfully revoke certificates, the service account under which the Keyfactor
Command application pool is running must be granted "Issue and Manage Certificates" and "Manage CA"
permissions to the CA database as per the Create Active Directory Groups to Control Access to Keyfactor
Command Features section of the Keyfactor Command Server Installation Guide, or, if delegation is
configured for the CA, the user executing the revoke must have the"Issue and Manage Certificates"
permissions while the application pool service account has the "Manage CA" permissions. If you are using
explicit credentials to authenticate your CA (see Adding or Modifying a CA Record on page 310), it is the
user specified on the CA configuration in Keyfactor Command who must have permissions on the CA.
Permissions on certificate stores are controlled at two levels—globally and on a certificate store container-by-
container basis. When designing a certificate store permission scheme, you may use entirely global permissions or
you may use a combination of global permissions and container permissions. Both global and container permis-
sions are configured through Security Roles (see Security Role Operations on page 594).
Global certificate store permissions are controlled with the Certificate Store Management role permissions on the
Global Permissions tab of the Security Role Information dialog.
Container-by-container permissions are set on the Container Permissions tab of the Role Information dialog for
each container by name using the same set of permissions.
Any containers that do not have container-by-container permissions applied fall back to the global permissions, if
any global permissions have been set for that role.
Container permissions work in conjunction with many other security permissions to control access to certificate
stores related functionality.
Tip: See the detailed tip sections of Certificate Operations on page 38 , Certificate Store Operations on
page 361 and Certificate Store Types on page 601 for more information regarding which combination of
security permissions are required for various operations.
UI Permission Description
Read Users can view the certificate stores and containers tabs on the Locations > Certificate Stores menu,
and view certificate store types.
Schedule Users can add certificates to certificate stores, renew/reissue certificates, schedule and remove certi-
ficates from certificate stores.
Modify Users can manage all operations regarding certificate stores—including the stores, containers, and
discovery process—and certificate store types.
To view permissions for a security identity, highlight the row in the security identity grid and click View Permis-
sions at the top of the grid or right-click the row in the grid and choose View Permissions from the right-click
menu. Within this dialog you can view the global permissions for the identity, certificate store container permis-
sions, or certificate collection permissions.
If the user or group has been granted more than one role, you see the permissions of all the roles granted to the
user or group consolidated together on the View Permissions dialog for easy viewing. Hover over a specific permis-
sion to see how that permission we granted.
2. On the Security Roles and Identities page, select the Security Role tab and click Add from the menu at the top
of the grid to add a new security role, or highlight a row and click Edit from the top of the grid or from the
right click menu to modify an existing role.
Note: The Administrators and Reporting API Access roles cannot be edited or deleted.
3. Either the Add Security Role dialog or Role information For <role> dialog will open. Fill in each tab of the
dialog with the information desired for the selected security role.
a. On the Global Permissions tab, click the toggle buttons for the permissions that are appropriate for the
new role (see Security Role Permissions on page 578).
b. Optionally, on the Collection Permissions tab, highlight each certificate collection you would like to set
permissions for and click the toggle button for each desired permission (see Certificate Permissions on
page 587). If you do not select any collections, the permissions set on the Global Permissions tab will
apply to all collections. A search bar has been added to the top of Collection Name column on the collec-
tions tab of the security dialog to make it easier to find and assign permissions.
c. Optionally, on the Container Permissions tab, highlight each container you would like to set permissions
for and click the toggle button for each desired permission (see Container Permissions on page 590). If
you do not select any containers, the permissions set on the Global Permissions tab will apply to all
containers. A search bar has been added to the top of Container Name column on the containers tab of
the security dialog to make it easier to find and assign permissions.
d. On the Identities/Access tab, click Add to open the Add Security Identities dialog, which shows all unas-
signed identities created in Keyfactor Command (see Security Identity Operations on page 598). Check
the box next to each desired identity and click Add or Add and Close to add the identity to the list for this
role. Or select one or more existing identities and click Remove to remove them from this security role
2. On the Security Roles and Identities page, select the Security Role tab. Highlight a row and click Copy from the
top of the grid or from the right click menu to copy an existing role.
Note: Copying a security role will also assign the new role to all the same security identities as the
original role.
4. The name will automatically be set to Copy of (original role name) with the same description as the original
role. Update the name and description and click Save.
Note: The Administrators and Reporting API Access roles cannot be copied.
2. On the Security Roles and Identities page, select the Security Role tab. Highlight a row and click Delete from
the top of the grid or from the right click menu to delete an existing role.
Note: The Administrators and Reporting API Access roles cannot be edited or deleted.
Tip: You can view all the permissions set for a given role at a glance by granting one role to one identity
only (and no other roles) and then using the View Permissions option for the identity (see View Permis-
sions of Security Identities on page 591).
From the Securities Identities tab of the Security Role and Identities page in Keyfactor Command you can create
the individual identities that will be associated with one or more security roles to define the user access to
Keyfactor Command. Prior to adding new security identities, it is recommended that you create all of the security
roles you require (see Security Role Operations on page 594) so they can be assigned to the new security iden-
tities. You can also get a complete view of permissions for an identity (see View Permissions of Security Identities
on page 591).
2. Select the Security Identity tab of the page. Click Add to add a new security identity.
3. The Add Security Identities dialog will open. Enter an AD user or security group name using "DOMAIN\group
name" format and click Save to save the new identity. If the user or group cannot be resolved, you will receive
an error.
Important: The built-in Active Directory groups Domain Admins and Enterprise Admins cannot be
used directly to grant access to the Management Portal due to how these groups function within
Windows. You can create a custom Active Directory group, reference that group in the Management
Portal, and add the built-in Domain Admins or Enterprise Admins group to that custom group, if
desired.
2. Select the Security Identity tab of the page. Highlight the identity in the grid and choose Edit Roles from the
right-click menu, or click Edit Roles at the top of the identity grid.
3. In the Roles dialog, select the appropriate role in the Available Roles list and use the right arrow to move the
role to the Current Roles list. Repeat for all desired roles. Click Save to assign the role(s) to the identity.
2. Select the Security Identity tab of the page. Highlight the identity you want to delete and click Delete at the
top of the grid. Or right-click the row in the grid and choose Delete from the right-click menu.
Warning: Do not delete the last identity associated with the Administrator role or you will lose access to
the administrative features of the Management Portal.
Note: The security role search skips the validation check when loading for improved performance. The
validation still occurs when loading a single record, so users will encounter an error when trying to work
with an invalid role.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
Name
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
Comparison Value
The value you enter for comparison must match the field type. For example, integer fields only support numerical
values. String fields support all alphanumeric characters. Boolean fields only support True or False. The value field
is not case sensitive. Date fields support only properly formatted dates and will initially display as mm/dd/yyyy.
The results that match your search criteria will be displayed in the results grid below the search selection options.
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
(CN -contains "appsrvr" AND IssuedDate -ge "01/01/2022") OR (CN -contains "appsrvr" AND
TemplateShortName -contains "web")
This query will return all the certificates issued on or after January 1, 2022 with the string "appsrvr" in the CN and
also all certificates issued at any time with the string "appsrvr" in the CN using a template referencing Web. When
you have entered all the desired search criteria, click Search to execute the query. If you wish to clear the query
field and start over, click the Clear button.
Several built-in certificate store types are provided for use by the standard Keyfactor Command orchestrators.
These include:
l Amazon Web Services
l F5 SSL Profiles
l F5 Web Services
l F5 CA Bundles REST
l F5 SSL Profiles REST
l F5 Web Server REST
l File Transfer Protocol
l IIS Personal
Custom certificate store types can be created for use with the AnyAgent Framework (see Certificate Store Type
Operations below).
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Certificate store types define locations against which Keyfactor Command can perform predefined operations.
New ones are commonly added for custom orchestrators created with the Keyfactor Command AnyAgent, the
Keyfactor Command Native Agent, or another of the tools in the Keyfactor Integration SDK (see Orchestrators on
page 442).
The certificate store types page displays a list of the currently defined types and offers the options to create new
types, edit existing types and delete types. It is not possible to update built-in certificate store types because doing
so will break the associated orchestrator functionality.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
System Settings: Read
System Settings: Modify
1. In the Management Portal, browse to System Settings Icon > Certificate Store Types.
2. On the Certificate Store Types page, click Add to create a new certificate store type, or click Edit from either
the top or right-click menu to modify an existing one.
3. In the Certificate Store Types dialog, you will see four tabs. Complete the dialog with appropriate information
using the following information:
l Name: Enter a user friendly recognizable name for the certificate store type.
l Short Name: Enter a short name identifier for the certificate store type. This value is used by the
Keyfactor Universal Orchestrator and Windows Orchestrator installation and configuration tools to
validate the orchestrator capabilities.
l Custom Capability: If desired, check this box to allow you to define a custom capability name. By
default, the Short Name is used as the capability name, and in most cases a separate capability name is
not needed. The capability name you set here corresponds to configurations made in the [Link]
file for your custom orchestrator extension.
Note: The Custom Capability cannot be changed on an edit if an orchestrator has registered
with Keyfactor Command, been approved, and included the certificate store type in its capab-
ility list. If you change the Short Name in this circumstance, the Custom Capability box will be
checked and the value set to the original value of the Short Name.
Note: If this is set to Forbidden, the Alias field will not display on the Add to
Certificate Store page unless "Overwrite" is checked on the page.
l Name: Enter the name submitted to the orchestrator and referenced in the extension module custom
code.
l Display Name: Enter a user-friendly recognizable name.
l Type: Select whether parameter information is stored as a string, Boolean, multiple choice or secret.
l Default Value / Multiple Choice Options: Add a default value that will pre-populate the parameter
field in the Add New Certificate Store dialog box. If you select a type of Multiple Choice, populate this
field with a comma-separated list of multiple choice options for this parameter. If you select a type of
Boolean, you will be given the option of True or False here.
l Depends On: Check this box if you have another custom field for this certificate store type and want to
create a relationship between that one and this one. Then select the custom field on which this
custom field depends in the dropdown. This option configures one custom field to display in the certi-
ficate store configuration dialog only if another custom field contains a value.
Tip: What's the difference between custom fields and entry parameters?
l Custom fields are about the certificate store definition itself and are static. For example, you
might use a custom field to define the primary node name of an F5 instance. This node name
is the same no matter what inventory or management jobs you do with the F5 device(s).
Values for custom fields are entered in the certificate store record when creating or editing
the certificate store record.
l Entry parameters are about sending additional information to the server or device that hosts
the certificate store when running management jobs for that certificate store. Often this is
more fluid information that isn't the same for every use of that certificate store. For example,
several virtual servers with separate certificates in the same folder may exist on a NetScaler
device. When replacing one certificate, updates may need to be made to only the virtual
server that is using the certificate. In this case, the authorized user will be prompted to enter
the virtual server name based on an entry parameter. Values for entry parameters are
entered at the time a management job is initiated (e.g. adding a certificate to a certificate
store).
l Name: Enter the name for the entry parameter. This value must be unique.
l Display Name: Enter a user-friendly recognizable name. This value must be unique.
l Type: Select whether parameter information is stored as a string, Boolean, multiple choice or secret.
l Default Value: Add a default value that will pre-populate the parameter field in the Add New Certi-
ficate Store dialog box. If you select a type of Boolean, you will be given the option of True, False, or
Not Set here.
l Multiple Choice Options: Populate this field with a comma-separated list of multiple choice options if
you selected a Type of multiple choice. This field will be grayed out if you selected a Type other than
multiple choice.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
Certificate Store Management: Read
Certificate Store Management: Modify
System Settings: Read
System Settings: Modify
1. In the Management Portal, browse to System Settings Icon > Certificate Store Types.
2. On the Certificate Store Types page, highlight the row in the grid of the certificate store type to delete and
click Delete at the top of the grid or right-click the type in the grid and choose Delete from the right-click
menu.
3. On the Confirm Operation alert, click OK to confirm or Cancel to cancel the operation.
First, you must add all the metadata fields you will use across the platform via System Settings Icon > Certificate
Metadata (see Metadata Field Operations below). These system-wide settings will then become the default
metadata settings for all templates and they will be assigned to certificates during enrollment via the selected
template. You may choose to modify the system-wide metadata field(s) for specific templates by creating
template-specific metadata settings. See Certificate Template Operations on page 333 and Enrollment on page 120
for more information.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
To select a single row in the certificate metadata field grid, click to highlight it and then select an operation from
either the top of the grid or the right-click menu.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
System Settings: Read
Certificate Metadata Types: Read
Certificate Metadata Types: Modify
1. In the Management Portal, browse to the System Settings Icon > Certificate Metadata.
2. On the Certificate Metadata page, click Add to create a new metadata field, or, to edit an existing one,
double-click the row in the metadata grid, right-click the row and choose Edit from the right-click menu, or
highlight the row in the grid and click Edit at the top of the grid.
Important: Be sure to review the list of existing certificate fields on the Certificate Search Page on
page 29 before adding a new metadata field, so you do not add a field of the same name as an
existing field. Doing so would cause a search or alert on that field to fail. For example, do not create a
metadata field called NetBIOSRequester, as this is an existing certificate field name, and having a
metadata field with this name would create issues.
5. The Enrollment Options provide three possible settings for the metadata field:
l Select the Optional radio button to allow users the option to either enter a value or not enter a value
in the field when populating metadata fields.
6. Enter a short hint in the Hint field. This hint appears in unpopulated metadata string, integer, big text and
date fields on editing interfaces to provide the user with a clue as to what type of data should be entered in
the field.
Note: The Hint field is not used for some selections of the Data Type field (see the next step) and will
disappear from the screen if a Data Type that does not use a Hint is selected.
7. Select the Data Type for the field in the dropdown. The available field types are String (alphanumeric), Integer
(whole numbers), Date, Multiple Choice, Big Text, and Boolean (True/False). String fields are limited to 400
characters. Big text fields are limited to 4000 characters. String fields support additional indexing, and so may
be preferable for large databases where possible. The data type cannot be edited if the metadata field is asso-
ciated with any certificate values.
The remaining fields on the dialog—plus the Hint—will vary depending on the data type selected. Table 54:
Certificate Metadata Data Type Dialog Options shows the fields that appear based on the data type selected.
Data Type Hint Default Value RegEx Message RegEx Validation Options
String
Integer
Date
Boolean
Multiple Choice
Big Text
8. To set a default value with which to pre-populate the metadata field for new certificate requests made using
the Management Portal enrollment pages, enter the desired value in the Default Value box, or, for Boolean
fields, select the desired radio button. The default value option appears for string, integer, Boolean and
multiple choice fields.
9. For string fields, you can choose to enter a regular expression against which entered data will be validated in
the RegEx Validation field. When a user enters information in a metadata field that does not match the
specified regular expression, he or she will see the warning message specified in the RegEx Message field. The
example regular expression shown in Figure 363: Create or Edit Certificate Metadata Field is:
^[a-zA-Z0-9'_\.\-]*@(keyexample\.org|keyexample\.com)$
This regular expression specifies that the data entered in the field must consist of some number of characters
prior to the "@" made up only of lowercase letters, uppercase letters, numbers, apostrophes, underscores,
periods, and/or hyphens followed by exactly either "@[Link]" or "[Link]". For more
examples of regular expressions, see Regular Expressions on page 352.
10. For multiple choice fields, enter the series of values that should appear in the field dropdown as a comma
delimited list in the Options field.
For example:
Accounting,HR,IT,Marketing,Sales
Note: The multiple choice options are displayed in the order entered in the comma delimited list.
When a user selects a multiple choice value in a metadata field while editing a certificate, the value is
saved to the database as the string (e.g. Marketing). Subsequently editing the series of values for the
metadata field or rearranging them will not affect existing certificates configured with values for this
field.
2. Right-click a grid row and choose Move from the right-click menu, or highlight the row in the grid and click
Move at the top of the grid.
3. In the Display Order dialog enter the desired display order number and click Save. The value entered must fall
without the current display order range. For example, if the current range is 0-12, enter 12 to move a field to
the end of the list, not 13. The metadata field will move to the entered display order row and the metadata
fields from the rows above and below will be re-ordered.
2. Right-click a grid row and choose Delete from the right-click menu, or highlight the row in the grid and click
Delete at the top of the grid.
The information collected in the audit logs is available for viewing and analysis by several means:
Any activity that triggers an audit flag generates an audit record. Auditable activities include actions (e.g. creation,
change, deletion) on records in Keyfactor Command that have been configured as auditable (e.g. Certificates,
Security, Templates, Application Settings). For a complete list of Keyfactor Command activity that is tracked
through the audit log, see Audit Log Reference Codes on page 628.
The audit log page in the Keyfactor Command Management Portal allows you to view all the audit logs stored in
Keyfactor Command and perform searches on them. Audit logs are stored for seven years, by default (see Applic-
ation Settings: Auditing Tab on page 558).
The grid can be sorted by clicking on a column header. All columns except Message may be sorted. Click the
column header again to reverse the sort order. The grid columns can be arranged in any order desired by click-
holding and dragging the header of the column you wish to move. The column widths may be adjusted by click-
holding and dragging the line separating two column headers.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
The search function allows you to query the database for information. The same query structure is used in multiple
locations within the Keyfactor Command Management Portal.
When you first open the page, you will see the simple search option. To execute a search, select the field and
comparison operators in the dropdowns and type something on which to search in the value field (if applicable). If
you select an "is null" or "is not null" comparison operator, the value field will be grayed out. Click the Search
button to execute the query.
Query Field
The available fields for querying vary depending on the area of the Management Portal in which the search is
used. On this page, the queries can be done on the following built-in fields:
The user who performed the audited action. The area of the product in which the auditable activity
Supports the %ME% token (see Advanced Searches occurred. This list is built dynamically to show only those
on page 621). categories that are actually in your audit log. See Audit Log
Reference Codes on page 628 for a complete list of possible
Level categories.
Comparison Operator
The query comparison operators vary depending on the type of field selected and the specific properties of the
field. The list below shows the dropdown list comparison operators, as well as the equivalent query language
syntax (in parentheses).
Most string fields (the vast majority of the built-in fields) support:
The results that match your search criteria will be displayed in the results grid below the search selection options.
When you select Category in the query field, a fourth dropdown will appear. This Property Field allows you to
further refine the search. The options available in this field vary depending on the selection made in the compar-
ison value. Select Any to display all of the results for the selected category search combination. Select a specific
value in the property field to display all the audit records that had changes to the selected field.
Example: To see only changes made to the required approval settings for certificate templates, select
Category in the query field, is equal to in the comparison operator, Template in the comparison value,
Requires Approval in the property field, and click Search.
Figure 367: Audit Log Search Selections for Template Property Field Search
Advanced Searches
On any search page you can click Advanced to the right of the Search button to display the advanced search
options. Click Simple to close the advanced search options again.
Multiple Criteria
Using the advanced search options, you can build a query based on multiple criteria using AND/OR logic. As with a
simple search, you select a field and comparison operator in the drop-downs and then enter a comparison value, if
applicable. Click Insert to add the search criteria to the query field below the selection fields. Use the selection
fields to build multiple search criteria. Each time you click the insert button, an AND is added between the
previous search criteria and the newly added one. You can change the AND to an OR if desired. You can use paren-
theses around portions of the query along with AND/OR to change the query meaning.
In addition to the options available in the query builder, three special values can be used in selected searches by
typing them in directly:
l %TODAY%
Use the TODAY special value in place of a specific date in date queries. This option supports math operations,
so you can use TODAY-10 or TODAY+30. The built-in Certificates Expiring in 7 Days collection uses this special
value (see Certificate Collection Manager on page 72).
l %ME%
Use the ME special value in place of a specific domain\user name in queries that match a domain\user name.
The built-in My Certificates collection uses this special value (see Certificate Collection Manager on page 72).
l %ME-AN%
Use the ME-AN special value in place of a specific user name excluding the domain. This is beneficial in envir-
onments with multiple domains where there is a desire to query for a user's certificates even if they were
requested across multiple domains.
Important: The special query options of %TODAY%, %ME%, and %ME-AN% are only supported in upper-
case. Lowercase equivalents (e.g. %me%) cannot be substituted.
From the Audit Log grid the following operations are available: Download CSV, View details, and Validate a log
entry.
Download CSV
Click the Download CSV button at the top of the audit log grid to generate and download a comma-delimited CSV
file containing all audit log records per the search criteria applied to the grid. The CSV file will contain the inform-
ation shown in Table 55: Audit Download CSV Records for each exported record.
Table 55: Audit Download CSV Records
Field Description
Timestamp The date and time the auditable change was made.
Message The message displayed on the audit log grid. This field contains a human-readable summary of the
change.
Level The logging level of the message (e.g. Info, Warning). Most messages are generated at Information
level.
User The DOMAIN\username taking the action that generated that audit log.
Category The area of the product in which the change was made (e.g. Certificates, Templates, Application
Settings) as per the available values in the category field in the audit grid.
Name The specific item the action was taken on (e.g. the template name for a template change or the applic-
ation setting name for an application setting change).
XMLMessage The details of the change that was made, in XML format. This field contains both the before state and
the after state where applicable (e.g. an application setting that was configured as true before the
change and false after the change). For example, this entry indicates that a change was made to the
key retention policy (the template name the change was made to is specified in the Name field) to
change the number of days for retention from four days to seven days:
<AuditAction>
<ModelState>
<Template>
<KeyRetention enum-
type=[Link]">3</KeyRetention>
<KeyRetentionDays>7</KeyRetentionDays>
<AllowedEnrollmentTypesDisplay ienumerable="true">
<string>PFX Enrollment</string>
<string>CSR Enrollment</string>
<string>CSR Generation</string>
</AllowedEnrollmentTypesDisplay>
</Template>
</ModelState>
<PreviousModelState>
<Template>
<KeyRetention enum-
type="[Link]">3</KeyRetention>
<KeyRetentionDays>4</KeyRetentionDays>
<AllowedEnrollmentTypesDisplay ienumerable="true">
<string>PFX Enrollment</string>
<string>CSR Enrollment</string>
<string>CSR Generation</string>
</AllowedEnrollmentTypesDisplay>
</Template>
</PreviousModelState>
</AuditAction>"
Validate
Highlight a row in the audit log grid and click the Validate button to verify whether the selected item is valid or not
valid. This function checks the integrity of the audit log data for that grid row to determine whether the data has
been tampered with. If the status of the selected item is valid, the validate dialog will indicate this. If the selected
item has been tampered with, the validate dialog will indicate that the selected item is not valid.
The validation status of any audit log item can also be viewed in the details dialog, where a status of or
will be shown.
The audit log details dialog will vary depending on the category and object type audited and whether the log item
is a new entry or has been updated. The details dialog has four sections.
Name
The Keyfactor Command audit Name for the selected audit log entry is in the gray title bar at the top of the dialog.
This is a useful field to use in the search criteria.
Entry Metadata
Directly below the Name at the top left of the dialog is the Entry Metadata section, which displays the internal
metadata information about the currently displayed detail record:
l Operation
The type of activity that generated the audit log record (e.g. created, updated, deleted).
l Time
The time and date that the audit log entry was generated.
l User
The user who carried out the activity that generated the audit log.
l Category
The area of the product in which the auditable activity occurred (see Audit Log Reference Codes on page 628).
l Validation Status
Whether the audit log entry in the database is valid or invalid (see Audit Log Operations on page 622).
Selecting a different entry in the Related Entries section will change the display in this section.
Related Entries
The Related Entries section displays the history of all the related audit log items (e.g. changes to the same
template or certificate) for the selected audit log entry. Click a row in the related entries grid to update the details
dialog with the details of the audit log item for the selected related entry.
The related entries can be sorted by clicking on a the Time or User column headers in the results grid. Click the
column header again to reverse the sort order.
The title of a single column pane changes depending on the audit entry event that triggered the entry. It is made
up of the category and operation performed to create the entry. The details displayed vary depending on the type
object being audited.
The two column pane includes Before Changes and After Changes sections. Only those details that have a
different value as a result of a particular audit event will be displayed. Changed fields with sensitive data will
display as '******'.
Figure 374: Audit Log Details: Two Column Audit Details Pane
The Keyfactor Command audit logs are a record of historical changes that have been made within the product to
key systems. The following shows the full list of currently audited areas (areas of the product) and operations
(types of activity). The equivalent numeric codes are included for those interested in viewing or analyzing raw log
data.
Operations
The type of operation performed.
Table 56: Audit Operations
Value Description
1 Created
2 Updated
3 Deleted
4 Approved
5 Denied
6 Revoked
7 Downloaded
9 Renewed
10 Encountered
11 Scheduled Replacement
12 Recovered
13 Imported
15 Scheduled Add
16 Scheduled Removal
18 Scheduled
19 Reset
20 Disapproved
21 Restarted
22 Sent
23 Failed
24 Completed
25 Rejected
Tip: The Category code of the auditable activity matches the Windows Event ID of the activity.
While the Keyfactor Command audit log functionality covers the entire product, the tracking of operations related
to certificates is especially extensive. Certificate-related operations that are audited include:
l Certificate revocation
l Certificate download
For more information about the audit log and using the audit log search feature, see Audit Log on page 617.
Keyfactor considers the security and integrity of the audit log to be of the utmost importance and takes steps to
ensure that transactions are recorded to the audit log accurately and retained without tampering until they are
purged (by default, after 7 years—see Application Settings: Auditing Tab on page 558).
When Keyfactor Command is installed, a 64-byte key is generated for use in securing audit logs. This key is unique
for the implementation. The key is encrypted and stored in the secrets table in SQL using either SQL-level encryp-
tion or application-level encryption, depending on the level of encryption selected during installation (see the Data-
base Tab section of the Keyfactor Command Server Installation Guide). If application-level encryption is selected,
use of a hardware security module (HSM) is supported. For more information, see the Acquire a Public Key Certi-
ficate for the Keyfactor Command Server section in the Keyfactor Command Server Installation Guide.
When an audit log record is created, the key components of it are signed using the unique 64-byte key and stored
in the SQL database. The signature is retained and tracked. When the audit log is read, it is validated using the
signature. If the signature does not match, the audit log is flagged as invalid (see Validate on page 624), as this
could indicate that the record has been tampered with. The following data is included in the key components:
l The date and time at which the action took place.
l The audit message content, which will vary depending on the type of action that was audited. For example, for
a modification to a template, this would include:
o Template common name (short name)
o Template name
o Template OID
o Key size
o Key type
o Configuration tenant (forest)
o Private key retention setting
o Key archival setting
o Allowed requesters setting
See also Download CSV on page 622.
In order to access the audit logs, users must be granted the Read role permission for the Auditing role (see
Security Roles and Identities on page 576). Users with auditing Read permissions are allowed to access the audit
log page and make API requests to obtain data from the audit log.
Warning: Be aware that this permission essentially grants a user global read access to the product since
the user will be able to view, from the audit log, many of the actions being taken in Keyfactor Command.
When a user tries to access a page in the Management Portal or an API endpoint that they don’t have access to,
they will receive an error and a warning will be logged in the audit log.
The audit log shows the level as Warning and the category as Authorization Failure with a message detailing the
user and the requested page.
For more information about the audit log details, see Audit Log Details on page 625.
Audit log entries are created during the initial Keyfactor Command installation process when the initial templates
and API applications are configured and application settings established. Audit log entries may also be created
when you re-run the Keyfactor Command configuration wizard if you make an auditable change in the wizard.
When you upgrade from a previous version of Keyfactor Command or make a change in the configuration wizard
to an existing Keyfactor Command installation, the audit log entries will show as Updated. The exact number of
entries created depends on the configuration options selected, number of templates, and the templates
configured for enrollment in Keyfactor Command.
For information on using built-in event handlers, see Using Event Handlers on page 194.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
Custom event handlers are used by expiration and enrollment alerts (see Alerts on page 150) but not by Keyfactor
Command workflows (see Workflow on page 204).
1. In the Management Portal, browse to System Settings Icon > Event Handler Registration.
3. In the Analyze Event Handler Assembly File dialog, enter the file name for the event handler file (provided by
Keyfactor if the file has been created by Keyfactor) for analysis and click Save.
2. Highlight the row in the grid and click Delete at the top of the grid.
2. Double-click the event handler or highlight the row in the grid and click Edit at the top of the grid.
3. In the Event Handler Registration dialog, you can change the Display Name for the event handler, if desired.
This name appears in the dropdowns in the expiration, pending request, issued certificate, and denied request
4. Click Save.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
[Link] Preparing Third Party PAM Providers to Work with Keyfactor Command
Before you can begin to use one of the third party PAM providers with Keyfactor Command, you may need to
complete some initial steps to prepare it for use so that it will be available for interaction with Keyfactor
Command. CyberArk requires several configuration steps to install prerequisite software, create required compon-
ents in the CyberArk PrivateArk software, and register components on the Keyfactor Command server (see
Preparing CyberArk to Work with Keyfactor Command on the next page). Keyfactor Command is delivered with the
Configuring the CyberArk Credential Provider to interoperate with Keyfactor Command and store Keyfactor
Command credentials in the CyberArk vault involves these preparatory steps before configuration in Keyfactor
Command can begin:
l Install required software on the Keyfactor Command server.
l Create a safe for the Keyfactor Command credentials in the CyberArk PrivateArk (or identify an existing safe).
l Create passwords in your CyberArk safe for use with your Keyfactor Command certificate stores.
l Create an application user for Keyfactor Command use in the CyberArk PrivateArk.
l Grant the application user and Keyfactor Command provider account in CyberArk appropriate permissions in
PrivateArk to the safe.
l Create a credential file on the Keyfactor Command server for use with CyberArk.
l Register the CyberArk software assembly file with Keyfactor Command.
Software Prerequisites
CyberArk has the following software requirements for interoperability with Keyfactor Command:
l Microsoft Visual C++ 2013 (x64)
l Microsoft Visual C++ 2013 (x86)
l CyberArk Credential Provider
Both versions of Microsoft Visual C++ must be installed on the Keyfactor Command server along with the CyberArk
Credential Provider software before you proceed to creating a credential file on the Keyfactor Command server or
registration of the CyberArk software on the Keyfactor Command server.
2. In the Password Vault web portal, expand the left-hand menu and choose Applications > Add Application.
3. On the Add Application page, enter a Name and Description for your application. If desired, enter Business
owner information. Select Applications in the Location dropdown. No other configuration changes are
required on this page for interoperability with Keyfactor Command, but you may have other configuration
settings you may wish to make. Click Add to save the record.
Figure 384: Add an Application User in CyberArk for Use with Keyfactor Command
2. In the Password Vault web portal, expand the left-hand menu and choose Policies > Access Control (Safes) >
Add Safe.
3. On the Add Safe page, enter a Safe name and Description for your safe. No other configuration changes are
required on this page for interoperability with Keyfactor Command, but you may have other configuration
settings you may wish to make. Click Save to save the record.
Figure 386: Warning that Access is Not Enabled for CyberArk Safe
2. In the Password Vault web portal, expand the left-hand menu, choose Policies > Access Control (Safes), and
highlight the safe you created for Keyfactor Command credentials. On the lower right part of the screen, click
the Members icon.
Figure 387: Open Members for the Application User on the Keyfactor Command CyberArk Safe
3. On the Safe Details page in the Members section, click Add Member.
Figure 388: Safe Details for the Application User on the Keyfactor Command CyberArk Safe
Tip: Since Keyfactor Command is designed to read existing passwords from CyberArk and not write
passwords to CyberArk, these permissions are sufficient for full functionality.
Figure 389: Grant Permissions for the Application User on the Keyfactor Command CyberArk Safe
5. Repeat the previous step for the credential provider user. Typically, this username is Prov_HOSTNAME (where
HOSTNAME is the short hostname of your Keyfactor Command server). You can find the credential provider
username in the [Link] file in the ApplicationPasswordProvider\Vault directory under your
CyberArk credential provider directory.
Tip: Some types of certificates stores (e.g. Java keystores) use the CyberArk safe to store passwords only.
Other types of certificates stores (e.g. F5 SSL Profiles, FTP, AWS) can use the CyberArk safe to store both a
username and a password for the store in separate PrivateArk objects. For stores that use both a user-
name and password, you have the option to store the username in Keyfactor Command and the password
in the CyberArk safe. Both usernames and passwords are stored in the CyberArk safe as password objects.
2. In PrivateArk, locate your safe, right-click and choose Open and Step Into.
3. Once the safe opens, optionally create a folder structure on the left under Root and drill down into it to the
level where you would like to create your password (e.g. Root\ftp).
4. In your selected folder, right-click in the main window on the right and choose New > PrivateArk Protected
Object > Password.
Figure 390: Create a Password for a Keyfactor Command Certificate Store in the CyberArk Safe
5. Enter a name for the object and either generate or enter a password or username.
1. Acquire a copy of the CyberArk [Link]. This is one of the files installed with the CyberArk Creden-
tial Provider. Its installed location may vary depending on the CyberArk version and installation options. In
some implementations it is found in:
2. On the Keyfactor Command server, place a copy of the assembly in the WebAgentServices\bin,
KeyfactorAPI\bin, WebConsole\bin, and Service directories under your Keyfactor Command installation
directory. By default, the directory paths for these will be:
3. On the Keyfactor Command server, open a text editor (e.g. Notepad) using the "Run as administrator" option.
4. In the text editor, browse to open the [Link] file in the WebAgentService directory. By default, this file is
located in the following directory path:
5. If you are using NetPasswordSDK versions [Link] , or higher, in the [Link] file, locate the
assemblyBinding section and add a new dependentAssembly section containing the following code.
<dependentAssembly>
<publisherPolicy apply="no" />
<assemblyIdentity name="NetPasswordSDK" publicKeyToken="40be1dbc8718670f" />
<bindingRedirect oldVersion="[Link]-[Link]" newVersion="[Link]" />
</dependentAssembly>
Important: The redirect newVersion is [Link] for the DLL version [Link]. The 4th number for the
build revision is omitted in the redirect and should be 0 instead for any version targeted.
6. In the [Link] file, locate the container section and locate the commented out registration section
containing the following code, as shown in Figure 391: Enable Registration Entry for CyberArk in [Link]
File:
Remove the comments to activate the registration section so that it appears exactly as the above code.
7. Repeat the previous two steps for the [Link] files found in the KeyfactorAPI and WebConsole directories
and the [Link] file found in the Service directory. By default, these files are found in the
following directory paths:
Configuring the Delinea Secret Server to interoperate with Keyfactor Command and store Keyfactor Command
credentials in the Delinea vault involves these preparatory steps before configuration in Keyfactor Command can
begin:
l Install the required Delinea Secret Server software on a web server in the same forest as the Keyfactor
Command server.
l Create at least one secret in Delinea Secret Server for use with your Keyfactor Command certificate stores.
l Create an API user for Keyfactor Command use in the Delinea Secret Server.
l Grant the API user appropriate permissions to the secret(s) you created in Delinea Secret Server.
l Create an API application in Delinea Secret Server.
l Grant the Keyfactor Command application pool user local administrative permissions on the Keyfactor
Command server to allow the Delinea SDK to create credential files in C:\Windows\System32\inetsrv.
Software Prerequisites
The Delinea Secret Server software needs to be installed on a web server in the same forest as the Keyfactor
Command server. Keyfactor does not recommend installing the Delinea software on the Keyfactor Command
server. Please see the Delinea documentation for system requirements and installation guidance. Keyfactor
Command is delivered with the Delinea dependencies included and enabled to allow interoperability with Delinea
Secret Server, so no configuration steps are required on the Keyfactor Command server to enable to Delinea soft-
ware.
3. On the Secrets page, click the plus button in the top right of the window and choose New Secret.
4. In the Create New Secret dialog, select a template type of Password (for passwords, usernames, access keys
and all similar types of data).
5. In the Create New Secret dialog, enter at a minimum a Name and the password, username, access key or
other information to pass to Keyfactor Command in the Password field.
2. In Secret Server, select Admin from the left menu and then select Users.
5. Enter a User Name, Display Name, Email Address and Password for the API user.
6. In the Add Groups / Users box near the bottom, type in the name of your application user, search and select
your user.
2. In Secret Server, select Admin from the left menu and then select See All.
5. At the top right, move the Disabled/Enabled slider to the right enable this functionality.
7. Enter a Name for the rule. Make note of this name. You will reference it when creating a PAM provider in
Keyfactor Command (see PAM Provider Configuration in Keyfactor Command on the next page).
8. In this Details field, enter the IP address of your Keyfactor Command server.
9. In the Assignment dropdown, select the application user you created for API use with Keyfactor Command.
12. On the SDK Client Management page, click Show Key for your new application (see Figure 395: Locate the
Delinea Rule Key). Make note of the key shown. This is your rule key. You will need this when creating a
PAM provider in Keyfactor Command (see PAM Provider Configuration in Keyfactor Command on the next
page).
Any third-party privilege access management (PAM) providers you wish to configure for use with Keyfactor
Command must be defined first on the PAM Providers page before they can be assigned to certificate stores (see
Certificate Stores on page 357) or used for explicit credentials on a CA (see Adding or Modifying a CA Record on
page 310). You can create a single provider for each provider type (e.g. CyberArk), however, if you have opted to
organize your certificate stores into containers, you will need to create multiple providers to match your container
organization structure (see Certificate Store Containers on page 392). The container field in the PAM provider
definition is not required, but if one is supplied when creating a PAM provider, the PAM provider can only be used
with certificate stores in the matching container and it cannot be used with a CA. Likewise, a PAM provider defined
with no container would be available for selection when setting passwords for any certificate store that also did
not specify a container. A PAM provider configured in this way could be used across a variety of certificate stores
or with a CA.
Permissions for certificate stores can be set at either the global or certificate store container level. See
Container Permissions on page 590 in the Keyfactor Command Reference Guide for more information
about global vs container permissions.
1. In the Management Portal, browse to System Settings Icon > Privileged Access Management.
2. On the PAM Providers page, click Add to create a new provider, or, to modify an existing provider, double-
click the provider, right-click the provider and choose Edit from the right-click menu, or highlight the row in
the providers grid and click Edit at the top of the grid.
3. In the PAM Providers dialog, select a Provider Type in the dropdown. This is the name of the software vendor
that provides your Privilege Access Management Solution. This field cannot be modified on an edit.
4. In the Name field, enter a name to be used to identify the PAM provider throughout Keyfactor Command.
5. In the Container field, select an existing certificate store container in the dropdown, if desired. If you select a
certificate store container, the PAM provider will be available to select when creating a certificate store with
that same container. If you leave this field blank the PAM provider will be available to select when creating a
certificate store without a container or when setting explicit credentials for a CA.
6. The remainder of the fields in the dialog will vary depending on the provider type selected:
CyberArk
l PrivateArk Safe: Enter the name of the safe containing the certificate store password you wish to
use (see Create a CyberArk Safe on page 641).
l Application ID: Enter the name of the application created for Keyfactor Command (see Create a
CyberArk Application User on page 640).
Thycotic (Delinea)
l Server URL: Enter the URL to the Secret Server instance in your environment (e.g. [Link]
[Link]/SecretServer).
l Rule Name: Enter the name of the rule for the API application you created for Keyfactor Command
in Delinea Secret Server (see Create an API Application in Delinea Secret Server on page 650).
l Rule Key: Enter and confirm the rule key value for the API application you created for Keyfactor
Command in Delinea Secret Server (see Create an API Application in Delinea Secret Server on
page 650).
Tip: If a PAM provider has been associated with any certificate stores or CAs, it cannot be deleted.
Tip: The following permissions (see Security Overview on page 573) are required to use this feature:
System Settings: Read
System Settings: Modify
5. Check the Use SSL box if this option is supported by your mail server. Your mail server may not be configured
to support TLS/SSL.
6. Set the Sender Account name in the form of an email address (e.g. user@[Link]). Depending on the
email configuration in your environment, the sender account may need to be a valid user on your mail server
or you may be able to put anything in this field.
7. Set the Sender Name as desired. This is the name that appears as the "from" in the user's mail client both
with anonymous authentication and explicit credentials.
8. Select the appropriate authentication method for your environment. Some mail servers will accept
anonymous. Others may not. If your mail server requires that you provide a username and password for a
specific valid user, select the Explicit Credentials radio button and click Configure Credentials. Enter the valid
user's Active Directory username and password in DOMAIN\username format in the Configure SMTP Relay
Authorization Settings dialog. For most mail server configurations, the user you select here must have as a
valid email address the email address you set in the Sender Account field.
9. You may test the settings prior to saving them. To test the SMTP settings, click the Test button, enter a valid
email address for a mailbox you can open in the Send a Test SMTP Message dialog and click Send. Verify that
the test email is delivered.
To cancel any changes you’ve made without saving, click the Undo button.
To delete a server, highlight the row in the component grid and click Delete at the top of the grid or right-click the
row in the grid and choose Delete from the right-click menu. Servers should not be deleted if they are serving any
active role in the Keyfactor Command environment, as this operation cannot be undone.
Tip: Click the help icon ( ) next to the page title to open the embedded web copy of the Keyfactor
Command Reference Guide to this section.
You can also find the help icon at the top of the page next to the Log Out button. From here you can
choose to open either the Keyfactor Command Documentation Suite at the home page or the Keyfactor
API Endpoint Utility.
3.6.10 Licensing
In the Licensing section of the Management Portal you can view the details of your existing license and replace it
with a new license, if desired.
As your license is approaching expiration, you will see an alert appear on the alerts tab of the Management Portal
(see System Alerts on page 671) and warnings will also be written to the Windows event log on the server running
the Keyfactor Command service 60 days, 30 days and 5 days in advance of the license expiration (or at the next
start of the Keyfactor Command service that falls within these time periods) using event ID 1001.
If you purchase a new license from Keyfactor that enables additional features, extends the number of sources, or
extends the expiration date, you can upload it on the Licensing page. To do this:
2. On the Licensing page, click Replace . The Confirm Operation dialog box will open.
4. Click the Browse button and browse to the location on the file system where the new license file provided by
Keyfactor is stored.
5. The new license will appear next to the existing license. Compare them to confirm that you wish to install the
new license and then click the Save to button to complete the license change.
Important: For a CA Clustered solution, if the CA Policy module is installed on a node then configured,
then failed over to another node, this will corrupt the Check Point key. The module must be installed on
BOTH nodes, configured on one node, then failed over to the other node.
Important: By default, Microsoft CAs do not support the addition of SANs not included in the CSR when
making a request using a CSR enrollment method. To enable your CA to support requesting certificates
with additional SANs, you must either install and configure the Keyfactor Command SAN Attribute Policy
Handler on the CA(s) or enable the Microsoft CA EDITF_ATTRIBUTESUBJECTALTNAME2 flag. There are
security risks inherent in enabling either of these options on your CA. Keyfactor recommends that you do
not enable these options unless it is an absolute requirement. With the SAN Attribute Policy Handler, you
can limit the risk by limiting the exposure to just selected templates. Keyfactor further recommends that
you:
l Use the SAN Attribute Policy Handler only with templates that require CA manager approval so that a
manager will be required to review the request and the added SANs before the certificate is issued.
l Use the SAN Attribute Policy Handler in conjunction with the Whitelist Policy Handler to limit
requests for the selected templates to being initiated only by the Keyfactor Command server(s).
l Configure server level monitoring with a product such as Microsoft’s System Center Operations
Manager (SCOM) to provide alerts for any changes relating to the CA(s) configured with the SAN
Attribute Policy Handler so that, for example, changes to the templates configured to support SAN
addition do not go unnoticed.
The processing order of the handlers currently available in the Keyfactor Command Policy Module, when used
together on the same machine, is significant for some handlers and not others. Specifically, the processing order is
not significant for the vSCEP™ Policy Handler and Keyfactor Command Machine Whitelist Policy handler. These
handlers may be placed anywhere within the list of handlers. However, the processing order does matter for the
SAN Attribute Policy Handler and the RFC 2818 Policy Handler. When these two handlers are used together, the
SAN Attribute Policy Handler must be placed on the list above the RFC 2818 Policy Handler to allow the SAN
Attribute Policy Handler to be processed before the RFC 2818 Policy Handler. This is because the SAN Attribute
Policy Handler removes any existing SANs on the enrollment request and replaces them with those specified in the
request outside of the CSR—such as those entered in the optional SAN section on the CSR page of the Keyfactor
Command Management Portal. This includes any SANs added by the RFC 2818 Policy Handler.
When the Keyfactor Command Policy Module is used, the policy module listed on the Default Policy tab of the
Policy Module Configuration Properties dialog is run first when a request reaches the CA. This default policy might
be the standard Windows default, as shown Figure 406: Default Policy Module, or it might be another non-built-in
policy module, such as the Microsoft FIM CM Policy Module. After the default policy module runs, the Loaded
Handlers on the Custom Handlers tab of the Policy Module Configuration Properties dialog are run in the order
listed (top to bottom). After all the handlers have been run, the result (approved, denied, or marked as pending) is
returned to the CA for processing.
If you missed any of these steps, you will need to complete them before the Keyfactor Command Policy Module
with either the RFC 2818 Policy Handler or SAN Attribute Policy Handler can be used to modify requests, before
the Keyfactor Command Policy Module with the vSCEP™ Policy Handler will be used for iOS enrollment, or before
the Keyfactor Command Policy Module with the Whitelist Policy Handler can be used to gate certificate requests.
For information, please see the Install the Keyfactor Command Policy Module Handlers section in the Keyfactor
Command Server Installation Guide.
1. On the CA where you installed the Keyfactor Command Policy Module, open the Certification Authority
management tool.
2. In the Certification Authority management tool, right-click the CA name at the top of the tree and choose
Properties.
3. In the Properties dialog for the CA on the CA Policy Module tab if the Keyfactor Command Policy Module is
not already selected, click Select, highlight the Keyfactor Command Custom Policy Module in the Set Active
Policy Module dialog and click OK.
4. In the Properties dialog for the CA on the CA Policy Module tab, click Properties, highlight the RFC 2818 Policy
Handler, SAN Attribute Policy Handler, vSCEP Policy Handler, or Keyfactor Command Machine Whitelist
Policy Handler on the list of available or loaded handlers on the Custom Handlers tab of the Policy Module
Configuration Properties, click Load to move it over to the loaded handlers or Unload to move it over to the
available (not in use) handlers. If more than one handler has been installed and moved to the loaded side,
click Move Up and/or Move Down to change the processing order of the handlers. The order processing of
the currently available handlers only matters for the RFC 2818 and SAN Attribute Policy Handlers—the SAN
Attribute Policy Handler must come before the RFC 2818 Policy Handler. Click OK to save changes.
5. See Configuring the RFC2818 Policy Handler on the next page, Configuring the SAN Attribute Policy Handler on
the next page, Configuring the vSCEP™ Policy Handler on page 667, or Configuring the Whitelist Policy Handler
on page 668 for details on configuring a specific policy handler.
6. Click OK as many times as needed to close the configuration dialogs and save the configuration. You may be
prompted to restart the CA services.
The configuration options for the policy handlers can also be found in the registry on the CA in the following paths
(where CA_LOGICAL_NAME is the logical name of the local CA):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\CA_LOGICAL_NAME\Poli-
cyModules\CMS_Custom.Policy\PolicyHandlers\[Link]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\CA_LOGICAL_NAME\Poli-
cyModules\CMS_Custom.Policy\PolicyHandlers\[Link]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\CA_LOGICAL_NAME\Poli-
cyModules\CMS_Custom.Policy\PolicyHandlers\[Link]
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\CertSvc\Configuration\CA_LOGICAL_NAME\Poli-
cyModules\CMS_Custom.Policy\PolicyHandlers\[Link]
Warning: These registry keys should not be modified without advice from Keyfactor support.
2. Highlight the RFC 2818 Policy Handler under Loaded Handlers and click Configure.
3. On the RFC 2818 Policy Handler dialog, select the templates under management by the RFC 2818 policy
handler. The templates selected during initial installation will be displayed here when you first open the
dialog. Certificate enrollments from any source made using the templates selected here on the configured CA
will automatically be assigned a DNS SAN matching the certificate’s CN.
Figure 409: Modify Templates for Management with the RFC 2818 Policy Handler
2. Highlight the SAN Attribute Policy Handler under Loaded Handlers and click Configure.
3. On the SAN Attribute Policy Handler dialog, select the templates under management by the SAN Attribute
policy handler. The templates selected during initial installation will be displayed here when you first open the
dialog. Certificate enrollments via CSR from any source made using the templates selected here on the
configured CA will be allowed to submit SANs outside the CSR.
2. Highlight the vSCEP™ Policy Handler under Loaded Handlers and click Configure.
3. On the vSCEP™ Policy Handler dialog, modify the vSCEP URL at the top of the page if needed. This is the URL
for the Keyfactor Command server where the vSCEP service is installed followed by the virtual directory name
of the validation service. By default, this is CMSValidation. To change the credentials for the vSCEP service
account, check the Change Credentials box, enter the username and password for the Active Directory service
account used to authenticate to the vSCEP service on the Keyfactor Command server. You may use the Select
button to browse for the account. Click the Verify button to confirm that the username and password entered
are valid. Leave the Verify Connection on Save box checked and click Save. The URL entered will be tested to
confirm that it can be reached and that authentication to it succeeds using the credentials provided.
2. Highlight the Keyfactor Command Machine Whitelist Policy under Loaded Handlers and click Configure.
3. On the Template tab of the Policy Module Configuration dialog, you can modify the templates under manage-
ment by the whitelist policy handler. The templates entered during initial installation will be displayed here
when you first open the tab. Any templates entered here will be available for enrollment only from machines
listed on the Machine Names tab. If any of the templates you include here will be used for enrollment through
Keyfactor Command, the Keyfactor Command server(s) need to be included in the Machine Names tab.
l To add a new template for management, enter the certificate template name (short name), not the
template display name of the certificate template you want to manage with the whitelist policy
handler and click Add. In many cases, the template name is the same as the template display name
with the spaces removed. Templates should be added one at a time.
l To remove a template from management, highlight it in the Template list and click Remove.
4. On the Machine Names tab of the Policy Module Configuration dialog, modify the list of machines allowed to
request certificates for the controlled templates as needed. The machine names entered during initial install-
ation will be displayed here when you first open the tab. Any machines entered here will be allowed to enroll
for the templates listed on the Templates tab.
l To add a new machine for management, enter the machine name (FQDN) of the machine that you
want to manage with the whitelist policy handler and click Add. Machines should be added one at a
time.
l To remove a machine from management, highlight it in the Machine name list and click Remove.
1. In Windows Explorer, navigate to the \WebConsole\Images directory under the directory in which Keyfactor
Command is installed. By default, this is:
2. Rename the Keyfactor [Link] file to [Link] (or any unique name of your choosing).
4. Rename it [Link].
5. Return to the Management Portal and refresh your browser (CTRL+F5 or F12) to display the changes.
Note: The image must be a .png format. Using any other format will cause an error.
Tip: The default Keyfactor logo size is 310 x 42 pixels. If you choose a different sized image, the spacing on
the browser screens will change.
Some system alerts are global and will appear on the system alerts panel regardless of where you are in the
Management Portal. Other system alerts (such as some related to SSL scanning) are specific to a particular Manage-
ment Portal page and will only appear when you are on that page.
Ideally, your disaster recovery plan would include backing up each server hosting a Keyfactor role as a whole
entity. This greatly simplifies recovery. With a plan of this sort, you would need these backed up components:
l Keyfactor Servers
Each server hosting a Keyfactor role—your Keyfactor Command servers, any Keyfactor orchestrators, etc.—
should be backed up as entire entities with the full OS and installed applications.
l Your Keyfactor Command SQL Database
All the Keyfactor Command data—both configuration data and synchronized data such as certificates—is
contained within one database, which should be backed up regularly.
l The SQL server Database Master Key (DMK) and Service Master Key (SMK) for your SQL Database
If you need to restore your SQL database to a different SQL server instance than the one from which it was
backed up, you will need either the DMK or the SMK. There are pros and cons to restoring with each of these,
so it can be useful to have both available when you make the restore decision. These only need to be backed
up once unless you change either of these in SQL. See SQL Encryption Key Backup on the next page.
If backing up each server as a whole entity is not feasible or you would like to also back up components on the
servers that differ from a stock install, consider including the following items for backup:
The process of restoring from backup depends on the components that have been affected. If only the Keyfactor
Command server has been lost but the database is intact, the server may be restored from backup and re-
connected to the existing database. If a whole server backup does not exist, a fresh server may be installed,
Keyfactor Command installed again and connected to the existing database, and any customized files restored or
recreated. If the SQL database is lost, the database must be restored from backup along with either the DMK or
SMK (see SQL Encryption Key Backup below).
For assistance with disaster recovery planning or implementation, please contact Keyfactor support (support@key-
[Link]).
SQL Server Encryption uses a SQL Server instance-level service master key (SMK) and a database-level database
master key (DMK) to provide the top-level encryption hierarchy used when encrypting SQL data. The DMK is
protected by one or more passwords and optionally the SMK. For an application—such as Keyfactor Command—to
access SQL encrypted data, the application must either provide one of the DMK passwords or ask SQL Server to
When the Keyfactor Command database is created, the DMK is configured to be protected by the SMK and then
the DMK password is set to a random value, which is not retained. This means the only way to get to the encrypted
data is by leveraging the SMK, which happens automatically without any user interaction or the need to store the
DMK password in a potentially insecure location.
Different restoration scenarios may require a backup of the SMK or the DMK or neither. Some restoration possib-
ilities include:
l In the case where a Keyfactor Command database needs to be restored to the same SQL server where the
backup was taken and the SQL Server software itself is not being restored, the correct SMK will still be present
on the SQL server and restoration of the database itself is sufficient to be able to access the encrypted data.
l In the case where a Keyfactor Command database is being restored to a SQL Server with a different SMK
(either a different SQL Server or the same SQL server that has been reinstalled or had its SMK changed), the
encrypted data will be inaccessible because the server level SMK is not the same as it was when the DMK was
created. In this scenario, either the DMK needs to be restored from the backup taken when the Keyfactor
Command database was created or a known DMK password may be used to recover encrypted data within the
Keyfactor Command database. To prepare for this scenario, the configuration wizard strongly encourages
making a DMK backup when the Keyfactor Command database is created.
l In the case where a Keyfactor Command database needs to be restored to a SQL Server with a different SMK,
the DMK cannot be restored and a DMK password is not known, a backup of the SMK may be used to restore
the server, but this will affect any other databases on the server that make use of SQL encryption.
If no backup of the SMK or DMK exists, all DMK passwords are unknown, and the SQL server holding the SMK is
lost, the encrypted data within Keyfactor Command is not recoverable (even with a database backup.)
To backup the DMK, as a user with control permission on the SQL server where the Keyfactor Command database
is select your Keyfactor Command database and run the following SQL command:
Replace "path_to_file" with a path and filename for the output file. This can be either a local path on the SQL
server or a UNC path. The selected output directory must be writable by the service account under which SQL
Server is running. By default, the SQL backup directory has appropriate permissions. Replace "SecurePass-
word#1234' with a secure password to protect the file. Store the backup file and the password in a safe, well-docu-
mented location. For more information, see:
[Link]
key?view=sql-server-ver15
[Link]
To backup the SMK, as a user with control server permission run the following SQL command on the SQL server
where the Keyfactor Command database is:
[Link]
key?view=sql-server-ver15
[Link]
2017
To prepare for disaster recovery, you should have the DMK backup created during installation, an SMK backup, the
passwords for these files and a recent database backup. You will likely only need either the DMK or the SMK if you
need to restore to a SQL server instance other than the original SQL server instance, but it can be useful to have
the flexibility to choose between the two at restoration time. If you need to restore to the original SQL server
instance, you will only need a recent database backup and not either of the database keys. For information about
restoring using the DMK or SMK, see Disaster Recovery on page 672.
In addition, transactions coming into the Keyfactor Command Management Portal are written into the IIS logs. For
the most part, there is no need to look in the IIS logs unless you encounter a problem you need to troubleshoot.
However, it is a good practice to monitor the text logs, the audit log, and the Windows event logs to make sure the
system is operating smoothly and no errors are occurring.
By default, 10 main text logs are retained before the oldest ones are automatically deleted. Logs are rotated daily
or when they reach a maximum file size, whichever comes first. Depending on the volume of log information
you're generating, 10 logs may cover 10 days or a much shorter period. If you're using a centralized logging solu-
tion that runs daily to copy these to another location for analysis, the default log configuration of 10 logs with a
maximum file size of 50 MB may be a sufficient retention policy. If you intend to analyze them in place on the
Keyfactor Command server, you may wish to extend this retention setting.
In both the text-based logs and the Windows event logs, errors will generally appear with a tag of Error. For the
text log, an error entry would look something like this, with more information following this line (and perhaps
before it) with some further details:
Some errors may be transitory. For example, a CA synchronization may fail because a CA was down for main-
tenance and then succeed on the next try when the server is back up. If you find errors in your logs and need help
tracking down their cause, contact Keyfactor support (support@[Link]).
When troubleshooting an error, it may be helpful to turn up the logging level in the [Link] file relevant to the
component of interest to debug or trace. However, this can result in a large volume of messages that can be hard
to wade through. It is sometimes useful to add further filters to the [Link] file relevant to the component of
interest to filter out log traffic unrelated to the error you are trying to investigate. Some of the NLog files for the
various log components contain pre-defined filters such as:
Note: For more information on how to make changes to your NLog configuration see Editing NLog on the
next page
Some informational, warning, and error messages generated by Keyfactor Command are coded in a manner to
allow them to be redirected for output to the Windows Application event log. If you redirect these messages from
being output to the event log to a file instead, they look something like:
The -EVENT tag (highlighted in red, above) is what codes these messages for redirection to the event log. There are
two configuration lines in the [Link] files for the various log components that relate to Windows event log
redirection—the first formats the data correctly for event log usage and assigns a source to the messages while the
second captures all the messages coded -EVENT, prevents them from going to the regular text log, and redirects
them to the event log for all messages at info, warning or error level. Debug and trace level messages are not
designed to be output to the event log. To reduce the volume of messages to the event log, you can change
minlevel="Info" to minlevel="Warn" or minlevel="Error". Be aware that if you do this, more verbose messages (e.g.
info level messages) will fall through to the text-based log.
By default, messages redirected to the event log are marked with a source of Keyfactor Command for Keyfactor
Command server, Keyfactor Service for the Keyfactor Command Service, and Keyfactor Orchestrators or Keyfactor
Orchestrator for the Keyfactor Universal Orchestrator and Keyfactor Windows Orchestrator.
By default, Keyfactor Command places its log files in the C:\Keyfactor\logs directory, generates logs at the "Info"
logging level, and stores the primary logs for two days before deleting them. If you wish to change these defaults
you can open the configuration file for each type of log on each Keyfactor Command server where you wish to
adjust logging, and edit the file in a text editor (e.g. Notepad) using the "Run as administrator" option. Each
Keyfactor component has its own NLog configuration file and NLog logging output path.
Note: By default, the filename for each component log is unique. This allows you to isolate and research
issues on a component-by-component basis by viewing a specific log file. Alternatively, you may wish to
change the default output filename to be the same for all logging components so all activity is reported in
a single log file. You will note that the default Audit and Alert filenames for each component (for those
components that log audits or alerts) are the same so that all activity is logged in the same file across the
platform for this reason.
Important: If you do choose to name the log files the same across the platform, it is recommended that
you also set the maxArchiveFiles values the same in each Nlog config file. If there is a different value for
maxArchiveFiles for files with the same filename/location, the smallest value will override all others.
1. On each Keyfactor Command server where you wish to adjust logging, open a text editor (e.g. Notepad) using
the "Run as administrator" option.
2. In the text editor, browse to open the desired [Link] file for the appropriate Keyfactor components. The
files are located in application subdirectories under the installed directory, which are the following directories
by default:
Note: Many actions taken in the Keyfactor Command Management Portal are carried out
using the Keyfactor API and Keyfactor is migrating the product to use the Keyfactor API more
and more, so this file will have less and less activity going forward. See C:\Program Files\Key-
factor\Keyfactor Platform\KeyfactorAPI\NLog_KeyfactorAPI.config on page 680.
Settings
The Portal log is for logging any activity to do with the Keyfactor Command web portal. The fields you
may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_Portal_Log.txt"
The path and file name of the active Keyfactor Command portal log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="C:\Keyfactor\logs\Command_Portal_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command portal log files. Keyfactor
Command rotates log files daily and names the previous files using this naming convention.
Settings
The KeyfactorAPI file is the primary file for logging activity related to running Keyfactor Command API.
The fields you may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_API_Log.txt"
The path and file name of the active Keyfactor Command primary log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="c:\Keyfactor\logs\Command_API_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command primary log files. Keyfactor
Command rotates log files daily and names the previous files using this naming convention.
Settings
The Timer Service file logs activity related to scheduled and automated events within Keyfactor
Command and includes the CA sync logs. The fields you may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_Service_Log.txt"
The path and file name of the active Keyfactor Command timer service log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="C:\Keyfactor\logs\Command_Service_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command timer service log files. Keyfactor
Command rotates log files daily and names the previous files using this naming convention.
Settings
The Orchestrators, or OrchestratorsAPI, file logs activity related to orchestrators API. The fields you
may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_OrchestratorsAPI_Log.txt"
The path and file name of the active Keyfactor Command orchestrators log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="C:\Keyfactor\logs\Command_OrchestratorsAPI_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command orchestrators log files. Keyfactor
Command rotates log files daily and names the previous files using this naming convention.
o fileName="C:\Keyfactor\logs\Command_Alert_Log.txt"
The path and file name of the active Keyfactor Command orchestrators log file for alerting
events. This entry is found on servers with the Keyfactor Command Service installed. Info level
messages are written to this log whenever alerts (certificate expiration, pending certificate
request, issued certificate, denied certificate request, or revocation monitoring) are run either
Note: The default value for the archiveAboveSize setting was significantly larger in
versions of Keyfactor Command prior to 7.5. In addition, the default maxArchiveFiles
value was 2 for the main and CA synchronization logging sections. In environments
where the logging level is consistently set at debug level or greater, this change may
result in the generation of several log files per day.
Settings
The Configuration file logs activity related to running the Keyfactor Command configuration wizard
only. The fields you may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_Configuration_Log.txt"
The path and file name of the active Keyfactor Command configuration wizard log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="C:\Keyfactor\logs\Command_Configuration_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command configuration wizard log files.
Keyfactor Command rotates log files daily and names the previous files using this naming
convention.
Settings
The ClasssicAPI file logs activity related to invoking the ClassicAPI from Keyfactor Command. The fields
you may wish to edit are:
o fileName="C:\Keyfactor\logs\Command_ClassicAPI_Log.txt"
The path and file name of the active Keyfactor Command classic API log file.
Important: If you choose to change the path for storage of the log files, you will need
to create the new directory (e.g. D:\KeyfactorLogs) and grant both the service account
under which the Keyfactor Command Service is running and the service account under
which the IIS application pool for Keyfactor Command is running full control permis-
sions on this directory. These roles may be served by the same service account.
o archiveFileName="C:\Keyfactor\logs\Command_ClassicAPI_Log_Archive_{#}.txt"
The path and file name of previous days’ Keyfactor Command classic API log files. Keyfactor
Command rotates log files daily and names the previous files using this naming convention.
o fileName="C:\Keyfactor\logs\Command_Alert_Log.txt"
The path and file name of the active Keyfactor Command classic API log file for alerting events.
This entry is found on servers with the Keyfactor Command Service installed. Info level
messages are written to this log whenever alerts (certificate expiration, pending certificate
request, issued certificate, denied certificate request, or revocation monitoring) are run either
as scheduled tasks or as tests. The log messages include the type of alert (e.g. expiration alert),
the recipient of the alert (if an email was scheduled to be sent), and the alert subject line. You
can change the level of logging in the log line that references writeTo="alertlogfile". These logs
are generated separately to allow for separate tracking and log shipping of alerting events. By
default, the alert log filename/location for all components is the same to allow for a central
source for tracking alert events.
Once configured, the log file location defined will look similar to this:
The log output settings can be initially configured during installation and can be updated on the auditing tab of the
applications settings page. The application settings that relate to log output are:
l Host Name
Set this to the fully qualified domain name of the server that will be receiving the logs.
When you click Save, Keyfactor Command will verify that a connection can be made to the specified server on the
specified port.
The only operation currently affected by this functionality is bulk metadata edit (see Certificate Details: Metadata
Tab on page 18).
The Keyfactor Command Service job has two parameters that can be supplied in the service’s [Link] that
impact the efficiency of the Keyfactor Command Service job.
The parameters can be supplied by appending property elements to the job’s register element in the following
manner:
When the audit entries are added to the SQL logger, the timestamp of the time the bulk job was requested is used,
rather than the time that the job is run by the service. This allows the audit log entries for bulk jobs to appear
0 None (Timer Startup and shutdown notifications of the Keyfactor Command service
Service)
222 CA Synchronization Unable to read the Keyfactor Command database during incremental CA synchron-
ization
322 Monitoring Unable to read the Keyfactor Command database during monitor job run
323 Monitoring An error occurred refreshing a key rotation, cert expiration, CA Health, cert issued,
pending cert, or query item alert service job
372 Monitoring CRL at the endpoint is stale (past the CA's next publish date for the CRL but not yet
at the expiration date)
Note: If a CRL is both in the warning period and stale, only the event log
message for stale will appear in the log.
373 Monitoring CRL at the endpoint is in the warning period configured for email alerts (X days
before expiration)
380 Monitoring An error occurred configuring a SSRS reporting job, CRL alert jobs, or certificate
authority threshold jobs
391 Monitoring CA has failed to meet one of the threshold monitoring requirements
410 Web API A general error occurred during a Keyfactor API request
411 Web API Invalid token error occurred during a Keyfactor APIrequest
413 Web API Invalid template error occurred during a Keyfactor APIrequest
419 Web API Invalid user error occurred during a Keyfactor APIrequest
822 Timer Service Unable to read the Keyfactor Command database during Keyfactor Command
Service job
830 Timer Service Keyfactor Command Service jobs failed to start (alerts, monitoring, sync, other)
1002 Maintenance Audit logs failed to write to the audit log destination
1914 Configuration The configuration wizard database upgrade process completed successfully
Wizard
1915 Configuration The configuration wizard database creation process completed successfully
Wizard
1916 Configuration The configuration wizard database conversion process completed successfully
Wizard
2300 Expiration Renewal Renewal handler was able to successfully renew a certificate
3000 Alert Execution of an alert (pending, issued, expiration, or key rotation) configured in the
Management Portal failed.
3001 Alert Execution of an alert (pending, issued, expiration, or key rotation) configured in the
Management Portal succeeded.
3002 Alert Execution of an alert (pending, issued, expiration, or key rotation) configured in the
Management Portal was canceled.
3003 Alert Execution of an alert (pending, issued, expiration, or key rotation) configured in the
Management Portal started.
3008 Alert A CRL alert for a revocation monitoring location configured in the Management
Portal failed.
3009 Alert A CRL alert for a revocation monitoring location configured in the Management
Portal succeeded.
3010 Alert A CRL alert for a revocation monitoring location configured in the Management
Portal was canceled.
3011 Alert A CRL alert for a revocation monitoring location configured in the Management
Portal started.
3020 Maintenance The process to generate and assign metadata to certificates when they are
imported into Keyfactor Command has started.
3021 Maintenance The process to generate and assign metadata to certificates when they are
imported into Keyfactor Command has failed.
3022 Maintenance The process to generate and assign metadata to certificates when they are
imported into Keyfactor Command has been canceled.
3023 Maintenance The periodic process to generate and assign metadata to certificates when they are
imported into Keyfactor Command has succeeded.
3024 Maintenance The periodic process to remove any stored private keys in the Keyfactor Command
database that have expired and are eligible for deletion has started.
3025 Maintenance The periodic process to remove any stored private keys in the Keyfactor Command
database that have expired and are eligible for deletion has failed.
3026 Maintenance The periodic process to remove any stored private keys in the Keyfactor Command
database that have expired and are eligible for deletion has been canceled.
3027 Maintenance The periodic process to remove any stored private keys in the Keyfactor Command
database that have expired and are eligible for deletion has succeeded.
3028 Maintenance The periodic process to add audit log entries for large jobs started.
3029 Maintenance The periodic process to add audit log entries for large jobs failed.
3030 Maintenance The periodic process to add audit log entries for large jobs was canceled.
3031 Maintenance The periodic process to add audit log entries for large jobs succeeded.
3032 Maintenance The periodic process to remove any audit log history in the Keyfactor Command
database that has expired and is eligible for deletion started.
3033 Maintenance The periodic process to remove any audit log history in the Keyfactor Command
database that has expired and is eligible for deletion failed.
3034 Maintenance The periodic process to remove any audit log history in the Keyfactor Command
database that has expired and is eligible for deletion was canceled.
3035 Maintenance The periodic process to remove any audit log history in the Keyfactor Command
database that has expired and is eligible for deletion succeeded.
3036 Maintenance The periodic process to remove any SSL endpoint history in the Keyfactor
Command database that is eligible for deletion started.
3037 Maintenance The periodic process to remove any SSL endpoint history in the Keyfactor
Command database that is eligible for deletion failed.
3038 Maintenance The periodic process to remove any SSL endpoint history in the Keyfactor
Command database that is eligible for deletion was canceled.
3039 Maintenance The periodic process to remove any SSL endpoint history in the Keyfactor
Command database that is eligible for deletion succeeded.
3040 Alert The periodic process to update the temporary tables that store information on
which certificates are in which certificate collections started.
3041 Alert The periodic process to update the temporary tables that store information on
which certificates are in which certificate collections failed.
3042 Alert The periodic process to update the temporary tables that store information on
which certificates are in which certificate collections was canceled.
3043 Alert The periodic process to update the temporary tables that store information on
3044 Maintenance The periodic process to remove records from temporary files generated while
running reports started.
3045 Maintenance The periodic process to remove records from temporary files generated while
running reports failed.
3046 Maintenance The periodic process to remove records from temporary files generated while
running reports was canceled.
3047 Maintenance The periodic process to remove records from temporary files generated while
running reports succeeded.
3048 Other The periodic process to attempt to continue all suspended workflows that may be
eligible to continue but have not done so due to locking conflicts started.
3049 Other The periodic process to attempt to continue all suspended workflows that may be
eligible to continue but have not done so due to locking conflicts failed.
3050 Other The periodic process to attempt to continue all suspended workflows that may be
eligible to continue but have not done so due to locking conflicts was canceled.
3051 Other The periodic process to attempt to continue all suspended workflows that may be
eligible to continue but have not done so due to locking conflicts succeeded.
3052 Maintenance The periodic process to identify and schedule SSL discovery and monitoring jobs
started.
3053 Maintenance The periodic process to identify and schedule SSL discovery and monitoring jobs
failed.
3054 Maintenance The periodic process to identify and schedule SSL discovery and monitoring jobs
was canceled.
3055 Maintenance The periodic process to identify and schedule SSL discovery and monitoring jobs
succeeded.
3056 Maintenance The periodic process to synchronize certificate templates from a source (e.g. Active
Directory) to pick up new templates started.
3057 Maintenance The periodic process to synchronize certificate templates from a source (e.g. Active
Directory) to pick up new templates failed.
3058 Maintenance The periodic process to synchronize certificate templates from a source (e.g. Active
Directory) to pick up new templates was canceled.
3059 Maintenance The periodic process to synchronize certificate templates from a source (e.g. Active
Directory) to pick up new templates succeeded.
3060 Maintenance The periodic process to run the Microsoft SQL update statistics function in the
Keyfactor Command database started.
3061 Maintenance The periodic process to run the Microsoft SQL update statistics function in the
Keyfactor Command database failed.
3062 Maintenance The periodic process to run the Microsoft SQL update statistics function in the
Keyfactor Command database was canceled.
3063 Maintenance The periodic process to run the Microsoft SQL update statistics function in the
Keyfactor Command database succeeded.
3064 Maintenance The periodic process to remove any completed workflow instances (both successful
and failed) in the Keyfactor Command database that have aged past the date as
defined in that application started.
3065 Maintenance The periodic process to remove any completed workflow instances (both successful
and failed) in the Keyfactor Command database that have aged past the date as
defined in that application failed.
3066 Maintenance The periodic process to remove any completed workflow instances (both successful
and failed) in the Keyfactor Command database that have aged past the date as
defined in that application canceled.
3067 Maintenance The periodic process to remove any completed workflow instances (both successful
and failed) in the Keyfactor Command database that have aged past the date as
defined in that application succeeded.
Table 59: Keyfactor Command Windows Event IDs for Audit Log
2001 Audit Log Auditable event in the Certificate area of the product
2002 Audit Log Auditable event in the API Application area of the product
2003 Audit Log Auditable event in the Template area of the product
2004 Audit Log Auditable event in the Certificate Collection area of the product
2005 Audit Log Auditable event in the Expiration Alert area of the product
2006 Audit Log Auditable event in the Pending Alert area of the product
2007 Audit Log Auditable event in the Application Setting area of the product
2008 Audit Log Auditable event in the Issued Alert area of the product
2009 Audit Log Auditable event in the Denied Alert area of the product
2010 Audit Log Auditable event in the Security Identity area of the product
2011 Audit Log Auditable event in the Security Role area of the product
2018 Audit Log Auditable event related to SSH Key Rotation Alerts
Table 60: Keyfactor Windows Orchestrator and Keyfactor Universal Orchestrator Windows Event IDs
400 Monitoring Job manager for the Keyfactor Windows Orchestrator starting
401 Monitoring Job manager for the Keyfactor Windows Orchestrator stopping
1300 F5 Inventory Keyfactor Windows Orchestrator: Starting inventory job for F5 certificate store (SSL
Profile and Web Server)
Note: This does not include F5 REST jobs, which are part of the AnyAgent
and appear with AnyAgent messages.
1310 F5 Inventory Keyfactor Windows Orchestrator: Completed inventory job for F5 certificate store (SSL
Profile and Web Server)
1320 F5 Inventory Keyfactor Windows Orchestrator: Error while performing an F5 inventory job
1400 F5 Management Keyfactor Windows Orchestrator: Starting management job for F5 certificate store
(SSL Profile and Web Server)
1410 F5 Management Keyfactor Windows Orchestrator: Completed management job for F5 certificate store
(SSL Profile and Web Server)
1420 F5 Management Keyfactor Windows Orchestrator: Error while performing an F5 management job
1640 SSL Monitor Certificate approaching expiration found at endpoint during an SSL scan
1700 IIS Inventory Keyfactor Windows Orchestrator: Starting inventory job for IIS certificate store (IIS
Personal, IIS Trusted Root, and IIS Revoked)
1710 IIS Inventory Keyfactor Windows Orchestrator: Completed inventory job for IIS certificate store (IIS
Personal, IIS Trusted Root, and IIS Revoked)
1720 IIS Inventory Keyfactor Windows Orchestrator: Error while performing an IIS inventory job
1800 IIS Management Keyfactor Windows Orchestrator: Starting management job for IIS certificate store (IIS
Personal, IIS Trusted Root, and IIS Revoked)
1810 IIS Management Keyfactor Windows Orchestrator: Completed management job for IIS certificate store
(IIS Personal, IIS Trusted Root, and IIS Revoked)
1820 IIS Management Keyfactor Windows Orchestrator: Error while performing an IIS management job
2100 NetScaler Keyfactor Windows Orchestrator: Starting inventory job for NetScaler certificate store
Inventory
2110 NetScaler Keyfactor Windows Orchestrator: Completed inventory job for NetScaler certificate
Inventory store
2120 NetScaler Keyfactor Windows Orchestrator: Error while performing a NetScaler inventory job
Inventory
2200 NetScaler Keyfactor Windows Orchestrator: Starting management job for NetScaler certificate
Management store
2220 NetScaler Keyfactor Windows Orchestrator: Error while performing a NetScaler management
Management job
2400 AnyAgent Keyfactor Windows Orchestrator: Starting inventory job for an AnyAgent (e.g. FTP, F5
Inventory REST) certificate store
Keyfactor Universal Orchestrator: Starting inventory job for an AnyAgent (e.g. FTP, IIS)
certificate store
2410 AnyAgent Keyfactor Windows Orchestrator: Completed inventory job for an AnyAgent (e.g. FTP,
Inventory F5 REST) certificate store
Keyfactor Universal Orchestrator: Completed inventory job for an AnyAgent (e.g. FTP,
IIS) certificate
2420 AnyAgent Keyfactor Windows Orchestrator: Error while performing inventory job for
Inventory an AnyAgent (e.g. FTP, F5 REST) certificate store
Keyfactor Universal Orchestrator: Error while performing inventory job for
an AnyAgent (e.g. FTP, IIS) certificate store
2500 AnyAgent Keyfactor Windows Orchestrator: Starting management job for an AnyAgent (e.g. FTP,
Management F5 REST) certificate store
Keyfactor Universal Orchestrator: Starting management job for an AnyAgent (e.g. FTP,
IIS) certificate store
2510 AnyAgent Keyfactor Windows Orchestrator: Completed management job for an AnyAgent (e.g.
Management FTP, F5 REST) certificate store
Keyfactor Universal Orchestrator: Completed management job for an AnyAgent (e.g.
FTP, IIS) certificate
2520 AnyAgent Keyfactor Windows Orchestrator: Error while performing management job for
Management an AnyAgent (e.g. FTP, F5 REST) certificate store
Keyfactor Universal Orchestrator: Error while performing management job for
an AnyAgent (e.g. FTP, IIS) certificate store
2800 Audit Log Keyfactor Universal Orchestrator: Starting fetch logs job
2810 Audit Log Keyfactor Universal Orchestrator: Completed fetch logs job
2820 Audit Log Keyfactor Universal Orchestrator: Error while performing fetch logs job
2900 Agent Service Job manager for the Keyfactor Universal Orchestrator starting
2920 Agent Service Job manager for the Keyfactor Universal Orchestrator stopped
New primary Keyfactor Command licenses may be updated on the Licenses page of the Keyfactor Command
Management Portal (see Licensing on page 656). New licenses for the Keyfactor Command Policy Module should
be installed on the CA where the policy module is installed as follows:
1. On the CA where the policy module is installed, open the Certification Authority management tool.
2. In the Certification Authority management tool, right-click the CA name at the top of the tree and choose
Properties.
3. In the Properties dialog for the CA on the CA Policy Module tab, confirm that the Keyfactor Custom Policy
Module is the selected module and click Properties.
4. On the Licensing tab of the Policy Module Configuration Properties page, click Upload License and browse to
locate the license file provided to you by Keyfactor. This file should have the extension CMSLICENSE.
5. Click OK as many times as needed to close the configuration dialogs and save the configuration.
To transfer a Keyfactor Command database between two SQL servers that do not share the same SMK, as a user
with control permission on the Keyfactor Command database:
1. Add a known password to the DMK by issuing the following SQL command in the Keyfactor Command data-
base. You can specify any password you want that meets the Windows password complexity rules.
ALTER MASTER KEY ADD ENCRYPTION BY PASSWORD = 'SecurePassword#1234'
2. Use your preferred SQL server tools to back up the database, copy the backup media to the target server, and
restore the database on the target server.
3. Use the following SQL commands on the target server to manually open the DMK, protect the DMK with the
target server’s SMK, and remove the DMK password (referencing the password you used on your DMK):
4. Open a new query window on the target server and use the following SQL to validate that the DMK is properly
encrypted by the SMK and that the Keyfactor Command application will be able to ask SQL server to decrypt
information in the database. The commands should run without error.
5. On the source server, if you are not going to remove the Keyfactor Command database, issue the following
SQL command to remove the DMK that was added (referencing the password you used on your DMK):
6. Delete the backup or securely store the backup media that was used, along with the temporary DMK pass-
word, as it can be used to obtain the encrypted Keyfactor Command information.
Tip: CA-level key recovery is supported for Microsoft CAs to allow recovery of private keys for certificates
enrolled outside of Keyfactor Command. CA-level key archiving is not supported for enrollments done
through Keyfactor Command. CA-level key recovery is not supported for EJBCA CAs. For enrollments done
through Keyfactor Command for either Microsoft or EJBCA CAs, use Keyfactor Command private key reten-
tion (see Details Tab on page 339).
[Link]
2. Import the KRA PFX file into the service account user’s personal certificate store.
This process needs to be repeated using the KRA certificate(s) from each CA for which you want to enable recovery
within the Management Portal.
Note: To provide additional security over KRA private key(s), Keyfactor strongly recommends the use of a
Hardware Security Module (HSM) such as the Thales NetHSM.
Tip: CA-level key recovery is not supported for EJBCA CAs. Instead, use private key retention within
Keyfactor Command (see Details Tab on page 339).
1. On the Keyfactor Command server, open the registry editor and browse to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
2. Right-click the Parameters registry key and choose New > DWORD (32-bit) Value. Name the new DWORD
value DisableStrictNameChecking. Set the DisableStrictNameChecking value to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
4. Right-click the MSV1_0 registry key and choose New > Multi-String Value. Name the new value Back-
ConnectionHostNames. Edit the BackConnectionHostNames value and enter each fully qualified domain
name—actual name or DNS alias—for a server that needs this feature on a separate line. For example, for full
DNS alias support with CA delegation functions, you need to enter the DNS alias of the Keyfactor Command
server. For event logging to a machine other than the Keyfactor Command server, you need to enter the name
of that server.
5. After completing the registry configuration you must reboot the Keyfactor Command server before the
changes will take effect.
5.9 Troubleshooting
The following error conditions and general troubleshooting tips may be helpful in resolving issues with the
Keyfactor Command server. Generally speaking, issues on installation or upgrade are often related to SQL
connectivity or permissions. Certificate enrollment issues are often related to Kerberos configuration problems.
Once the logging is set at debug or trace level, it can be helpful to watch the logs live while activity is going on.
There are tools on Windows with functionality similar to the Linux tail function to watch the log in real time. Note-
pad++, for example, has this functionality built in. Be sure to review all the logs that could be relevant. For
example, installation and configuration messages are found in the configuration log. Messages related to using the
Management Portal can be found in both the portal log and the Keyfactor API log.
Some messages in the Keyfactor API and orchestrators API logs include a correlation ID that helps to identify log
messages that originated from the same request. The correlation ID is a randomly generated GUID that often
appears just after the date in the log entry (C282ACA1-DED5-4F2E-B83B-F3F9E865E371 in the following example)
and is the same for all log messages for the given request until the request completes.
General Errors
Below are some possible errors you might encountered and some suggested troubleshooting tips or solutions.
A connection was successfully established with the server, but then an error occurred during the login
process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not
trusted.)
You many encounter this error when trying to install or upgrade to Keyfactor Command version 10 or later:
A connection was successfully established with the server, but then an error occurred during the
login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority
that is not trusted
Keyfactor Command version 10 requires an encrypted connection to the SQL server. If the SQL server is not
configured correctly to receive a secure connection (is not configured with a valid certificate that is trusted by
the Keyfactor Command server), you may receive this message.
[Link]
the-database-engine?view=sql-server-ver15
The certificate request failed with the reason 'The request subject name is invalid or too
long. (Exception from HRESULT: 0x80094001).'
You may encounter this error on an enrollment when the CA rejects the request. If the request is clearly not
excessively long, review the request for invalid characters. Be sure to also check the default subject (see the
Subject Format application setting on the Application Settings: Enrollment Tab on page 559). Quotation marks
should not be used in the fields of the default subject except in the case where these are part of the desired
subject value, as they are processed as literal values. This is a change from earlier versions of Keyfactor
Command where quotation marks were used around fields containing embedded commas.
Figure 427: Certificate Validation Fails for Full Chain and CRL Online
Set each [Link] value to at least 1,000,000 bytes for best SSL scanning performance. The default value
of 4096 KB for the maxRequestLength will probably be sufficient for SSL scanning in most environments, but if it
has been reduced in your environment, you may need to increase it. (The [Link] values are set in bytes
while the [Link] values are set in kilobytes.) If you are scanning networks with especially large numbers of
returned certificates, you may need to increase all these values. Monitor the orchestrator logs after modifying the
values to confirm that you have achieved the desired effect.
A B
Blueprint
AnyAgent
A snapshot of the certificate stores and scheduled
The AnyAgent, one of Keyfactor's suite of orches- jobs on one orchestrator, which can be used to
trators, is used to allow management of certi- create matching certificate stores and jobs on
ficates regardless of source or location by allowing another orchestrator with just a few clicks.
customers to implement custom agent func-
tionality via an API.
C
AnyGateway CA
The Keyfactor AnyGateway is a generic third party A certificate authority (CA) is an entity that
CA gateway framework that allows existing CA issues digital certificates. Within Keyfactor
gateways and custom CA connections to share the Command, a CA may be a Microsoft CA or a
same overall product framework. Keyfactor gateway to a cloud-based or remote CA.
CN CRL
A common name (CN) is the component of a distin- A Certificate Revocation List (CRL) is a list of digital
guished name (DN) that represents the primary certificates that have been revoked by the issuing
name of the object. The value varies depending on Certificate Authority (CA) before their scheduled
the type of object. For a user object, this would be expiration date and should no longer be trusted.
the user's name (e.g. CN=John Smith). For SSL certi-
ficates, the CN is typically the fully qualified
CSR
domain name (FQDN) of the host where the SSL
certificate will reside (e.g. server- A CSR or certificate signing request is a block of
[Link] or [Link]). encoded text that is submitted to a CA when
enrolling for a certificate. When you generate a
CSR within Keyfactor Command, the matching
Collection
private key for it is stored in Keyfactor Command
The certificate search function allows you to query in encrypted format and will be married with the
the Keyfactor Command database for certificates certificate once returned from the CA.
from any available source based on any criteria of
the certificates and save the results as a collection
D
that will be availble in other places in the Manage-
ment Portal (e.g. expiration alerts and certain
reports). DER
A DER format certificate file is a DER-encoded
Common Name binary certificate. It contains a single certificate
and does not support storage of private keys. It
A common name (CN) is the component of a distin- sometimes has an extension of .der but is often
guished name (DN) that represents the primary seen with .cer or .crt.
name of the object. The value varies depending on
the type of object. For a user object, this would be
the user's name (e.g. CN=John Smith). For SSL certi- Distinquished Name
ficates, the CN is typically the fully qualified A distinguished name (DN) is the name that
domain name (FQDN) of the host where the SSL uniquely identifies an object in a directory. In the
certificate will reside (e.g. server- context of Keyfactor Command, this directory is
[Link] or [Link]). generally Active Directory. A DN is made up of
attribute=value pairs, separated by commas. Any
Configuration Tenant of the attributes defined in the directory schema
can be used to make up a DN.
A grouping of CAs. The Microsoft concept of
forests is not used in EJBCA so to accommodate
the new EJBCA functionality, and to avoid confu- DN
sion, the term forest needed to be renamed. The A distinguished name (DN) is the name that
new name is configuration tenant. For EJBCA, uniquely identifies an object in a directory. In the
there would be one configuration tenant per context of Keyfactor Command, this directory is
EJBCA server install. For Microsoft, there would be generally Active Directory. A DN is made up of
one per forest. Note that configuration tenants attribute=value pairs, separated by commas. Any
cannot be mixed, so Microsoft and EJBCA cannot of the attributes defined in the directory schema
exist on the same configuration tenant. can be used to make up a DN.
G
DNS
The Domain Name System is a service that trans- Gateway Connector
lates names into IP addresses.
The Keyfactor Gateway Connector is installed in
the customer forest to provide a connection
E between the on-premise CA and the Azure-hosted,
Keyfactor managed Hosted Configuration Portal to
ECC provide support for synchronization, enrollment
and management of certificates through the
Elliptical curve cryptography (ECC) is a public key
Azure-hosted instance of Keyfactor Command for
encryption technique based on elliptic curve
the on-premise CA. It is supported on both
theory that can be used to create faster, smaller,
Windows and Linux.
and more efficient cryptographic keys. ECC gener-
ates keys through the properties of the elliptic
curve equation instead of the traditional method H
of generation as the product of very large prime
numbers. Host Name
The unique identifier that serves as name of a
Endpoint computer. It is sometimes presented as a fully
An endpoint is a URL that enables the API to gain qualified domain name (e.g. server-
access to resources on a server. [Link]) and sometimes just as a
short name (e.g. servername).
Enrollment
Hosted Config Portal
Certificate enrollment refers to the process by
which a user requests a digital certificate. The user The Keyfactor Hosted Configuration Portal is used
must submit the request to a certificate authority to configure connections between on-premise
(CA). instances of the Keyfactor Gateway Connector and
and on-premise CAs to make them available to
Azure-hosted instance of Keyfactor [Link]
EOBO portal is Azure-hosted and managed by Keyfactor.
A user with an enrollment agent certificate can
enroll for a certificate on behalf of another user. Hosted Configuration Portal
This is often used when provisioning technology
such as smart cards. The Keyfactor Hosted Configuration Portal is used
to configure connections between on-premise
instances of the Keyfactor Gateway Connector and
F and on-premise CAs to make them available to
Azure-hosted instance of Keyfactor [Link]
Forest portal is Azure-hosted and managed by Keyfactor.
A Java KeyStore (JKS) is a file containing security The Keyfactor Gateway Connector is installed in
certificates with matching private keys. They are the customer forest to provide a connection
often used by Java-based applications for authen- between the on-premise CA and the Azure-hosted,
tication and encryption. Keyfactor managed Hosted Configuration Portal to
provide support for synchronization, enrollment
and management of certificates through the
K Azure-hosted instance of Keyfactor Command for
the on-premise CA. It is supported on both
Key Length Windows and Linux.
Logical Name
Orchestrator
The logical name of a CA is the common name
Keyfactor orchestrators perform a variety of func-
given to the CA at the time it is created. For
tions, including managing certificate stores and
Microsoft CAs, this name can be seen at the top of
SSH key stores.
the Certificate Authority MMC snap-in. It is part of
the FQDN\Logical Name string that is used to refer
to CAs when using command-line tools and in P
some Keyfactor Command configuration settings
(e.g. [Link]\Corp Issuing CA Two).
P12
A PFX file (personal information exchange format),
M also known as a PKCS#12 archive, is a single, pass-
word-protected certificate archive that contains
MAC Agent both the public and matching private key and,
optionally, the certificate chain. It is a common
The MAC Agent, one of Keyfactor's suite of orches-
format for Windows servers.
trators, is used to manage certificates on any
keychains on the Mac on which the Keyfactor MAC
Agent is installed. P7B
A PKCS #7 format certificate file is a base64-
Metadata encoded certificate. Since it's presented in ASCII,
you can open it in any text editor. PKCS #7 certi-
Metadata provides information about a piece of
ficates always begin and end with entries that look
data. It is used to summarize basic information
something like ---- BEGIN CERTIFICATE---- and ----
about data, which can make working with the data
END CERTIFICATE----. Unlike PEM files, PKCS #7
easier. In the context of Keyfactor Command, the
files can contain only a certificate and its certifiate
certificate metadata feature allows you to create
chain but NOT its private key. Extensions of .p7b
custom metadata fields that allow you to tag certi-
or .p7c are usually seen on certificate files of this
ficates with tracking information about certi-
format.
ficates.
P7C
O
A PKCS #7 format certificate file is a base64-
Object Identifier encoded certificate. Since it's presented in ASCII,
you can open it in any text editor. PKCS #7 certi-
Object identifiers or OIDs are a standardized ficates always begin and end with entries that look
system for identifying any object, concept, or something like ---- BEGIN CERTIFICATE---- and ----
END CERTIFICATE----. Unlike PEM files, PKCS #7
PKI
PEM
A public key infrastructure (PKI) is a set of roles,
A PEM format certificate file is a base64-encoded policies, and procedures needed to create,
certificate. Since it's presented in ASCII, you can manage, distribute, use, store and revoke digital
open it in any text editor. PEM certificates always certificates and manage public-key encryption.
begin and end with entries like ---- BEGIN
CERTIFICATE---- and ----END CERTIFICATE----. PEM
Private Key
certificates can contain a single certificate or a full
certifiate chain and may contain a private key. Private keys are used in cryptography (symmetric
Usually, extensions of .cer and .crt are certificate and asymmetric) to encrypt or sign content. In
files with no private key, .key is a separate private asymmetric cryptography, they are used together
key file, and .pem is both a certificate and private in a key pair with a public key. The private or
key. secret key is retained by the key's creator, making
it highly secure.
PFX
Public Key
A PFX file (personal information exchange format),
also known as a PKCS#12 archive, is a single, pass- In asymmetric cryptography, public keys are used
word-protected certificate archive that contains together in a key pair with a private key. The
both the public and matching private key and, private key is retained by the key's creator while
optionally, the certificate chain. It is a common the public key is widely distributed to any user or
format for Windows servers. target needing to interact with the holder of the
private key.
PKCS #7
Public Key Infrastructure
A PKCS #7 format certificate file is a base64-
encoded certificate. Since it's presented in ASCII, A public key infrastructure (PKI) is a set of roles,
you can open it in any text editor. PKCS #7 certi- policies, and procedures needed to create,
ficates always begin and end with entries that look manage, distribute, use, store and revoke digital
something like ---- BEGIN CERTIFICATE---- and ---- certificates and manage public-key encryption.
END CERTIFICATE----. Unlike PEM files, PKCS #7
files can contain only a certificate and its certifiate
chain but NOT its private key. Extensions of .p7b
R
or .p7c are usually seen on certificate files of this
format. Rogue Key
A rogue key, in the context of Keyfactor
Command, is an SSH public key that appears in an
x.509
U
In cryptography, X.509 is a standard defining the
format of public key certificates. An X.509 certi-
Untrusted CA
ficate contains a public key and an identity (e.g. a
A certificate authority in a forest in a one-way host name or an organization or individual name),
trust with the forest in which Keyfactor Command and is either signed by a certificate authority or
is installed or in a forest that is untrusted by the self-signed. When a certificate is signed by a
forest in which Keyfactor Command is installed. trusted certificate authority it can be used to
Non-domain-joined standalone CAs also fall into establish trusted secure communications with the
this category. owner of the corresponding private key. It can also
be used to verify digitally signed documents and
emails.
W
Web API
A set of functions to allow creation of applications.
Keyfactor offers the Keyfactor API, which allows
third-party software to integrate with the
advanced certificate enrollment and management
features of Keyfactor Command.
Windows Orchestrator
The Windows Orchestrator, one of Keyfactor's
suite of orchestrators, is used to manage
Information described herein is furnished for general information only, is subject to change without notice, and
should not be construed as a warranty or commitment by Keyfactor. Keyfactor assumes no responsibility or liab-
ility for any errors or inaccuracies that may appear in this document.
The software described in this document is provided under written license agreement, contains valuable trade
secrets and proprietary information, and is protected by the copyright laws of the United States and other coun-
tries. It may not be copied or distributed in any form or medium, disclosed to third parties, or used in any manner
not provided for in the software licenses agreement except with written prior approval from Keyfactor.
[Link]
Keyfactor Command distributions may include the following Third-Party Materials. Since many of these materials
use the same copyright text, a copy of the applicable text from each license is provided below.
Table 61: Third-Party Notices for Keyfactor Command Software Distributions
[Link]
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1
through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are
under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or
indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership
of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software
source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form,
including but not limited to compiled object code, generated documentation, and conversions to other media
types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as
indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix
below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the
Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole,
an original work of authorship. For the purposes of this License, Derivative Works shall not include works that
remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works
thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications
or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in
the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright
owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written commu-
nication sent to the Licensor or its representatives, including but not limited to communication on electronic
mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously
marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been
received by Licensor and subsequently incorporated within the Work.
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide,
non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or
Object form.
4. Redistribution.
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark,
and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part
of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute
must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices
that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text
file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with
the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party
notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify
the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as
an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be
construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license
terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works
as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions
stated in this License.
5. Submission of Contributions.
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to
the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement
you may have executed with Licensor regarding such Contributions.
6. Trademarks.
This License does not grant permission to use the trade names, trademarks, service marks, or product names of
the Licensor, except as required for reasonable and customary use in describing the origin of the Work and repro-
ducing the content of the NOTICE file.
7. Disclaimer of Warranty.
8. Limitation of Liability.
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless
required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contrib-
utor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of
any character arising as a result of this License or out of the use or inability to use the Work (including but not
limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other
commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, accept-
ance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License.
However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not
on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harm-
less for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such
warranty or additional liability.
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as
under U.S. copyright law.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section
3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contri-
bution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that
you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3,
each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make,
have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or deriv-
ative works of the contribution in the software.
(A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trade-
marks.
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
notices that are present in the software.
(D) If you distribute any portion of the software in source code form, you may do so only under this license by
including a complete copy of this license with your distribution. If you distribute any portion of the software in
compiled or object code form, you may only do so under a license that complies with this license.
(E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guar-
antees or conditions. You may have additional consumer rights under your local laws which this license cannot
change. To the extent permitted under your local laws, the contributors exclude the implied warranties of
merchantability, fitness for a particular purpose and non-infringement.
1. Definitions
The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as
under U.S. copyright law.
A "contributor" is any person that distributes its contribution under this license.
"Licensed patents" are a contributor's patent claims that read directly on its contribution.
2. Grant of Rights
(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section
3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contri-
bution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that
you create.
(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3,
each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make,
have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or deriv-
ative works of the contribution in the software.
(A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary
format), you must provide recipients the source code to that file along with a copy of this license, which license
will govern that file. You may license other files that are entirely your own work and do not contain code from the
software under any terms you choose.
(C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software,
your patent license from such contributor to the software ends automatically.
(D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
notices that are present in the software.
(E) If you distribute any portion of the software in source code form, you may do so only under this license by
including a complete copy of this license with your distribution. If you distribute any portion of the software in
compiled or object code form, you may only do so under a license that complies with this license.
(F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guar-
antees or conditions. You may have additional consumer rights under your local laws which this license cannot
change. To the extent permitted under your local laws, the contributors exclude the implied warranties of
merchantability, fitness for a particular purpose and non-infringement.