Preparing

To support your implementation process, have the following information prepared before beginning the installation of Keyfactor ACME:

  1. Determine the Keyfactor Command Connection Authentication Mechanism

    • Windows IIS Installs: The connection Keyfactor ACME makes to the Keyfactor Command server can be authenticated with OAuth, Windows, or Basic authentication. The selection you make will depend on the configuration of your Keyfactor Command implementation.

      If OAuth is selected, this must be an OAuth identity provider that has been configured in Keyfactor Command as a supported identity provider. It does not need to be the same identity provider you use to authenticate ACME clients to Keyfactor ACME (see step 2).

      If your Keyfactor Command is not using OAuth, check the configuration of the Keyfactor APIClosed An API is 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. virtual directory on the Keyfactor Command server to determine whether Basic or Windows authentication is in use. If both Basic and Windows authentication are configured, the Keyfactor ACME installation will default to using Windows authentication.

      If you opt to use Windows authentication, a service principal name (SPN) needs to be configured for the Keyfactor ACME application pool service account (see Identify Users and Groups) to allow it to authenticate via Kerberos to the Keyfactor Command server. ClosedShow SPN instructions.

    • Container Installs: The connection Keyfactor ACME makes to the Keyfactor Command server can be authenticated with OAuth or Basic authentication. The selection you make will depend on the configuration of your Keyfactor Command implementation. If OAuth is selected, this must be an OAuth identity provider that has been configured in Keyfactor Command as a supported identity provider. It does not need to be the same identity provider you use to authenticate ACME clients to Keyfactor ACME (see step 2).

  2. Select OAuth Identity Providers

    ACME clients connecting to the Keyfactor ACME server to request certificates as well as administrators managing Keyfactor ACME authenticate using OAuth. This requires an OAuth identity provider. Keyfactor ACME supports open authorization (OAuth) 2.0 compliant identity providers with a complete implementation of the OpenID Connect (OIDC) protocol. Closed Show OAuth identity provider details.

  3. Identify Users and Groups

    At a minimum, the following users/groups are required to configure Keyfactor ACME:

    • Keyfactor ACME User: The service account used to authenticate from Keyfactor ACME to Keyfactor Command.

      • Windows Installs: If OAuth is used, this is specified by the commandclientid parameterClosed A parameter or argument is a value that is passed into a function in an application. using the Configure command (see The Configure Command). For Basic authentication, this information is prompted for during the installation. For Windows authentication, integrated authentication is configured for this user, which is the application pool user (see below) and must be a domain account to support integrated authentication.

      • Container Installs: For OAuth, specified by the config > commandConnection > oAuth > clientId parameter. For Basic authentication, specified by the config > commandConnection > basicAuth > username parameter. For more information, see Helm Chart Customization.

    • Application Pool User (Windows Installs Only): The identity the application pool in IIS on the Keyfactor ACME server will run as. The application pool cannot run as the default ApplicationPoolIdentity that IIS will assign when an application pool is initially created. This user needs to be either a domain or local account.
    • SQL User: The SQL user used to authenticate Keyfactor ACME to Microsoft SQL if integrated authentication is not used. Integrated authentication is not supported for container installs. The following permissions are needed in SQL to complete the installation:

      • Integrated Windows Authentication: The user executing the Keyfactor ACME command line tool needs dbcreator and securityadmin to create a database. During configuration on Windows, the IIS application pool user will automatically be set as the database owner (dbo) on the Keyfactor ACME SQL database. This user does not need to be added into SQL ahead of time.

      • SQL Authentication: The service account configured as the SQL user needs dbcreator and securityadmin to create a database.

    • Super Admin User: At least one administrator with SuperAdmin permissions needs to be created to fully configured Keyfactor ACME.
    • Account Admin User (Optional): It may be desirable to create one or more administrators with AccountAdmin permissions to manage accounts. Users with SuperAdmin permissions can also manage accounts, so this is optional.
    • Enrollment Users: At least one user with EnrollmentUser permissions should be created to support enrolling for certificates from an ACME client. Configuring one or more groups with this role might be desirable for ease of claim management.
  4. Identify Keyfactor Command API URL

    Know the URL of the Keyfactor API, which can be found on the API tab of the Keyfactor Command configuration wizard.

  5. Identify Templates and CAs

    Identify at least one templateClosed A certificate template defines the policies and rules that a CA uses when a request for a certificate is received. and CAClosed A certificate authority (CA) is an entity that issues digital certificates. Within Keyfactor Command, a CA may be a Microsoft CA or a Keyfactor gateway to a cloud-based or remote CA. to use in conjunction with the Keyfactor ACME server. The templates used for Keyfactor ACME must:

    Tip:  For Microsoft CAs, Keyfactor recommends making a copy of the default Web Server template and modifying that to meet the requirements for Keyfactor ACME.
  6. Prepare for Application-Level Encryption (Optional)

    Prepare a methodology for application-level encryption on the Keyfactor ACME server if you plan to use this feature (see Application-Level Encryption).

  7. Prepare Certificate Root Trusts

    HTTPS is used with Keyfactor ACME to secure the following communication channels:

    • Keyfactor ACME to Keyfactor Command: Used to enroll for certificates.

    • Keyfactor ACME to the ACME OAuth identity provider: Used to authenticate users when acquiring EAB keys.

    • Keyfactor ACME to the Command OAuth identity provider: Used to authenticate the service account communicating with Keyfactor Command.

    • ACME clients to Keyfactor ACME: Used for registering accounts and requesting certificates.

    These communications require TLSClosed TLS (Transport Layer Security) and its predecessor SSL (Secure Sockets Layer) are protocols for establishing authenticated and encrypted links between networked computers. (SSLClosed TLS (Transport Layer Security) and its predecessor SSL (Secure Sockets Layer) are protocols for establishing authenticated and encrypted links between networked computers.) certificates on the servers for Keyfactor ACME, Keyfactor Command, and the OAuth identity providers. The certificates may be:

    If you're using publicly rooted certificates, they are likely already trusted by the server. However, if you are using any internally generated certificates, Keyfactor ACME may not automatically trust them. In such cases, you will need to import the certificate chain or chains into the appropriate trust store:

    • Keyfactor ACME on Windows: Import the certificates into the local machine certificate store.

    • Keyfactor ACME in Container: Import the certificates into the root certificate store of the container.

      Methods for doing this vary depending on the Linux implementation.

      Tip:  Beware of ending up with Windows line endings in the trusted root store, as this can create root trust issues inside the container.
  8. Acquire a TLS (SSL) Certificate

    The Keyfactor ACME server requires a TLS/SSL certificate to secure communications to it.

  9. Install IIS (Windows Installs Only)

    Install IIS if you’re not using a shared server (see Install IIS, .NET Framework, and ASP.NET) and bind your TLS certificate to the default web site.

  10. Create an Application Pool (Windows Installs Only)

    Create or identify an application pool in IIS for use with the Keyfactor ACME server using the identified application pool user (see Identify Users and Groups).

    Note:  If you are installing Keyfactor ACME on the Keyfactor Command server, this would typically be one of the application pools in use for Keyfactor Command.
  11. Configure Metadata Population (Optional)

    Identify any metadataClosed Metadata provides information about a piece of data. It is used to summarize basic information about data, which can make working with the data easier. In Keyfactor Command, the certificate metadata feature allows you to create custom metadata fields that allow you to tag certificates with tracking information about certificates. you wish to populate upon enrollment in Keyfactor Command and create the PowerShell script or user-defined metadata extension to populate that metadata (see Keyfactor ACME Metadata).

  12. Update Keyfactor Command Enrollment Pattern Requirements

    Disable the default Common NameClosed A common name (CN) is the component of a distinguished name (DN) that represents the primary 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 certificates, the CN is typically the fully qualified domain name (FQDN) of the host where the SSL certificate will reside (e.g. servername.keyexample.com or www.keyexample.com). regular expressionClosed A regular expression--RegEx--is a pattern used to validate data by ensuring it meets specific criteria. Several fields on the CSR enrollment, CSR generation, and PFX enrollment pages support RegEx validation, including certificate subject and metadata fields. that requires entry of a value for enrollments in Keyfactor Command. This is found under Enrollment Patterns on the Enrollment Regexes tab (see Enrollment Pattern Operations - Adding or Modifying an Enrollment Pattern: Enrollment RegExes Tab in the Keyfactor Command Reference Guide).

  13. Grant Keyfactor Command Permissions

    Grant the Keyfactor ACME user Certificates > Collections > Read permissions to allow reading of existing certificates and Certificates > Enrollment > Csr permissions to allow certificate enrollment in Keyfactor Command. This can be done by creating a new security role or leveraging an existing one (see Security Overview in the Keyfactor Command Reference Guide).

    If you plan to support certificate revocation initiated through Keyfactor ACME, grant the Keyfactor ACME user Certificates > Collections > Revoke permissions.

Important:  

Starting with version 25.1, the server exclusively supports OAuth for client authentication and no longer allows Active Directory (AD) authentication for functions such as obtaining an External Account Binding (EAB) key. As a result:

  • The ability to configure AD users and groups for EAB key generation has been removed from the configuration tool.

  • If you are upgrading from an earlier version, any existing AD users in the database will still function for current ACME clients.

    On upgrade, AD accounts for authorized users will be migrated to claims of type Active Directory User with the claim value being in the form DOMAIN\Username.

  • Claims of type Active Directory User are intended to be removed eventually, but are retained for backwards compatibility on upgrade.

  • New ACME clients cannot be registered using AD users after the upgrade.

Before upgrading, you should ensure that any ACME clients relying on AD authentication are working correctly and resolve any issues before proceeding with the upgrade.