Skip to content

Merge 2.2.1 to main#49

Merged
indrora merged 23 commits into
mainfrom
release-2.2
Jun 3, 2026
Merged

Merge 2.2.1 to main#49
indrora merged 23 commits into
mainfrom
release-2.2

Conversation

@indrora
Copy link
Copy Markdown
Member

@indrora indrora commented Jun 2, 2026

Merge release-2.2 to main - Automated PR

dgaley and others added 23 commits October 8, 2025 11:29
change default start sync date for first incremental sync
removing caching of product type list
change default incremental sync range
shorten incremental sync if it is too long
* add duplicate support

* Update generated docs

---------

Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io>
* add duplicate support

* Update generated docs

* treat needs_approval the same as pending on enrollments and don't return failure code

* Update generated docs

---------

Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io>
Copilot AI review requested due to automatic review settings June 2, 2026 21:38
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Automated merge from the release-2.2 line into main, updating the DigiCert CertCentral AnyCA Gateway REST plugin with new enrollment capabilities (certificate duplication and additional request options) plus some operational hotfixes and documentation updates.

Changes:

  • Add support for duplicating existing certificate orders (via a Duplicate enrollment field + new DigiCert API request).
  • Add IncludeClientAuthEKU option to include Client Authentication EKU for SSL enrollments (via profile_option).
  • Adjust sync window defaults and remove caching of DigiCert product type lookups; update docs/manifest/changelog accordingly.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
README.md Updates plugin naming and documents new options (IncludeClientAuthEKU, Duplicate).
integration-manifest.json Advertises new enrollment options in the integration catalog manifest.
docsource/configuration.md Adds documentation for duplicate-certificate behavior.
digicert-certcentral-caplugin/Models/CertCentralCertType.cs Removes cached product type list; always refreshes from DigiCert.
digicert-certcentral-caplugin/digicert-certcentral-caplugin.csproj Adds assembly/file version metadata.
digicert-certcentral-caplugin/Constants.cs Adds constants for Duplicate and IncludeClientAuthEKU.
digicert-certcentral-caplugin/Client/CertCentralClient.cs Adds DuplicateCertificate client method.
digicert-certcentral-caplugin/CertCentralCAPlugin.cs Implements duplication flow, IncludeClientAuthEKU behavior, sync-window change, and status handling tweaks.
digicert-certcentral-caplugin/API/OrderCertificate.cs Adds profile_option to certificate request payload.
digicert-certcentral-caplugin/API/Duplicate.cs Introduces request/response models for DigiCert “duplicate” endpoint.
CHANGELOG.md Records release notes through 2.2.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +298 to +302
if (typeOfCert.Equals("ssl") && Convert.ToBoolean(productInfo.ProductParameters[CertCentralConstants.Config.INCLUDE_CLIENT_AUTH]))
{
orderRequest.Certificate.ProfileOption = "server_client_auth_eku";
_logger.LogWarning($"{CertCentralConstants.Config.INCLUDE_CLIENT_AUTH}: Ability to include client auth EKU in SSL certs is currently planned to cease in May 2026. Make sure any workflows that depend on this feature are updated before then to avoid interruptions.");
}
Comment on lines +1652 to +1658
//Another check for duplicate PEMs to get arround issue with DigiCert API returning incorrect data sometimes on reissued/duplicate certs
if (pemList.Contains(certificate))
{
_logger.LogWarning($"Found duplicate PEM for ID {caReqId}. Skipping...");
continue;
}
pemList.Add(certificate);
Comment on lines +1510 to +1520
DuplicateRequest duplicateRequest = new DuplicateRequest(orderId)
{
Certificate = new CertificateDuplicateRequest
{
CommonName = commonName,
CSR = csr,
DnsNames = dnsNames,
SignatureHash = signatureHash,
CACertID = caCertId
}
};
Comment on lines +1489 to +1492
/// <param name="client">The client used to contact DigiCert.</param>
/// <param name="request">The <see cref="OrderRequest"/>.</param>
/// <param name="enrollmentProductInfo">Information about the DigiCert product this certificate uses.</param>
/// <returns></returns>
Comment on lines +787 to +789
// DigiCert issue with treating the timezone as mountain time. -7 hours to accomodate DST
// If no last sync, use a 6 day window for the sync range (only relevant for incremental syncs)
lastSync = lastSync.HasValue ? lastSync.Value.AddHours(-7) : DateTime.UtcNow.AddDays(-5);
Comment thread integration-manifest.json
Comment on lines 88 to 90
"name": "ProfileType",
"description": "Optional for secure_email_* types, ignored otherwise. Valid values are: strict, multipurpose. Default value is strict."
"description": "Optional for secure_email_* types, ignored otherwise. Valid values are: strict, multipurpose. Use 'multipurpose' if your cert includes any additional EKUs such as client auth. Default if not provided is dependent on product configuration within Digicert portal."
},
Comment on lines 8 to +10
<AssemblyName>DigicertCAPlugin</AssemblyName>
<AssemblyVersion>2.1.2</AssemblyVersion>
<FileVersion>2.1.2</FileVersion>
Comment on lines 62 to 65
public static List<CertCentralCertType> GetAllTypes(CertCentralConfig config)
{
if (_allTypes == null || !_allTypes.Any())
{
_allTypes = RetrieveCertCentralCertTypes(config);
}

return _allTypes;
return RetrieveCertCentralCertTypes(config);
}
Comment thread CHANGELOG.md
Comment on lines +15 to +17
* Add configuration flag to support adding client auth EKU to ssl cert requests
* NOTE: This is a temporary feature which is planned for loss of support by Digicert in May 2026
* For smime certs, use profile type defined on the product as the default if not supplied, rather than just defaulting to 'strict'
Comment on lines 18 to 20
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Pqc.Crypto.Falcon;

@indrora indrora merged commit bfc36d1 into main Jun 3, 2026
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants