-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
36 changed files
with
3,096 additions
and
491 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
name: Keyfactor Bootstrap Workflow | ||
|
||
on: | ||
workflow_dispatch: | ||
pull_request: | ||
types: [opened, closed, synchronize, edited, reopened] | ||
push: | ||
create: | ||
branches: | ||
- 'release-*.*' | ||
|
||
jobs: | ||
call-starter-workflow: | ||
uses: keyfactor/actions/.github/workflows/starter.yml@v3 | ||
secrets: | ||
token: ${{ secrets.V2BUILDTOKEN}} | ||
APPROVE_README_PUSH: ${{ secrets.APPROVE_README_PUSH}} | ||
gpg_key: ${{ secrets.KF_GPG_PRIVATE_KEY }} | ||
gpg_pass: ${{ secrets.KF_GPG_PASSPHRASE }} | ||
scan_token: ${{ secrets.SAST_TOKEN }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
1.0.0 | ||
Inital Release. Support for Enroll, Sync, and Revocation. |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,93 +1,113 @@ | ||
# cpr-cagateway-template | ||
<h1 align="center" style="border-bottom: none"> | ||
Entrust ECS Gateway AnyCA Gateway REST Plugin | ||
</h1> | ||
|
||
## Template for new CA Gateway integrations | ||
<p align="center"> | ||
<!-- Badges --> | ||
<img src="https://img.shields.io/badge/integration_status-production-3D1973?style=flat-square" alt="Integration Status: production" /> | ||
<a href="https://github.com/Keyfactor/entrust-ecs-caplugin/releases"><img src="https://img.shields.io/github/v/release/Keyfactor/entrust-ecs-caplugin?style=flat-square" alt="Release" /></a> | ||
<img src="https://img.shields.io/github/issues/Keyfactor/entrust-ecs-caplugin?style=flat-square" alt="Issues" /> | ||
<img src="https://img.shields.io/github/downloads/Keyfactor/entrust-ecs-caplugin/total?style=flat-square&label=downloads&color=28B905" alt="GitHub Downloads (all assets, all releases)" /> | ||
</p> | ||
|
||
### Use this repository to create new integrations for new CA Gateway integration types. | ||
<p align="center"> | ||
<!-- TOC --> | ||
<a href="#support"> | ||
<b>Support</b> | ||
</a> | ||
· | ||
<a href="#requirements"> | ||
<b>Requirements</b> | ||
</a> | ||
· | ||
<a href="#installation"> | ||
<b>Installation</b> | ||
</a> | ||
· | ||
<a href="#license"> | ||
<b>License</b> | ||
</a> | ||
· | ||
<a href="https://github.com/orgs/Keyfactor/repositories?q=anycagateway"> | ||
<b>Related Integrations</b> | ||
</a> | ||
</p> | ||
|
||
|
||
1. [Use this repository](#using-the-repository) | ||
1. [Update the integration-manifest.json](#updating-the-integration-manifest.json) | ||
1. [Add Keyfactor Bootstrap Workflow (keyfactor-bootstrap-workflow.yml)](#add-bootstrap) | ||
1. [Create required branches](#create-required-branches) | ||
1. [Replace template files/folders](#replace-template-files-and-folders) | ||
1. [Create initial prerelease](#create-initial-prerelease) | ||
--- | ||
The Entrust ECS AnyCA Gateway REST plugin extends the capabilities of Entrust Certificate Services to Keyfactor Command via the Keyfactor AnyCA Gateway REST. The plugin represents a fully featured AnyCA REST Plugin with the following capabilies: | ||
* SSL Certificate Synchronization | ||
* SSL Certificate Enrollment | ||
* SSL Certificate Revocation | ||
|
||
#### Using the repository | ||
1. Select the ```Use this template``` button at the top of this page | ||
1. Update the repository name following [these guidelines](https://keyfactorinc.sharepoint.com/sites/IntegrationWiki/SitePages/GitHub-Processes.aspx#repository-naming-conventions) | ||
1. All repositories must be in lower-case | ||
1. General pattern: company-product-type | ||
1. e.g. hashicorp-vault-orchestator | ||
1. Click the ```Create repository``` button | ||
## Compatibility | ||
|
||
--- | ||
The Entrust ECS Gateway AnyCA Gateway REST plugin is compatible with the Keyfactor AnyCA Gateway REST 24.2.0 and later. | ||
|
||
#### Updating the integration-manifest.json | ||
## Support | ||
The Entrust ECS 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. | ||
|
||
*The following properties must be updated in the integration-manifest.json* | ||
> 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. | ||
Clone the repository locally, use vsdev.io, or the GitHub online editor to update the file. | ||
## Requirements | ||
|
||
* "name": "Friendly name for the integration" | ||
* This will be used in the readme file generation and catalog entries | ||
* "description": "Brief description of the integration." | ||
* This will be used in the readme file generation | ||
* If the repository description is empty this value will be used for the repository description upon creating a release branch | ||
* "release_dir": "PATH\\\TO\\\BINARY\\\RELEASE\\\OUTPUT\\\FOLDER" | ||
* Path separators can be "\\\\" or "/" | ||
* Be sure to specify the release folder name. This can be found by running a Release build and noting the output folder | ||
* Example: "AzureAppGatewayOrchestrator\\bin\\Release" | ||
* "gateway_framework": "" string denoting the required command gateway framework version | ||
--- | ||
|
||
#### Add Bootstrap | ||
Add Keyfactor Bootstrap Workflow (keyfactor-bootstrap-workflow.yml). This can be copied directly from the workflow templates or through the Actions tab | ||
* Directly: | ||
1. Create a file named ```.github\workflows\keyfactor-bootstrap-workflow.yml``` | ||
1. Copy the contents of [keyfactor/.github/workflow-templates/keyfactor-bootstrap-workflow.yml](https://raw.githubusercontent.com/Keyfactor/.github/main/workflow-templates/keyfactor-bootstrap-workflow.yml) into the file created in the previous step | ||
* Actions tab: | ||
1. Navigate to the [Actions tab](./actions) in the new repository | ||
1. Click the ```New workflow``` button | ||
1. Find the ```Keyfactor Bootstrap Workflow``` and click the ```Configure``` button | ||
1. Click the ```Commit changes...``` button on this screen and the next to add the bootstrap workflow to the main branch | ||
|
||
A new build will run the tasks of a *Push* trigger on the main branch | ||
|
||
*Ensure there are no errors during the workflow run in the Actions tab.* | ||
## Installation | ||
|
||
--- | ||
1. Install the AnyCA Gateway REST per the [official Keyfactor documentation](https://software.keyfactor.com/Guides/AnyCAGatewayREST/Content/AnyCAGatewayREST/InstallIntroduction.htm). | ||
|
||
#### Create required branches | ||
1. Create a release branch from main: release-1.0 | ||
1. Create a dev branch from the starting with the devops id in the format ab#\<DevOps-ID>, e.g. ab#53535. | ||
1. For the cleanest pull request merge, create the dev branch from the release branch. | ||
1. Optionally, add a suffix to the branch name indicating initial release. e.g. ab#53535-initial-release | ||
2. On the server hosting the AnyCA Gateway REST, download and unzip the latest [Entrust ECS Gateway AnyCA Gateway REST plugin](https://github.com/Keyfactor/entrust-ecs-caplugin/releases/latest) from GitHub. | ||
|
||
--- | ||
3. Copy the unzipped directory (usually called `net6.0`) to the Extensions directory: | ||
|
||
```shell | ||
Program Files\Keyfactor\AnyCA Gateway\AnyGatewayREST\net6.0\Extensions | ||
``` | ||
|
||
#### Replace template files and folders | ||
1. Replace the contents of readme_source.md | ||
1. Create a CHANGELOG.md file in the root of the repository indicating ```1.0: Initial release``` | ||
1. Replace the SampleOrchestratorExtension.sln solution file and SampleOrchestratorExtension folder with your new orchestrator dotnet solution | ||
1. Push your updates to the dev branch (ab#xxxxx) | ||
> The directory containing the Entrust ECS Gateway AnyCA Gateway REST plugin DLLs (`net6.0`) can be named anything, as long as it is unique within the `Extensions` directory. | ||
|
||
--- | ||
4. Restart the AnyCA Gateway REST service. | ||
|
||
5. Navigate to the AnyCA Gateway REST portal and verify that the Gateway recognizes the Entrust ECS Gateway plugin by hovering over the ⓘ symbol to the right of the Gateway on the top left of the portal. | ||
|
||
#### Create initial prerelease | ||
1. Create a pull request from the dev branch to the release-1.0 branch | ||
## Configuration | ||
|
||
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: | ||
|
||
---- | ||
* **Gateway Registration** | ||
|
||
When the repository is ready for SE Demo, change the following property: | ||
* "status": "pilot" | ||
In order to enroll for certificates the Keyfactor Command server must trust the trust chain. Once you know your Root and/or Subordinate CA in your Entrust account, make sure to download and import the certificate chain into the Command Server certificate store | ||
|
||
When the integration has been approved by Support and Delivery teams, change the following property: | ||
* "status": "production" | ||
* **CA Connection** | ||
|
||
If the repository is ready to be published in the public catalog, the following properties must be updated: | ||
* "update_catalog": true | ||
* "link_github": true | ||
Populate using the configuration fields collected in the [requirements](#requirements) section. | ||
|
||
* **AuthUsername** - Username for the gateway to authenticate with Entrust | ||
* **AuthPassword** - Password for the account used to authenticate with Entrust | ||
* **ClientCertificate** - The client certificate information used to authenticate with Entrust (if configured to use certificate authentication). This can be either a Windows cert store name and location (e.g. 'My' and 'LocalMachine' for the Local Computer personal cert store) and thumbprint, or a PFX file and password. | ||
* **Name** - The default requester name | ||
* **Email** - The default requester email address | ||
* **PhoneNumber** - The default requester phone number | ||
* **IgnoreExpired** - If set to true, will not sync expired certs from Entrust | ||
* **Enabled** - Flag to Enable or Disable gateway functionality. Disabling is primarily used to allow creation of the CA prior to configuration information being available. | ||
|
||
2. TODO Certificate Template Creation Step is a required section | ||
|
||
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. | ||
|
||
4. In Keyfactor Command (v12.3+), for each imported Certificate Template, follow the [official documentation](https://software.keyfactor.com/Core-OnPrem/Current/Content/ReferenceGuide/Configuring%20Template%20Options.htm) to define enrollment fields for each of the following parameters: | ||
|
||
* **LifetimeMonths** - OPTIONAL: The number of months of validity to use when requesting certs. If not provided, default is 12. | ||
* **Organization** - OPTIONAL: For requests that will not have a subject (such as ACME) you can use this field to provide an 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. | ||
* **CertificateUsage** - Required for public SSL certificate types. Represents the key usage for the certificates enrolled against this template. Valid values are 'server', 'client', or 'serverclient'. Do not provide a value for cert types that are not public SSL. | ||
* **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. | ||
|
||
|
||
|
||
## License | ||
|
||
Apache License 2.0, see [LICENSE](LICENSE). | ||
|
||
## Related Integrations | ||
|
||
See all [Keyfactor Any CA Gateways (REST)](https://github.com/orgs/Keyfactor/repositories?q=anycagateway). |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.