Creazione di autorità di certificazione root

Con IBM Cloud® Secrets Manager è possibile creare e gestire un proprio sistema di infrastruttura a chiave pubblica (PKI) creando autorità di certificazione (CA) radice e intermedie.

Un'autorità di certificazione (CA) è l'entità che firma e rilascia i certificati SSL / TLS. Se si desidera generare rapidamente un certificato autofirmato, è possibile utilizzare Secrets Manager per creare una root CA firmata internamente. È possibile utilizzare questa CA come ancoraggio di trust per una catena di certificati. Dopo aver creato una CA radice per la propria istanza, è possibile utilizzarla per firmare una CA di livello inferiore o subordinato, ad esempio altre Autorità di certificazione intermedie create nel servizio.

È possibile creare fino a 10 autorità di certificazione root per istanza. Per visualizzare un elenco delle configurazioni disponibili per la vostra istanza, andate alla pagina Motori segreti > Certificati privati nell'interfaccia utente Secrets Manager.

Prima di iniziare

Prima di iniziare, assicurati di disporre del livello di accesso richiesto. Per gestire le configurazioni del motore per la tua istanza, hai bisogno del ruolo del servizio Gestore o superiore.

Creazione di un'autorità di certificazione root nell'interfaccia utente

Puoi creare un'autorità di certificazione root firmata internamente per la tua istanza del servizio utilizzando l'IU Secrets Manager.

  1. Nella console, fare clic sull'icona Menu icona Menu > Elenco risorse.

  2. Dall'elenco di servizi, seleziona la tua istanza di Secrets Manager.

  3. Nella pagina Secrets engines, fare clic sulla scheda Certificati privati.

  4. Nella tabella Autorità di certificazione, fare clic su Crea autorità di certificazione per avviare la creazione guidata.

  5. Specificare il tipo di autorità di certificazione e le opzioni.

    1. Selezionare Autorità di certificazione root come tipo di autorità.
    2. Immettere un nome per identificare facilmente l'autorità di certificazione.
    3. Selezionare un TTL (time - to - live) massimo per il certificato da generare per questa CA. Il TTL determina per quanto tempo il certificato CA rimane valido.
    4. Selezionare il numero massimo di certificati intermedi di livello inferiore o subordinato che possono esistere nella catena.
    5. Per codificare il certificato della CA emittente URL nei certificati delle CA intermedie, impostare l'opzione Codifica URL su Abilitato.
  6. Immettere i campi del nome oggetto per il certificato CA root.

  7. Selezionare il servizio di gestione delle chiavi. Scegliere il servizio Secrets Manager per creare le chiavi dell'autorità del certificato radice internamente al servizio, oppure scegliere Hyper Protect Crypto Services (HPCS). Se si seleziona HPCS, eseguire le seguenti operazioni:

    1. Selezionare l'istanza HPCS o inserire manualmente il CRN dell'istanza HPCS

    2. Selezionare il segreto delle credenziali IAM creato in precedenza per l'autenticazione con HPCS.

      Una volta che la credenziale IAM è stata impostata nella configurazione della CA, non può essere sostituita in seguito.

    3. Selezionare il keystore privato HPCS dall'elenco dei keystore o inserire manualmente l'ID del keystore.

    4. Scegliere se utilizzare le chiavi esistenti o generare nuove chiavi. Se si seleziona una chiave privata HPCS esistente o si inserisce manualmente l'ID di una chiave privata, assicurarsi che esista una chiave pubblica con lo stesso ID della chiave privata nel keystore privato.

      Se si sceglie di generare nuove chiavi, queste non verranno eliminate da Secrets Manager nel caso in cui la configurazione venga cancellata.

  8. Selezionare l'algoritmo chiave che si desidera utilizzare per creare la chiave pubblica e privata per il certificato CA.

  9. Determinare se abilitare la creazione di CRL (Certificate Revocation List) e i punti di distribuzione per il certificato CA.

    Un CRL è un elenco di certificati revocati dall'autorità di certificazione emittente prima della data di scadenza pianificata. Un certificato elencato come parte di un CRL non può più essere considerato attendibile dalle applicazioni.

    1. Per creare un CRL per la tua CA root con ogni richiesta del certificato, imposta l'opzione CRL building su Enabled.
    2. Per codificare il sito URL dell'elenco di revoca nel certificato della CA radice, impostare l'opzione Punti di distribuzione CRL su Abilitato.
    3. Selezionare un TTL (time - to - live) del CRL generato. Il TTL determina per quanto tempo il CRL rimane valido.
  10. Rivedere le selezioni. Per creare la CA root, fare clic su Crea.

Ora puoi selezionare questa CA radice quando esegui creare una CA intermedia con firma interna. Per modificare o rimuovere una configurazione esistente, fare clic su Azioni menù Icona delle azioni nella riga dell'autorità di certificazione che desideri aggiornare.

Creazione di un'autorità di certificazione root con l'API

Puoi creare un'autorità di certificazione root firmata internamente per la tua istanza del servizio chiamando l'API Secrets Manager.

Il seguente esempio mostra una query che è possibile utilizzare per creare un'autorità di certificazione root.

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_root_ca",
  "name": "test-root-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "43830h"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

Se si porta il proprio HSM, includere quanto segue nella richiesta:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

