Skip to content

Commit d868511

Browse files
authored
Merge pull request #28 from Keyfactor/smime
fix workflow
2 parents 6acba7f + d030398 commit d868511

6 files changed

Lines changed: 233 additions & 76 deletions

File tree

.github/workflows/keyfactor-bootstrap-workflow.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@ jobs:
1313
call-starter-workflow:
1414
uses: keyfactor/actions/.github/workflows/starter.yml@v4
1515
secrets:
16-
token: ${{ secrets.SAST_TOKEN}}
16+
token: ${{ secrets.V2BUILDTOKEN}}
17+
scan_token: ${{ secrets.SAST_TOKEN }}
18+
gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }}
19+
gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }}

README.md

Lines changed: 84 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,109 @@
1+
<h1 align="center" style="border-bottom: none">
2+
DigiCert CertCentral Gateway AnyCA Gateway REST Plugin
3+
</h1>
4+
5+
<p align="center">
6+
<!-- Badges -->
7+
<img src="https://img.shields.io/badge/integration_status-production-3D1973?style=flat-square" alt="Integration Status: production" />
8+
<a href="https://github.com/Keyfactor/digicert-certcentral-caplugin/releases"><img src="https://img.shields.io/github/v/release/Keyfactor/digicert-certcentral-caplugin?style=flat-square" alt="Release" /></a>
9+
<img src="https://img.shields.io/github/issues/Keyfactor/digicert-certcentral-caplugin?style=flat-square" alt="Issues" />
10+
<img src="https://img.shields.io/github/downloads/Keyfactor/digicert-certcentral-caplugin/total?style=flat-square&label=downloads&color=28B905" alt="GitHub Downloads (all assets, all releases)" />
11+
</p>
12+
13+
<p align="center">
14+
<!-- TOC -->
15+
<a href="#support">
16+
<b>Support</b>
17+
</a>
18+
·
19+
<a href="#requirements">
20+
<b>Requirements</b>
21+
</a>
22+
·
23+
<a href="#installation">
24+
<b>Installation</b>
25+
</a>
26+
·
27+
<a href="#license">
28+
<b>License</b>
29+
</a>
30+
·
31+
<a href="https://github.com/orgs/Keyfactor/repositories?q=anycagateway">
32+
<b>Related Integrations</b>
33+
</a>
34+
</p>
35+
36+
37+
TODO Overview is a required section
38+
39+
## Compatibility
40+
41+
The DigiCert CertCentral Gateway AnyCA Gateway REST plugin is compatible with the Keyfactor AnyCA Gateway REST 24.2.0 and later.
42+
43+
## Support
44+
The DigiCert CertCentral Gateway AnyCA Gateway REST plugin is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com.
45+
46+
> To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab.
47+
48+
## Requirements
49+
50+
TODO Requirements is a required section
151

2-
# DigiCert CertCentral AnyCA REST Gateway Plugin
3-
4-
DigiCert CertCentral plugin for the AnyCA REST Gateway framework
5-
6-
#### Integration status: Production - Ready for use in production environments.
7-
8-
## About the Keyfactor
9-
10-
11-
12-
## Support for DigiCert CertCentral AnyCA REST Gateway Plugin
13-
14-
DigiCert CertCentral AnyCA REST Gateway Plugin is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket via the Keyfactor Support Portal at https://support.keyfactor.com
15-
16-
###### To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab.
52+
## Installation
1753

18-
---
54+
1. Install the AnyCA Gateway REST per the [official Keyfactor documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/InstallIntroduction.htm).
1955

