Création des certificats privés SSL / TLS

Vous pouvez utiliser IBM Cloud® Secrets Manager pour stocker, demander et générer des certificats privés SSL / TLS que vous pouvez utiliser pour vos applications ou services.

Un certificat SSL/TLS est un type de certificat numérique utilisé pour établir la confidentialité des communications entre un serveur et un client. Les certificats sont délivrés par des autorités de certification(CA)Entreprise ou organisation tierce reconnue qui émet des certificats numériques. L'autorité de certification vérifie généralement l'identité des individus qui reçoivent un certificat unique. et contiennent des informations utilisées pour créer des connexions fiables et sécurisées entre les points d'extrémité. Une fois que vous avez ajouté un certificat à votre instance Secrets Manager, vous pouvez l'utiliser pour sécuriser les communications réseau pour vos déploiements cloud ou local. Votre certificat est stocké en toute sécurité dans votre instance de service Secrets Manager dédiée, où vous pouvez gérer de manière centralisée son cycle de vie.

Dans Secrets Manager, les certificats que vous créez en utilisant une autorité de certification privée sont des certificats privés (private_cert). Les certificats que vous importez dans le service sont des certificats importés (imported_cert). Les certificats que vous commandez via Secrets Manager auprès d'une autorité de certification tierce sont des certificats publics (public_cert).

Avant de commencer

Avant de commencer, vérifiez que vous disposez du niveau d'accès requis. Pour créer ou ajouter des secrets, vous devez utiliser le rôle de service Auteur ou supérieur.

Avant de créer un certificat privé, veillez à:

  • Préparez votre instance pour créer des certificats.
  • Passez en revue les autorités de certification intermédiaires disponibles. Pour voir les configurations définies pour votre instance, allez à la page Moteurs de secrets > Certificats privés dans l'interface utilisateur Secrets Manager.
  • Passez en revue les modèles de certificat disponibles pour l'autorité de certification intermédiaire sélectionnée.

La sélection d'un modèle est nécessaire lors de la création d'un certificat privé. Selon le modèle que vous choisissez, certaines restrictions peuvent s'appliquer pour votre certificat privé. Pour afficher les modèles définis pour votre autorité de certification intermédiaire, accédez à la page Moteurs de secrets > Certificats privés dans l'interface utilisateur Secrets Manager. Développez la ligne de l'autorité de certification intermédiaire que vous souhaitez utiliser en tant qu'autorité émettrice du certificat privé, puis cliquez sur Modèles pour consulter les modèles disponibles.

Création de certificats privés

Après Configuration du moteur de certificats privés pour votre instance, vous pouvez utiliser Secrets Manager pour générer des certificats privés à l'aide d'une autorité de certification interne précédemment configurée pour votre instance de service Secrets Manager . Avant de pouvoir vous délivrer un certificat, Secrets Manager vérifie que votre demande de certificat correspond aux restrictions définies pour le Modèle de certificat que vous sélectionnez. Une fois qu'un certificat est émis, vous pouvez le déployer sur vos applications intégrées, le télécharger, le révoquer ou le configurer la rotation manuelle.

Création de certificats privés dans l'interface utilisateur

Vous pouvez créer un certificat privé à l'aide de l'interface utilisateur Secrets Manager .

  1. Dans la console, cliquez sur l'icône Menu Icône de menu > Liste de ressources.
  2. Dans la liste des services, sélectionnez votre instance de Secrets Manager.
  3. Dans le tableau Secrets, cliquez sur Ajouter.
  4. Cliquez sur la mosaïque Créer un certificat privé .
  5. Cliquez sur Suivant.
  6. Ajoutez un nom et une description pour facilement identifier votre certificat.
  7. Facultatif : ajoutez des étiquettes pour vous aider à rechercher des secrets similaires dans votre instance.
  8. Facultatif: ajoutez des métadonnées à votre secret ou à une version spécifique de votre secret.
    1. Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
  9. Cliquez sur Suivant.
  10. Sélectionnez une configuration d'autorité de certification.

La configuration que vous sélectionnez détermine l'autorité de certification qui sera utilisée pour signer et émettre le certificat. Pour afficher les configurations définies pour votre instance, vous pouvez accéder à Moteurs Secrets > Certificats privés.

  1. Sélectionnez un Modèle de certificat.

Le modèle que vous sélectionnez détermine les paramètres à appliquer à votre certificat généré. Pour afficher les détails des modèles de certificat définis pour votre autorité de certification sélectionnée, vous pouvez accéder à Moteurs Secrets > Certificats privés. Dans la liste des autorités de certification, développez la ligne de l'autorité de certification que vous souhaitez utiliser en tant qu'autorité d'émission pour votre certificat privé, puis cliquez sur Modèles. 12. Facultatif: Activez la rotation automatique pour le certificat.