Una risposta corretta aggiunge la configurazione all'istanza del servizio.

{
  "common_name": "example.com",
  "config_type": "private_cert_configuration_root_ca",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----",
    "expiration": 1825612535,
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bvad\n-----END CERTIFICATE-----",
    "serial_number": "48:a5:ba:cc:8f:84:f4:95:38:6e:f6:9d:9e:d7:8f:d8:43:d3:55:bd"
  },
  "exclude_cn_from_sans": false,
  "format": "pem",
  "issuing_certificates_urls_encoded": true,
  "max_path_length": -1,
  "max_ttl_seconds": 31536000,
  "name": "test-root-CA",
  "private_key_format": "der",
  "secret_type": "private_cert",
  "updated_at": "2022-10-05T21:33:11Z"
}

Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, vedi Aggiungi una configurazione.

Creazione di un'autorità di certificazione root dalla CLI

Puoi creare un'autorità di certificazione root firmata internamente per la tua istanza del servizio utilizzando il comando ibmcloud secrets-manager configuration-create.

Il seguente esempio mostra un comando che è possibile utilizzare per creare un'autorità di certificazione root.

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_root_ca",
    "name": "example-root-CA",
    "max_ttl": "43830h",
    "crl_expiry": "72h",
    "crl_disable": false,
    "crl_distribution_points_encoded": true,
    "issuing_certificates_urls_encoded": true,
    "common_name": "example.com",
    "alt_names": [
      "alt-name-1","alt-name-2"
      ],
    "ip_sans": "127.0.0.1",
    "uri_sans": "https://www.example.com/test",
    "other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
    "ttl": "2190h",
    "format": "pem",
    "private_key_format": "der",
    "key_type": "rsa",
    "key_bits": 4096,
    "max_path_length": -1,
    "exclude_cn_from_sans": false,
    "permitted_dns_domains": ["exampleString"],
    "ou": ["exampleString"],
    "organization": ["exampleString"],
    "country": ["exampleString"],
    "locality": ["exampleString"],
    "province": ["exampleString"],
    "street_address": ["exampleString"],
    "postal_code": ["exampleString"],
    "serial_number": "d9:be:fe:35:ba:09:42:b5:35:ba:09:42:b5"
  }'

Se si porta il proprio HSM, includere nel comando quanto segue:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

Creazione di un'autorità di certificazione root con Terraform

Puoi creare un'autorità di certificazione root firmata internamente per la tua istanza del servizio utilizzando Terraform per Secrets Manager.

Il seguente esempio mostra una configurazione che è possibile utilizzare per creare un'autorità di certificazione root.

    resource "ibm_sm_private_certificate_configuration_root_ca" "test_root_ca" {
        instance_id = local.instance_id
        region = local.region
        name = "test-root-ca"
        common_name = "root.example.com"
        max_ttl = "3650d"
        issuing_certificates_urls_encoded = true
    }

Se si porta il proprio HSM, includere nella configurazione quanto segue:

crypto_key {
    label = "my_key"
    allow_generate_key = true
    provider {
      type = "hyper_protect_crypto_services"
      instance_crn = "replace_with_hpcs_crn::"
      pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
      private_keystore_id = "replace_with_keystore_id"
    }
}

Richiamo di un'autorità di certificazione root nell'interfaccia utente

Puoi recuperare il valore dell'autorità di certificazione root utilizzando l'IU Secrets Manager.

  1. Nel motore di segreti Certificati pubblici, fai clic sul menu Azioni icona Azioni per aprire un elenco di opzioni per la tua configurazione del motore.
  2. Per visualizzare il valore della configurazione, fare clic su Visualizza configurazione.
  3. Fare clic su Conferma dopo essersi assicurati di essere in un ambiente sicuro.

Il valore segreto viene visualizzato per 15 secondi, quindi la finestra di dialogo viene chiusa.

Richiamo di un'autorità di certificazione root utilizzando la CLI

Puoi recuperare il valore dell'autorità di certificazione root utilizzando la CLI Secrets Manager. Nel seguente comando di esempio, sostituire il nome della configurazione del motore con il proprio nome della configurazione.

ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud

Sostituisci {instance_ID} e {region} con i valori che si applicano alla tua istanza del servizio Secrets Manager. Per trovare l'endpoint URL specifico della propria istanza, è possibile copiarlo dalla pagina Endpoint dell'interfaccia utente Secrets Manager. Per ulteriori informazioni, vedi Visualizzazione degli URL degli endpoint

Richiamo di un'autorità di certificazione root utilizzando l'API

Puoi recuperare il valore dell'autorità di certificazione root utilizzando l'API Secrets Manager. Nella seguente richiesta di esempio, sostituire il nome di configurazione del motore con il proprio nome di configurazione.

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

Sostituisci {instance_ID} e {region} con i valori che si applicano alla tua istanza del servizio Secrets Manager. Per trovare l'endpoint URL specifico della propria istanza, è possibile copiarlo dalla pagina Endpoint dell'interfaccia utente Secrets Manager. Per ulteriori informazioni, vedi Visualizzazione degli URL degli endpoint

Una risposta corretta restituisce il valore della configurazione motore, insieme ad altri metadati. Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, vedi Ottieni un segreto.

Passi successivi