Creazione di certificati privati SSL / TLS

È possibile utilizzare IBM Cloud® Secrets Manager per memorizzare, richiedere e generare certificati privati SSL / TLS da utilizzare per le proprie applicazioni o servizi.

Un certificato SSL / TLS è un tipo di certificato digitale utilizzato per stabilire la privacy delle comunicazioni tra un server e un client. I certificati vengono emessi dalle autorità di certificazione(CA)Un'organizzazione o società attendibile di terze parti che emette i certificati digitali. L'autorità di certificazione in genere verifica l'identità dei singoli utenti a cui viene concesso il certificato univoco. e contengono informazioni utilizzate per creare connessioni sicure e affidabili tra gli endpoint. Dopo aver aggiunto un certificato all'istanza di Secrets Manager, è possibile utilizzarlo per proteggere le comunicazioni di rete per le implementazioni in cloud o on-premise. Il certificato viene memorizzato in modo sicuro nell'istanza dedicata del servizio Secrets Manager, dove è possibile gestirne centralmente il ciclo di vita.

In Secrets Manager, i certificati creati utilizzando un'autorità di certificazione privata sono certificati privati (private_cert). I certificati importati nel servizio sono certificati importati (imported_cert). I certificati ordinati tramite Secrets Manager da un'autorità di certificazione di terze parti sono certificati pubblici (public_cert).

Prima di iniziare

Prima di iniziare, assicurarsi di disporre del livello di accesso richiesto. Per creare o aggiungere segreti, hai bisogno del ruolo del servizio Scrittore o superiore.

Prima di creare un certificato privato, assicurarsi di:

La selezione di un modello è richiesta quando si crea un certificato privato. A seconda del template scelto, potrebbero essere applicate alcune limitazioni per il tuo certificato privato. Per visualizzare i modelli che sono definiti per la tua CA intermedia, vai alla pagina Secrets engines> Certificati privati nell'IU Secrets Manager. Espandere la riga della CA intermedia che si desidera utilizzare come autorità di emissione per il certificato privato e fare clic su Modelli per esaminare i modelli disponibili.

Creazione di certificati privati

Dopo aver configurato il motore di certificati privati per l'istanza, è possibile utilizzare Secrets Manager per generare i certificati privati utilizzando un'autorità di certificazione interna precedentemente configurata per l'istanza del servizio Secrets Manager. Prima che un certificato possa essere emesso, Secrets Manager verifica che la tua richiesta di certificato corrisponda alle limitazioni definite per il modello certificato che hai selezionato. Dopo aver emesso un certificato, puoi distribuirlo alle tue applicazioni integrate, scaricarlo, revocarlo o ruotarlo manualmente.

Creazione di certificati privati nell'IU

Puoi creare un certificato privato utilizzando l'IU Secrets Manager.

  1. Nella console, fai clic su Menu icon Menu icon > Resource List.
  2. Dall'elenco di servizi, seleziona la tua istanza di Secrets Manager.
  3. Nella tabella Segreti, fare clic su Aggiungi.
  4. Fai clic sul tile Create private certificate.
  5. Fai clic su Next.
  6. Aggiungere un nome e una descrizione per identificare facilmente il certificato.
  7. Facoltativo: aggiungi le etichette per aiutarti a cercare segreti simili nella tua istanza.
  8. Facoltativo: aggiungi i metadati al tuo segreto o a una versione specifica del tuo segreto.
    1. Caricare un file o immettere i metadati e i metadati della versione in formato JSON.
  9. Fai clic su Next.
  10. Selezionare la configurazione di un'autorità di certificazione.

La configurazione selezionata determina l'autorità di certificazione da utilizzare per la firma e l'emissione del certificato. Per visualizzare le configurazioni definite per la tua istanza, puoi andare a Secrets engines> Certificati privati.

  1. Selezionare un modello certificato.

Il modello selezionato determina i parametri da applicare al certificato generato. Per visualizzare i dettagli dei modelli di certificati definiti per l'autorità di certificazione selezionata, è possibile andare a Motori segreti> Certificati privati. Dall'elenco di autorità di certificazione, espandere la riga della CA che si desidera utilizzare come autorità emittente per il proprio certificato privato e fare clic su Modelli. 12. Facoltativo: abilitare la rotazione automatica per il certificato.

