> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Subir su propio certificado

> Almacene el material de certificado que ya tiene, y lo que asume al hacerlo.

<a id="bringing-your-own-certificate" />

## Traer su propio certificado

No hay desafío ni espera, el certificado es un documento que se puede usar en cualquier lugar. `active` Inmediatamente.

<Tabs>
  <Tab title="Console">
    En **Create Certificate**, cambie el origen a **Provide your own
    certificate**, luego pegue el **Certificate** (codificado con PEM), la **Private Key** y, opcionalmente, la **Certificate Chain**.
  </Tab>

  <Tab title="API">
    Establecer `source: "uploaded"`. La respuesta es **`201`** con el certificado ya `active`.
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    basaltic certificate create \
      --name prod-frontend --domains example.com --source uploaded \
      --certificate-pem "$(cat cert.pem)" \
      --private-key-pem "$(cat key.pem)" \
      --chain-pem "$(cat chain.pem)"
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    crt, err := certificate.New(cfg).CreateCertificate(ctx, &certificate.CertificateIssueRequest{
        Name:           "prod-frontend",
        Domains:        []string{"example.com"},
        Source:         basaltic.String("uploaded"),
        CertificatePEM: basaltic.String(string(certPEM)),
        PrivateKeyPEM:  basaltic.String(string(keyPEM)),
        ChainPEM:       basaltic.String(string(chainPEM)),
    })
    ```
  </Tab>
</Tabs>

El cuerpo de la solicitud en su totalidad:

```json theme={null}
{
  "name": "prod-frontend",
  "domains": ["example.com"],
  "source": "uploaded",
  "certificate_pem": "-----BEGIN CERTIFICATE-----\n...",
  "chain_pem": "-----BEGIN CERTIFICATE-----\n...",
  "private_key_pem": "-----BEGIN PRIVATE KEY-----\n..."
}
```

`certificate_pem` y `private_key_pem` son requeridos al cargar; `chain_pem` es opcional.

<Warning>
  **Los certificados cargados nunca se renuevan.** La renovación solo cubre lo que la plataforma emitió, porque solo entonces tiene la relación de autoridad necesaria para volver a emitir.Realice usted mismo el seguimiento de la caducidad de un certificado subido y suba un reemplazo antes de que expire. `expires_at`.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.