> ## 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.

# Carregando seu próprio certificado

> Armazene o material de certificado que você já possui — e o que você assume ao fazê-lo.

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

## Trazendo seu próprio certificado

Armazene o material que você já tem. Não há nenhum desafio e nenhuma espera — o certificado é `active` imediatamente.

<Tabs>
  <Tab title="Console">
    Em **Create Certificate**, altere a origem para **Provide your own
    certificate** e cole o **Certificate** (codificado com PEM), a **Private Key** e, opcionalmente, a **Certificate Chain**.
  </Tab>

  <Tab title="API">
    Definir `source: "uploaded"`. A resposta é **`201`** com o certificado já `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>

O corpo da solicitação na íntegra:

```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` e `private_key_pem` são ambos necessários ao fazer o upload; `chain_pem` é opcional.

<Warning>
  **Os certificados carregados nunca são renovados.** A renovação só cobre o que a plataforma emitiu, pois só assim ela detém a relação de autoridade necessária para re-emitir.Acompanhe a expiração de um certificado carregado você mesmo e carregue um substituto antes de expirar. `expires_at`.
</Warning>


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