Per abilitare la rotazione automatica, passare all'opzione Attiva. Selezionare un intervallo e un'unità che specificano il numero di giorni tra le rotazioni programmate.

A seconda del modello di certificato che scegli nei seguenti passi, potrebbero essere applicate alcune limitazioni all'intervallo di rotazione per il tuo certificato privato. Ad esempio, l'intervallo di rotazione non può superare il TTL (time - to - live) definito nella maschera. Per ulteriori informazioni, vedi Modelli di certificato.

  1. Obbligatorio: specificare un nome comune per il certificato.

A seconda del modello di certificato scelto, potrebbero essere applicate alcune restrizioni sul nome comune. Per visualizzare i dettagli del modello di certificato selezionato, è possibile andare a Motori segreti> Certificati privati. Dall'elenco di autorità di certificazione, espandere la riga della CA che si desidera utilizzare come autorità emittente per il proprio certificato privato e fare clic su Modelli. 14. Seleziona un gruppo di segretiL'ambiente e i vincoli che contengono segreti in un'istanza devono essere conformi. Un utente può essere associato a un gruppo segreto per consentire l'accesso e la collaborazione. che vuoi assegnare al certificato.

Se il modello di certificato selezionato consente l'aggiunta di certificati a specifici gruppi di segreti, vengono elencati solo i gruppi consentiti. Se il modello non ha limitazioni, puoi creare un gruppo di segreti se non ne hai già uno. Il certificato viene aggiunto automaticamente al nuovo gruppo. Per ulteriori informazioni sui gruppi di segreti, consulta Organizzazione dei tuoi segreti. 15. Facoltativo: specificare nomi alternativi per il certificato.

I nomi alternativi possono essere nomi di host o indirizzi e-mail. 16. Fai clic su Next. 17. Esaminare i dettagli del certificato. 18. Fai clic su Aggiungi.

Creazione di certificati privati dalla CLI

Prima di iniziare, seguire la documentazione della CLI per impostare l'endpoint API.

Per creare un certificato privato utilizzando il plug-in della CLI Secrets Manager, esegui il comando ibmcloud secrets-manager secret-create. Ad esempio, il seguente comando crea un segreto del certificato privato dal template del certificato specificato.

Quando si ordina un certificato, viene eseguita la convalida del dominio per verificare la proprietà dei domini selezionati. Questa operazione può richiedere diversi minuti per essere completata.

ibmcloud secrets-manager secret-create \
    --secret-name example-private-certificate \
    --secret-description "Extended description for this secret." \
    --secret-type private_cert \
    --secret-group-id bc656587-8fda-4d05-9ad8-b1de1ec7e712 \
    --secret-labels dev,us-south \
    --private-cert-template-name example-certificate-template \
    --certificate-common-name cert_common_name \
    --secret-rotation '{"enabled": false, "rotate_keys": false}' \
    --secret-custom-metadata '{"anyKey": "anyValue"}' \
    --secret-version-custom-metadata '{"anyKey": "anyValue"}' \
    --secret-expiration-date 2030-01-01T00:00:00Z

Il comando emette il valore di ID del segreto, insieme ad altri metadati. Per ulteriori informazioni relative alle opzioni del comando, consultare ibmcloud secrets-manager secret-create.

Creazione di certificati privati con l'API

Puoi generare i certificati privati in modo programmatico richiamando l'API Secrets Manager.

Il seguente esempio mostra una query che puoi utilizzare per creare un certificato privato. Quando richiami la API, sostituisci le variabili ID e il token IAM con i valori specifici della tua istanza Secrets Manager.