56+
2. On the server hosting the AnyCA Gateway REST, download and unzip the latest [DigiCert CertCentral Gateway AnyCA Gateway REST plugin](https://github.com/Keyfactor/digicert-certcentral-caplugin/releases/latest) from GitHub.
2057

21-
---
58+
3. Copy the unzipped directory (usually called `net6.0` or `net8.0`) to the Extensions directory:
2259

2360

61+
```shell
62+
Depending on your AnyCA Gateway REST version, copy the unzipped directory to one of the following locations:
63+
Program Files\Keyfactor\AnyCA Gateway\AnyGatewayREST\net6.0\Extensions
64+
Program Files\Keyfactor\AnyCA Gateway\AnyGatewayREST\net8.0\Extensions
65+
```
2466

25-

26-
# Introduction
67+
> The directory containing the DigiCert CertCentral Gateway AnyCA Gateway REST plugin DLLs (`net6.0` or `net8.0`) can be named anything, as long as it is unique within the `Extensions` directory.
2768

28-
This AnyCA REST Gateway plug-in enables issuance, revocation, and synchronization of certificates from DigiCert's CertCentral offering.
29-
# Prerequisites
69+
4. Restart the AnyCA Gateway REST service.
3070

31-
## Prerequisite: Certificate Chain
71+
5. Navigate to the AnyCA Gateway REST portal and verify that the Gateway recognizes the DigiCert CertCentral Gateway plugin by hovering over the ⓘ symbol to the right of the Gateway on the top left of the portal.
3272

33-
In order to request certificates from the Keyfactor AnyGateway, the Keyfactor Command server must trust the certificate chain of trust. To ensure trust is established, download your Root and/or Subordinate CA certificates from DigiCert and import them into the appropriate local certificate stores on the Keyfactor AnyGateway and Command servers. More information can be found in the [AnyCA Gateway REST Install Guide](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/Preparing.htm)
73+
## Configuration
3474

35-
## Installation
36-
1. Download latest successful build from [GitHub Releases](../../releases/latest)
75+
1. Follow the [official AnyCA Gateway REST documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/AddCA-Gateway.htm) to define a new Certificate Authority, and use the notes below to configure the **Gateway Registration** and **CA Connection** tabs:
3776

38-
2. Extract the .zip file, and from it, copy DigicertCAPlugin.dll and DigicertCAPlugin.deps.json to the 'C:\Program Files\Keyfactor\AnyCA Gateway\AnyGatewayREST\net6.0\Extensions' directory
77+
* **Gateway Registration**
3978

40-
3. Within the 'C:\Program Files\Keyfactor\AnyCA Gateway\AnyGatewayREST\net6.0\Extensions\Connectors' folder, update the manifest.json file to contain the following:
79+
TODO Gateway Registration is a required section
4180

42-
```json
43-
{
44-
"extensions": {
45-
"Keyfactor.AnyGateway.Extensions.IAnyCAPlugin": {
46-
"CertCentralCAPlugin": {
47-
"assemblypath": "../DigicertCAPlugin.dll",
48-
"TypeFullName": "Keyfactor.Extensions.CAPlugin.DigiCert.CertCentralCAPlugin"
49-
}
50-
}
51-
}
52-
}
53-
```
81+
* **CA Connection**
5482

55-
NOTE: If the Connectors folder and/or the manifest.json file do not exist, they must be manually created
83+
Populate using the configuration fields collected in the [requirements](#requirements) section.
5684

57-
4. Restart the AnyCA Gateway service
85+
* **APIKey** - API Key for connecting to DigiCert
86+
* **DivisionId** - Division ID to use for retrieving product details (only if account is configured with per-divison product settings)
87+
* **Region** - The geographic region that your DigiCert CertCentral account is in. Valid options are US and EU.
88+
* **RevokeCertificateOnly** - Default DigiCert behavior on revocation requests is to revoke the entire order. If this value is changed to 'true', revocation requests will instead just revoke the individual certificate.
89+
* **SyncCAFilter** - If you list one or more CA IDs here (comma-separated), the sync process will only sync records from those CAs. If you want to sync all CA IDs, leave this field empty.
90+
* **SyncDivisionFilter** - If you list one or more Divison IDs (also known as Container IDs) here (comma-separated), the sync process will filter records to only return orders from those divisions. If you want to sync all divisions, leave this field empty. Note that this has no relationship to the value of the DivisionId config field.
91+
* **FilterExpiredOrders** - If set to 'true', syncing will apply a filter to not return orders that are expired for longer than specified in SyncExpirationDays.
92+
* **SyncExpirationDays** - If FilterExpiredOrders is set to true, this setting determines how many days in the past to still return expired orders. For example, a value of 30 means the sync will return any certs that expired within the past 30 days. A value of 0 means the sync will not return any certs that expired before the current day. This value is ignored if FilterExpiredOrders is false.
93+
* **Enabled** - Flag to Enable or Disable gateway functionality. Disabling is primarily used to allow creation of the CA prior to configuration information being available.
5894

59-
5. Navigate to the AnyCA Gateway REST portal and verify that the Gateway recognizes the DigiCert plugin by hovering over the ⓘ symbol to the right of the Gateway on the top left of the portal. CAPlugin Type should now be listed as CertCentralCA.
95+
2. TODO Certificate Template Creation Step is a required section
6096

97+
3. Follow the [official Keyfactor documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/AddCA-Keyfactor.htm) to add each defined Certificate Authority to Keyfactor Command and import the newly defined Certificate Templates.
6198

62-
## Configuration
99+
4. TODO Custom Enrollment Parameter Creation Step is an optional section. If this section doesn't seem necessary on initial glance, please delete it. Refer to the docs on [Confluence](https://keyfactor.atlassian.net/wiki/x/SAAyHg) for more info
63100
64-
1. Follow the [official Keyfactor AnyCA Gateway REST documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/AddCA-Gateway.htm#Add_or_Edit_a_Certificate_Authority) to define a new Certificate Authority, using the following information to configure the CA Connection section:
65101
66-
SETTING | REQUIRED? | DESCRIPTION
67-
--|--|--
68-
Enabled | Yes | Enables the DigiCert gateway functionality. Should almost always be set to 'true'
69-
APIKey | Yes | The API key the Gateway should use to communicate with the DigiCert API. Can be generated from the DigiCert portal.
70-
Region | No | The geographic region associated with your DigiCert account. Valid values are US and EU. Default if not provided is US.
71-
DivisionId | No | If your CertCentral account has multiple divisions AND uses any custom per-division product settings, provide a division ID for the gateway to use for product type lookups.
72-
RevokeCertificateOnly | No | If set to 'true', revoke operations will only revoke the individual certificate in question rather than the entire DigiCert order. Default if not provided is 'false'.
73-
SyncCAFilter | No | If you list one or more DigiCert issuing CA IDs here (comma-separated if more than one), the sync process will only return certs issued by one of those CAs. Leave this option empty to sync all certs from all CAs.
74-
FilterExpiredOrders | No | If set to 'true', syncing will not return certs that are expired more than a specified number of days. The number of days is specified by the SyncExpirationDays config option. Default value is 'false'.
75-
SyncExpirationDays | No | Only used if FilterExpiredOrders is 'true', otherwise ignored. Sets the number of days a cert has to be expired for the sync process to no longer sync it. For example, a value of 30 means sync will continue to return certs that have expired within the past 30 days, but not ones older than that. Default value is 0, meaning sync would not return any certs expired before the current day.
76102
77-
2. After saving the CA configuration, Follow the [official AnyCA Gateway REST documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/AddCP-Gateway.htm#Certificate_Profile) to define one or more Certificate Profiles.
78-
3. Edit your newly configured CA, and you should now be able to modify the Templates tab. You need at least one template for each product type you wish to be able to enroll for. It is recommended to include the product type in the template name to make them easier to identify. Use the following information to configure the parameters for each template:
103+
## License
79104
80-
SETTING | REQUIRED? | DESCRIPTION
81-
--|--|--
82-
LifetimeDays | No | The number of days of validity to use when requesting certs. Default if not provided is 365. NOTE FOR RENEWALS: If the value of LifetimeDays is evenly divisible by 365, the expiration day and month of the new cert will be set to the same values as the old cert if possible, to avoid renewal date drift.
83-
CACertId | No | The ID of the issuing CA to be used by DigiCert. If not specified, the default for your account will be used.
84-
Organization-Name | No | If specified, this value will override any organization name provided in the subject of the cert request on enrollment. Useful for requests (such as ACME) that contain no subject.
85-
RenewalWindowDays | No | The number of days from expiration that the gateway should do a reissue rather than a renewal. Default if not provided is 90, meaning any renewal request for certs that expire in more than 90 days will be treated as a reissue request.
86-
CertType | No | Allows you to specify whether the certs of this template are ssl or client certs. Valid values: ssl, client. If not provided, defaults to ssl.
105+
Apache License 2.0, see [LICENSE](LICENSE).
87106
107+
## Related Integrations
88108
109+
See all [Keyfactor Any CA Gateways (REST)](https://github.com/orgs/Keyfactor/repositories?q=anycagateway).

digicert-certcentral-caplugin/digicert-certcentral-caplugin.csproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,10 @@
1616
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
1717
</ItemGroup>
1818

19+
<ItemGroup>
20+
<None Update="manifest.json">
21+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
22+
</None>
23+
</ItemGroup>
24+
1925
</Project>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extensions": {
3+
"Keyfactor.AnyGateway.Extensions.IAnyCAPlugin": {
4+
"DigicertCAPlugin": {
5+
"assemblypath": "DigicertCAPlugin.dll",
6+
"TypeFullName": "Keyfactor.Extensions.CAPlugin.DigiCert.CertCentralCAPlugin"
7+
}
8+
}
9+
}
10+
}

docsource/configuration.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## Overview
2+
3+
TODO Overview is a required section
4+
5+
## Requirements
6+
7+
TODO Requirements is a required section
8+
9+
## Gateway Registration
10+
11+
TODO Gateway Registration is a required section
12+
13+
## Certificate Template Creation Step
14+
15+
TODO Certificate Template Creation Step is a required section
16+
17+
## Custom Enrollment Parameter Creation Step
18+
19+
TODO Custom Enrollment Parameter Creation Step is an optional section. If this section doesn't seem necessary on initial glance, please delete it. Refer to the docs on [Confluence](https://keyfactor.atlassian.net/wiki/x/SAAyHg) for more info
20+
21+
## Mechanics
22+
23+
TODO Mechanics is an optional section. If this section doesn't seem necessary on initial glance, please delete it. Refer to the docs on [Confluence](https://keyfactor.atlassian.net/wiki/x/SAAyHg) for more info
24+

0 commit comments

Comments
 (0)