You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+15-1Lines changed: 15 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,4 +9,18 @@
9
9
* Add support for enrolling for client certs
10
10
* Option to filter sync by division ID
11
11
* Option to provide division ID for enrollment
12
-
* Add support for secure_email_* SMIME product types
12
+
* Add support for secure_email_* SMIME product types
13
+
14
+
### 2.1.1
15
+
* Add configuration flag to support adding client auth EKU to ssl cert requests
16
+
* NOTE: This is a temporary feature which is planned for loss of support by Digicert in May 2026
17
+
* For smime certs, use profile type defined on the product as the default if not supplied, rather than just defaulting to 'strict'
18
+
* Hotfix for data type conversion
19
+
20
+
### 2.1.2
21
+
* Hotfix for incremental sync to default to a 6 day window if no previous incremental sync has run
22
+
* Workaround for DigiCert API issue where retrieving the PEM data of multiple certificates in the same order can occasionally return duplicate data rather than the correct cert
23
+
* Remove caching of product ID lookups from DigiCert account
Copy file name to clipboardExpand all lines: README.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,15 +106,20 @@ An API Key within your Digicert account that has the necessary permissions to en
106
106
***Organization-Name** - OPTIONAL: For requests that will not have a subject (such as ACME) you can use this field to provide the organization name. Value supplied here will override any CSR values, so do not include this field if you want the organization from the CSR to be used.
107
107
***RenewalWindowDays** - OPTIONAL: The number of days from certificate expiration that the gateway should do a renewal rather than a reissue. If not provided, default is 90.
108
108
***CertType** - OPTIONAL: The type of cert to enroll for. Valid values are 'ssl' and 'client'. The value provided here must be consistant with the ProductID. If not provided, default is 'ssl'. Ignored for secure_email_* product types.
109
+
***IncludeClientAuthEKU** - OPTIONAL forSSL certs, ignored otherwise. If set to 'true', SSL certs enrolled under this template will have the Client Authentication EKU added to the request. NOTE: This feature is currently planned to be removed by DigiCertin May 2026.
109
110
***EnrollDivisionId** - OPTIONAL: The division (container) ID to use for enrollments against this template.
110
111
***CommonNameIndicator** - Required for secure_email_sponsor and secure_email_organization products, ignored otherwise. Defines the source of the common name. Valid values are: email_address, given_name_surname, pseudonym, organization_name
111
-
***ProfileType** - Optional for secure_email_* types, ignored otherwise. Valid values are: strict, multipurpose. Default value is strict.
112
+
***ProfileType** - 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.
112
113
***FirstName** - Required for secure_email_* types if CommonNameIndicator is given_name_surname, ignored otherwise.
113
114
***LastName** - Required for secure_email_* types if CommonNameIndicator is given_name_surname, ignored otherwise.
114
115
***Pseudonym** - Required for secure_email_* types if CommonNameIndicator is pseudonym, ignored otherwise.
115
116
***UsageDesignation** - Required for secure_email_* types, ignored otherwise. The primary usage of the certificate. Valid values are: signing, key_management, dual_use
116
117
117
118
119
+
## Certificate Duplicates
120
+
121
+
DigiCert supports the ability to duplicate existing certificate orders. To take advantage of this functionality, in Keyfactor Command, under the enrollment pattern you're using, create an Enrollment Field named 'Duplicate' of type Multiple Choice, and the values 'False', 'True'. When performing a renew operation against that enrollment pattern, set the value to True to tell the gateway to duplicate instead of renew. The field will be ignored on new enrollments.
_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.");
306
+
}
307
+
308
+
booldupe=false;
309
+
// Current gateway core leaves it up to the integration to determine if it is a renewal, a reissue, or a duplicate
302
310
if(enrollmentType==EnrollmentType.RenewOrReissue)
303
311
{
304
-
//// Determine if we're going to do a renewor a reissue.
312
+
//// Determine if we're going to do a renew, reissue, or duplicate.
Comments="OPTIONAL for SSL certs, ignored otherwise. If set to 'true', SSL certs enrolled under this template will have the Client Authentication EKU added to the request. NOTE: This feature is currently planned to be removed by DigiCert in May 2026.",
Comments="Optional for secure_email_* types, ignored otherwise. Valid values are: strict, multipurpose. Default value is strict.",
644
+
Comments="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.",
@@ -751,8 +788,14 @@ public async Task Synchronize(BlockingCollection<AnyCAPluginCertificate> blockin
751
788
{
752
789
_logger.MethodEntry(LogLevel.Trace);
753
790
754
-
lastSync=lastSync.HasValue?lastSync.Value.AddHours(-7):DateTime.MinValue;// DigiCert issue with treating the timezone as mountain time. -7 to accomodate DST
791
+
// DigiCert issue with treating the timezone as mountain time. -7 hours to accomodate DST
792
+
// If no last sync, use a 6 day window for the sync range (only relevant for incremental syncs)
thrownewException($"Unexpected error downloading certificate {certId} for order {orderId}: {certificateChainResponse.Errors.FirstOrDefault()?.message}");
1570
1654
}
1571
1655
}
1656
+
//Another check for duplicate PEMs to get arround issue with DigiCert API returning incorrect data sometimes on reissued/duplicate certs
1657
+
if(pemList.Contains(certificate))
1658
+
{
1659
+
_logger.LogWarning($"Found duplicate PEM for ID {caReqId}. Skipping...");
0 commit comments