Puoi archiviare i metadati che sono pertinenti alle esigenze della tua organizzazione con i parametri di richiesta custom_metadata e version_custom_metadata. I valori di version_custom_metadata vengono restituiti solo per le versioni di un segreto. I metadati personalizzati del tuo segreto sono memorizzati come tutti gli altri metadati, per un massimo di 50 versioni, e non devi includere dati riservati.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
        "name": "example-private-certificate",
        "description": "Description of my private certificate",
        "secret_type": "private_cert",
        "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
        "labels": [
            "dev",
            "us-south"
        ],
        "certificate_template": "test-certificate-template",
        "common_name": "localhost",
        "alt_names": [
            "alt-name-1",
            "alt-name-2"
        ],
        "ip_sans": "127.0.0.1",
        "uri_sans": "https://www.example.com/test",
        "ttl": "2190h",
        "rotation": {
            "auto_rotate": true,
            "interval": 1,
            "unit": "month"
        },
        "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
        },
        "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
        }
        }' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Hai bisogno di creare un certificato privato con opzioni avanzate? È possibile utilizzare parametri di richiesta facoltativi per specificare attributi avanzati per il certificato privato, come ad esempio i nomi alternativi del soggetto o un TTL (time - to - live). Se si omettono questi parametri facoltativi, vengono applicati gli attributi definiti per il modello di certificato selezionato. Per ulteriori informazioni, vedi la Guida di riferimento API.

Una richiesta riuscita restituisce il contenuto del certificato privato, insieme ad altri metadati determinati dal modello di certificato e che emettono l'autorità di certificazione.

{
  "alt_names": [
    "s1.example.com",
    "*.s2.example.com"
  ],
  "certificate_authority": "test-intermediate-CA",
  "certificate_template": "test-certificate-template",
  "common_name": "example.com",
  "created_at": "2022-10-02T14:08:07Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "crn": "crn:v1:bluemix:public:secrets-manager:us-south:a/a5ebf2570dcaedf18d7ed78e216c263a:f1bc94a6-64aa-4c55-b00f-f6cd70e4b2ce:secret:cb7a2502-8ede-47d6-b5b6-1b7af6b6f563",
  "custom_metadata": {
    "metadata_custom_key": "metadata_custom_value"
  },
  "description": "Extended description for this secret.",
  "downloaded": true,
  "expiration_date": "2023-03-02T15:08:37Z",
  "id": "cb7a2502-8ede-47d6-b5b6-1b7af6b6f563",
  "issuer": "example.com",
  "key_algorithm": "RSA2048",
  "labels": [
    "dev",
    "us-south"
  ],
  "locks_total": 0,
  "name": "example-private-certificate",
  "next_rotation_date": "2022-03-02T14:08:07Z",
  "rotation": {
    "auto_rotate": false,
    "interval": 1,
    "unit": "month"
  },
  "secret_data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----",
    "ca_chain": [
      "-----BEGIN CERTIFICATE-----\nMIIE3jCCBGSgAwIBAgIUZfTbf3adn87l5J2Q2Aw+6Vk/qhowCgYIKoZIzj0EAwIw\n-----END CERTIFICATE-----"
    ],
    "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3\n-----END RSA PRIVATE KEY-----"
  },
  "secret_group_id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
  "secret_type": "private_cert",
  "serial_number": "03:e2:c6:e4:0b:7d:30:e2:e2:78:1b:b9:13:fd:f0:fc:89:dd",
  "signing_algorithm": "SHA256-RSA",
  "state": 1,
  "state_description": "active",
  "updated_at": "2022-03-02T14:08:37Z",
  "validity": {
    "not_before": "2022-03-02T15:08:37Z",
    "not_after": "2023-03-01T00:00:00Z"
  },
  "versions_total": 1
}

Creazione di certificati privati con Terraform

Il seguente esempio mostra una configurazione che puoi usare per creare un certificato privato.

    resource "ibm_sm_private_certificate" "test_private_certificate" {  
        instance_id = local.instance_id
        region = local.region
        name = "test-private-certificate"
        common_name = "my.example.com"
        certificate_template = ibm_sm_private_certificate_configuration_template.test_ca_template.name
        ttl = "90d"
    }

Una volta emesso un certificato, puoi distribuirlo alle tue applicazioni integrate, scaricarlo o ruotarlo manualmente. Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, consulta la Guida di riferimento API.

Per automatizzare la creazione e la gestione dei certificati privati, utilizzare i moduli Terraform IBM (TIM) per Secrets Manager Private Certificate per l'infrastruttura come codice. Per una guida all'implementazione, consultare Terraform IBM Modules.