Pour activer la rotation automatique, configurez la rotation sur Activer. Sélectionnez un intervalle et une unité indiquant le nombre de jours entre les rotations planifiées.

Selon le modèle de certificat que vous choisissez dans les étapes suivantes, certaines restrictions de l'intervalle de rotation de votre certificat privé peuvent s'appliquer. Par exemple, l'intervalle de rotation ne peut pas dépasser la durée de vie (TTL) définie dans le modèle. Pour plus d'informations, voir Modèles de certificat.

  1. Obligatoire : Indiquez un nom commun pour votre certificat.

Selon le modèle de certificat choisi, certaines restrictions du nom usuel peuvent s'appliquer. Pour afficher les détails de votre modèle de certificat sélectionné, vous pouvez accéder à Moteurs Secrets > Certificats privés. Dans la liste des autorités de certification, développez la ligne de l'autorité de certification que vous souhaitez utiliser en tant qu'autorité d'émission pour votre certificat privé, puis cliquez sur Modèles. 14. Sélectionnez le groupe secretEnvironnement et contraintes auxquels les secrets contenus doivent adhérer. Un utilisateur peut être associé à un groupe de secrets pour activer l'accès et la collaboration. que vous souhaitez attribuer au certificat.

Si votre modèle de certificat sélectionné permet d'ajouter des certificats à des groupes secrets spécifiques, seuls les groupes autorisés sont répertoriés. Si le modèle n'a pas de restrictions, vous pouvez créer un groupe secret si vous n'en avez pas déjà. Votre certificat est ajouté automatiquement au nouveau groupe. Pour plus d'informations sur les groupes de secrets, consultez la rubrique Organisation de vos secrets. 15. Facultatif: Indiquez d'autres noms pour votre certificat.

Les noms alternatifs peuvent être des noms d'hôte ou des adresses électroniques. 16. Cliquez sur Suivant. 17. Passez en revue les détails de votre certificat. 18. Cliquez sur Ajouter.

Création de certificats privés à partir de l'interface de ligne de commande

Avant de commencer, suivez la documentation de l'interface de programmation pour définir votre point de terminaison API.

Pour créer un certificat privé à l'aide du plug-in Secrets Manager CLI, exécutez la commande ibmcloud secrets-manager secret-create commande. Par exemple, la commande suivante crée un secret de certificat privé à partir du modèle de certificat que vous spécifiez.

Lorsque vous commandez un certificat, la validation de domaine permet de vérifier la propriété des domaines sélectionnés. Cette opération peut prendre quelques minutes.

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

La commande génère en sortie la valeur d'ID du secret ainsi que d'autres métadonnées. Pour plus d'informations sur les options de commande, voir ibmcloud secrets-manager secret-create.

Création de certificats privés avec l'API

Vous pouvez générer des certificats privés à l'aide d'un programme en appelant l'API Secrets Manager .

L'exemple suivant présente une requête que vous pouvez utiliser pour créer un certificat privé. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager.

Vous pouvez stocker des métadonnées adaptées aux besoins de votre organisation à l'aide des paramètres de demande custom_metadata et version_custom_metadata. Les valeurs de version_custom_metadata sont renvoyées uniquement pour les versions d'un secret. Les métadonnées personnalisées de votre secret sont stockées comme toutes les autres métadonnées, pour un maximum de 50 versions, et vous ne devez pas inclure de données confidentielles.

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"

Vous avez besoin de créer un certificat privé avec des options avancées? Vous pouvez utiliser des paramètres de demande facultatifs pour spécifier des attributs avancés pour votre certificat privé, tels que les Noms alternatifs de sujet ou une durée de vie (TTL). Si vous omettez ces paramètres facultatifs, les attributs définis pour le modèle de certificat sélectionné sont appliqués. Pour plus d'informations, voir la documentation de référence de l'API.

Une demande réussie renvoie le contenu de votre certificat privé, ainsi que d'autres métadonnées qui sont déterminées par le modèle de certificat et l'autorité de certification émettrice.

{
  "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
}

Création de certificats privés avec Terraform

L'exemple suivant montre une configuration que vous pouvez utiliser pour créer un certificat privé.

    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"
    }

Une fois le certificat émis, vous pouvez le déployer dans vos applications intégrées, le télécharger ou lui appliquer une rotation manuelle. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, voir la Référence des API.

Pour automatiser la création et la gestion des certificats privés, utilisez les modules Terraform IBM (TIM) pour Secrets Manager Private Certificate pour l'infrastructure en tant que code. Voir Terraform IBM Modules pour des conseils de mise en œuvre.