Merge 2.4.0 to main#59
Merged
Merged
Conversation
check for duplicate PEMs
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>
* improve BouncyCastle parsing * add duplicate support * Update generated docs * Merge 2.2.0 to main * fix for smime profile type * template parameter to include client auth eku * Update generated docs * changelog and logging * check for duplicate PEMs * change default start sync date for first incremental sync * removing caching of product type list * change default incremental sync range * version * changelog * shorten incremental sync if it is too long * feat: release v2.2.0 * add duplicate support * Update generated docs --------- Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> --------- Co-authored-by: David Galey <dgaley@keyfactor.com> Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> Co-authored-by: Dave Galey <89407235+dgaley@users.noreply.github.com> Co-authored-by: Sean <1661003+spbsoluble@users.noreply.github.com> * treat needs_approval the same as pending on enrollments and don't return failure code * Update generated docs * Merge 2.2.1 to main (#49) * fix for smime profile type * template parameter to include client auth eku * Update generated docs * changelog and logging * check for duplicate PEMs * change default start sync date for first incremental sync * removing caching of product type list * change default incremental sync range * version * changelog * shorten incremental sync if it is too long * feat: release v2.2.0 * add duplicate support * Update generated docs --------- Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> * Dev 2.2 (#47) * 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> --------- Co-authored-by: David Galey <dgaley@keyfactor.com> Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> Co-authored-by: Dave Galey <89407235+dgaley@users.noreply.github.com> Co-authored-by: Sean <1661003+spbsoluble@users.noreply.github.com> * Merge to main (#48) * fix for smime profile type * template parameter to include client auth eku * Update generated docs * changelog and logging * check for duplicate PEMs * change default start sync date for first incremental sync * removing caching of product type list * change default incremental sync range * version * changelog * shorten incremental sync if it is too long * 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: David Galey <dgaley@keyfactor.com> Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> Co-authored-by: Dave Galey <89407235+dgaley@users.noreply.github.com> Co-authored-by: Sean <1661003+spbsoluble@users.noreply.github.com> * Update CHANGELOG.md (#50) * add option for kdc/smartcardlogon eku, fix template validation * Update generated docs * changelog --------- Co-authored-by: Sean <1661003+spbsoluble@users.noreply.github.com> Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io> Co-authored-by: Morgan Gangwere <470584+indrora@users.noreply.github.com>
* add product ID filter to sync * Update generated docs * add Intel vPro EKU support * Update generated docs * fix for renewal of smime certs * validation for intel vpro eku * fix for template validation * changelog --------- Co-authored-by: Keyfactor <keyfactor@keyfactor.github.io>
There was a problem hiding this comment.
Pull request overview
This automated merge brings the release-2.4 line into main, expanding the DigiCert CertCentral AnyCA Gateway REST plugin with new enrollment and synchronization capabilities while updating documentation and metadata.
Changes:
- Add certificate duplication support and new SSL EKU/profile option flags.
- Add sync filtering by product ID (in addition to division filtering) and incremental sync window adjustments/workarounds.
- Update documentation/manifests/changelog to reflect new configuration/template options.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates product/plugin naming and documents new sync/product filtering, EKU options, and duplication behavior. |
| integration-manifest.json | Adds new configuration/template parameter metadata (SyncProductFilter + EKU flags) and updates ProfileType description. |
| docsource/configuration.md | Adds documentation for certificate duplication via an enrollment field. |
| digicert-certcentral-caplugin/Models/CertCentralCertType.cs | Removes cached product type retrieval (always fetches types). |
| digicert-certcentral-caplugin/digicert-certcentral-caplugin.csproj | Adds explicit AssemblyVersion/FileVersion fields. |
| digicert-certcentral-caplugin/Constants.cs | Introduces constants for new config/template/enrollment-field keys (product filter, duplicate flag, EKU flags). |
| digicert-certcentral-caplugin/Client/CertCentralClient.cs | Adds DuplicateCertificate API call and expands ListAllCertificateOrders to accept div/product filter lists. |
| digicert-certcentral-caplugin/CertCentralConfig.cs | Adds SyncProductFilter parsing into a product ID list for sync filtering. |
| digicert-certcentral-caplugin/CertCentralCAPlugin.cs | Implements duplication flow, SSL profile_option selection, sync product filtering, and sync window logic changes. |
| digicert-certcentral-caplugin/API/OrderCertificate.cs | Adds profile_option field to certificate requests. |
| digicert-certcentral-caplugin/API/ListCertificateOrders.cs | Supports multiple division/product filters in query parameter generation. |
| digicert-certcentral-caplugin/API/Duplicate.cs | Adds request/response models for DigiCert’s duplicate order endpoint. |
| CHANGELOG.md | Adds release notes through 2.4.0. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
19
to
21
| using Org.BouncyCastle.Asn1.X509; | ||
| using Org.BouncyCastle.Pqc.Crypto.Falcon; | ||
|
|
Comment on lines
+302
to
+306
| if (typeOfCert.Equals("ssl")) | ||
| { | ||
| bool clientAuth = Convert.ToBoolean(productInfo.ProductParameters[CertCentralConstants.Config.INCLUDE_CLIENT_AUTH]); | ||
| bool kdc = Convert.ToBoolean(productInfo.ProductParameters[CertCentralConstants.Config.INCLUDE_KDC]); | ||
| bool intel = Convert.ToBoolean(productInfo.ProductParameters[CertCentralConstants.Config.INCLUDE_INTEL]); |
Comment on lines
+830
to
+832
| // 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 on lines
850
to
855
| string syncCAstring = _config.SyncCAFilter ?? string.Empty; | ||
| _logger.LogTrace($"Sync CAs: {syncCAstring}"); | ||
| List<string> caList = _config.SyncCAs; | ||
|
|
||
| caList.ForEach(c => c.ToUpper()); | ||
|
|
Comment on lines
+1677
to
+1680
| if (productIds != null && productIds.Count > 0 && !productIds.Contains(orderResponse.product.name_id.ToString())) | ||
| { | ||
| _logger.LogTrace($"Found order ID {orderId} that does not match Product filter. Product ID: {orderResponse.product.name_id.ToString()} Skipping..."); | ||
| } |
Comment on lines
+1707
to
+1713
| //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
+42
to
+46
| foreach (string divID in this.divIDs) | ||
| { | ||
| sbParamters.Append("&filters[container_id]=").Append(this.divID); | ||
| sbParamters.Append("&filters[container_id]=").Append(divID); | ||
| } | ||
| foreach (string productID in productIDs) |
Comment on lines
+41
to
+44
| if (!string.IsNullOrEmpty(SyncProductFilter)) | ||
| { | ||
| return SyncProductFilter.Split(",").ToList(); | ||
| } |
Comment on lines
8
to
+10
| <AssemblyName>DigicertCAPlugin</AssemblyName> | ||
| <AssemblyVersion>2.1.2</AssemblyVersion> | ||
| <FileVersion>2.1.2</FileVersion> |
Comment on lines
+14
to
+17
| ### 2.1.1 | ||
| * 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' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge release-2.4 to main - Automated PR