From e0f1311f6dcfdaecc31e601ecbfbfa27d463f109 Mon Sep 17 00:00:00 2001
From: Sheen <65645666+sheensantoscapadngan@users.noreply.github.com>
Date: Sun, 18 May 2025 13:31:36 +0000
Subject: [PATCH] doc: added docs for external CA
---
.../platform/pki/external-ca.mdx | 289 ++++++++++++++++++
.../external-ca/create-external-ca-button.png | Bin 0 -> 1014596 bytes
.../external-ca/create-external-ca-form.png | Bin 0 -> 585134 bytes
.../pki/ca/external-ca/external-ca-list.png | Bin 0 -> 1013032 bytes
docs/mint.json | 1 +
5 files changed, 290 insertions(+)
create mode 100644 docs/documentation/platform/pki/external-ca.mdx
create mode 100644 docs/images/platform/pki/ca/external-ca/create-external-ca-button.png
create mode 100644 docs/images/platform/pki/ca/external-ca/create-external-ca-form.png
create mode 100644 docs/images/platform/pki/ca/external-ca/external-ca-list.png
diff --git a/docs/documentation/platform/pki/external-ca.mdx b/docs/documentation/platform/pki/external-ca.mdx
new file mode 100644
index 000000000..aee0de00e
--- /dev/null
+++ b/docs/documentation/platform/pki/external-ca.mdx
@@ -0,0 +1,289 @@
+---
+title: "External CA"
+sidebarTitle: "External CA"
+description: "Learn how to connect External Certificate Authorities with Infisical."
+---
+
+## Concept
+
+In addition to creating a Private CA hierarchy, Infisical allows you to integrate with External Certificate Authorities (CAs) to issue digital certificates for your [subscribers](/documentation/platform/pki/subscribers). This integration enables you to leverage established public CA infrastructure while centralizing your certificate management within Infisical.
+
+
+
+```mermaid
+graph TD
+ A[External CA Provider
e.g., Let's Encrypt] <-->|ACME v2 Protocol| B[Infisical]
+ B -->|Creates TXT Records
via Route53| C[DNS Validation]
+ B -->|Manages Certificates| D[Subscribers]
+```
+
+
+
+When you integrate an External CA with Infisical, you benefit from:
+
+1. **Trust by Default**: Certificates issued by public CAs like Let's Encrypt are trusted by default in browsers and operating systems.
+2. **Unified Management**: Manage all certificates—both internally and externally issued—from a single platform.
+3. **Automation**: Leverage Infisical's automation capabilities for certificate lifecycle management.
+4. **Compliance**: Meet requirements for publicly trusted certificates, especially for public-facing services.
+
+## Workflow
+
+A typical workflow for integrating an External CA with Infisical consists of the following steps:
+
+1. Configuring DNS provider credentials in Infisical to enable automatic domain validation.
+2. Registering an External CA provider with Infisical using the ACME v2 protocol.
+3. Creating subscribers that use the External CA as their issuing authority.
+4. Managing certificate lifecycle events such as certificate issuance, renewal, and revocation.
+
+
+ Currently, Infisical supports integrating with External CAs via the ACME v2 protocol with DNS-01 validation through Route53 as the DNS provider. Additional integration methods and DNS providers will be supported in future releases.
+
+
+## Understanding ACME DNS-01 Challenge
+
+The DNS-01 challenge is one method used by ACME CA providers to verify that you control a domain before issuing a certificate. Here's how Infisical handles this process:
+
+1. **Challenge Request**: When you request a certificate, Let's Encrypt (or another ACME provider) issues a challenge token.
+
+2. **DNS Record Creation**: Infisical creates a TXT record at `_acme-challenge.` with a value derived from the challenge token.
+
+3. **DNS Propagation**: The TXT record must propagate through the DNS system (usually takes a few minutes, depending on TTL settings).
+
+4. **Validation**: The ACME provider checks for the existence of this TXT record to verify domain control.
+
+5. **Cleanup**: After validation completes successfully, Infisical automatically removes the TXT record from your DNS.
+
+This automated process eliminates the need for manual intervention in domain validation, streamlining certificate issuance.
+
+## Guide to Registering an External CA
+
+In the following steps, we explore how to register an External CA with Infisical using the ACME v2 protocol with Route53 for DNS-01 validation.
+
+### Step 1: Set Up AWS Connection with Required Permissions
+
+Before proceeding with the External CA registration, you need to set up an AWS connection with the appropriate permissions for DNS validation:
+
+1. Navigate to your Organization Settings > App Connections and create a new AWS connection.
+
+2. Ensure your AWS connection has the following minimum permissions for Route53 DNS validation:
+
+```json
+{
+ "Version": "2012-10-17",
+ "Statement": [
+ {
+ "Effect": "Allow",
+ "Action": "route53:GetChange",
+ "Resource": "arn:aws:route53:::change/*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": "route53:ListHostedZonesByName",
+ "Resource": "*"
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "route53:ListResourceRecordSets"
+ ],
+ "Resource": [
+ "arn:aws:route53:::hostedzone/YOUR_HOSTED_ZONE_ID"
+ ]
+ },
+ {
+ "Effect": "Allow",
+ "Action": [
+ "route53:ChangeResourceRecordSets"
+ ],
+ "Resource": [
+ "arn:aws:route53:::hostedzone/YOUR_HOSTED_ZONE_ID"
+ ],
+ "Condition": {
+ "ForAllValues:StringEquals": {
+ "route53:ChangeResourceRecordSetsRecordTypes": [
+ "TXT"
+ ]
+ }
+ }
+ }
+ ]
+}
+```
+
+Replace `YOUR_HOSTED_ZONE_ID` with your actual Route53 hosted zone ID.
+
+For detailed instructions on setting up an AWS connection, see the [AWS Connection](/integrations/app-connections/aws) documentation.
+
+### Step 2: Create External Certificate Authority
+
+
+
+
+
+ To register an External CA, head to your Project > Internal PKI > Certificate Authorities and press the **+** button in the External Certificate Authorities section.
+
+ 
+
+ Fill out the details for the External CA registration:
+
+ 
+
+ Here's guidance on each field:
+
+ - Type: Select "ACME" as the External CA type.
+ - Name: Enter a name for the External CA (e.g., "lets-encrypt-production").
+ - DNS App Connection: Select from available DNS app connections or configure a new one. This connection provides Infisical with the credentials needed to create and remove DNS records for ACME validation.
+ - Hosted Zone ID: Enter your Route53 hosted zone ID (e.g., Z04044I124N1GOOMCOYX1) for the domain(s) you'll be requesting certificates for.
+ - Directory URL: Enter the ACME v2 directory URL for your chosen CA provider (e.g., `https://acme-v02.api.letsencrypt.org/directory` for Let's Encrypt).
+ - Account Email: Email address to associate with your ACME account. This email will receive important notifications about your certificates.
+ - Disable Direct Issuance: Toggle on to require subscribers for issuance (recommended).
+
+ Finally, press **Create** to register the External CA with Infisical.
+
+
+ Once registered, your External CA will appear in the External Certificate Authorities section.
+
+ 
+
+ From here, you can:
+
+ - View the status of the External CA registration
+ - Edit the configuration settings
+ - Disable or re-enable the External CA
+ - Delete the External CA registration if no longer needed
+
+ You can now use this External CA to issue certificates for your subscribers directly.
+
+ Check out the [Subscribers](/documentation/platform/pki/subscribers) page to learn more about how to issue X.509 certificates using your registered External CA.
+
+
+
+
+ To register an External CA with Infisical using the API, make a request to the Create External CA endpoint:
+
+ ### Sample request
+
+ ```bash Request
+ curl 'https://app.infisical.com/api/v1/pki/ca/acme' \
+ -H 'Authorization: Bearer ' \
+ -H 'Content-Type: application/json' \
+ --data-raw '{
+ "projectId": "0fccb6ee-1381-4ff1-8d5f-0cb93c6cc4d6",
+ "name": "lets-encrypt-production",
+ "type": "acme",
+ "status": "active",
+ "disableDirectIssuance": false,
+ "configuration": {
+ "dnsAppConnection": {
+ "id": "1e5f8c0d-09d2-492c-9b28-469acd8e841b",
+ "name": "acme-dns-test-connection"
+ },
+ "dnsProviderConfig": {
+ "provider": "route53",
+ "hostedZoneId": "Z040441124N1GOOMCQYX1"
+ },
+ "directoryUrl": "https://acme-v02.api.letsencrypt.org/directory",
+ "accountEmail": "sheen@infisical.com",
+ "dnsAppConnectionId": "1e5f8c0d-09d2-492c-9b28-469acd8e841b"
+ }
+ }'
+ ```
+
+ ### Sample response
+
+ ```bash Response
+ {
+ "id": "c48b701e-a20c-4a9a-8119-68f54e5fbb05",
+ "name": "lets-encrypt-production",
+ "type": "acme",
+ "status": "active",
+ "projectId": "0fccb6ee-1381-4ff1-8d5f-0cb93c6cc4d6",
+ "disableDirectIssuance": false,
+ "configuration": {
+ "accountEmail": "sheen@infisical.com",
+ "directoryUrl": "https://acme-v02.api.letsencrypt.org/directory",
+ "dnsAppConnection": {
+ "id": "1e5f8c0d-09d2-492c-9b28-469acd8e841b",
+ "name": "acme-dns-test-connection"
+ },
+ "dnsAppConnectionId": "1e5f8c0d-09d2-492c-9b28-469acd8e841b",
+ "dnsProviderConfig": {
+ "provider": "route53",
+ "hostedZoneId": "Z040441124N1GOOMCQYX1"
+ }
+ }
+ }
+ ```
+
+
+
+## Example: Integrating with Let's Encrypt
+
+Let's Encrypt is one of the most popular free, automated, and open Certificate Authorities. Here's a step-by-step example of integrating Infisical with Let's Encrypt using ACME v2:
+
+1. **Prepare your Route53 setup**:
+ - Ensure your domain's DNS is hosted on Route53
+ - Note your hosted zone ID from the Route53 console
+ - Create AWS credentials with appropriate permissions as detailed above
+
+2. **Configure the integration in Infisical**:
+ - Type: ACME
+ - Name: lets-encrypt-production
+ - Directory URL: `https://acme-v02.api.letsencrypt.org/directory` (Note: this is the ACME v2 endpoint)
+ - Account Email: Your email address for Let's Encrypt notifications
+ - Hosted Zone ID: Your Route53 hosted zone ID
+
+3. **Issue certificates**:
+ - Create a subscriber in Infisical specifying the Let's Encrypt External CA as the issuing authority
+ - Request certificates with domains that match records in your Route53 hosted zone
+ - When a certificate is requested, Infisical will:
+ 1. Generate a key pair for the certificate
+ 2. Send a Certificate Signing Request (CSR) to Let's Encrypt
+ 3. Receive a DNS-01 challenge from Let's Encrypt
+ 4. Create a TXT record in Route53 to satisfy the challenge
+ 5. Notify Let's Encrypt that the challenge is ready for validation
+ 6. Once validated, Let's Encrypt will issue the certificate
+ 7. Infisical will store and manage the certificate for your subscriber
+
+
+ Let's Encrypt has rate limits that may affect your certificate issuance. For testing purposes, you can use Let's Encrypt's staging environment by setting the Directory URL to `https://acme-staging-v02.api.letsencrypt.org/directory`. Certificates issued through the staging environment are not trusted by browsers but allow you to test your setup without hitting production rate limits.
+
+
+## FAQ
+
+
+
+ Currently, Infisical supports DNS validation through AWS Route53. Support for additional DNS providers is planned for future releases.
+
+
+ Yes. You can have both Private CAs (root and intermediate) and External CAs in the same project, allowing you flexibility in how you issue certificates for different use cases. This hybrid approach enables you to:
+
+ - Use Private CAs for internal services and applications
+ - Use External CAs for public-facing services
+ - Apply consistent management practices across all certificate types
+ - Implement appropriate security controls based on certificate usage
+
+
+ The types of certificates you can issue depend on the External CA provider. Most ACME providers support domain validation (DV) certificates. For organization validation (OV) or extended validation (EV) certificates, you may need to use a different integration method which will be supported in future releases.
+
+
+ Yes. Certificates issued through External CAs connected to Infisical can be automatically renewed before expiry, ensuring continuous certificate validity without manual intervention. This automation eliminates one of the most common causes of TLS-related outages.
+
+
+ Yes. In addition to ACME, Infisical plans to support other integration methods with popular External CA providers in future releases. Stay tuned for updates.
+
+
+ Infisical's External CA integration provides a complete certificate lifecycle management solution that offers:
+
+ 1. **Automated renewals**: Certificates are automatically renewed before expiry
+ 2. **Centralized visibility**: All certificates are tracked in one place
+ 3. **Audit trails**: Complete history of certificate issuance and revocation
+ 4. **Programmatic access**: API-driven certificate issuance for automation
+ 5. **Consistent processes**: Standardized workflows for certificate requests across different CAs
+ 6. **Deployment**: Integration with your infrastructure for certificate distribution
+ 7. **Monitoring**: Visibility into certificate status and upcoming expirations
+ 8. **Revocation**: Centralized management of certificate revocation when needed
+
+ This end-to-end management eliminates common challenges like expired certificates, scattered certificate storage, and manual renewal processes that often lead to outages.
+
+
\ No newline at end of file
diff --git a/docs/images/platform/pki/ca/external-ca/create-external-ca-button.png b/docs/images/platform/pki/ca/external-ca/create-external-ca-button.png
new file mode 100644
index 0000000000000000000000000000000000000000..bda7822a0bd554b11a8c5c341e2e958d66b22c9f
GIT binary patch
literal 1014596
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