Commande de certificats publics SSL / TLS
Vous pouvez utiliser IBM Cloud® Secrets Manager pour stocker, demander et générer des certificats publics 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 commandez via Secrets Manager auprès d'une autorité de certification tierce sont des certificats publics. Les certificats que vous importez dans le service sont des certificats importés (imported_cert). Les certificats que vous créez à l'aide d'une autorité de certification privée sont des certificats privés (private_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 commander un certificat, veillez à:
- Préparez votre instance pour commander des certificats.
- Examinez les configurations de l'autorité de certification et du fournisseur DNS disponibles. Pour consulter les configurations définies pour votre instance, accédez à la page Moteurs de secrets > Certificats publics dans l'interface utilisateur Secrets Manager.
Pour utiliser un fournisseur DNS qui n'est pas actuellement intégré au service, vous n'avez pas besoin d'ajouter une configuration pour commander votre certificat public.
Commande de certificats publics
Après avoir configuré le moteur de certificats publics pour votre instance, vous pouvez utiliser Secrets Manager pour demander des certificats publics SSL / TLS à Let's Encrypt. Avant de pouvoir vous délivrer un certificat, Secrets Manager utilise la validation de domaine pour vérifier la propriété de vos domaines. Lorsque vous commandez un certificat :
-
Secrets Manager envoie votre demande à l'autorité de certification sélectionnée. Le statut du certificat passe à Pré-activation pour indiquer que votre demande est en cours de traitement.
-
Si la validation aboutit, votre certificat est émis et son statut passe à Actif.
-
Si la validation n'aboutit pas, le statut de votre certificat passe à Désactivé. Dans le tableau des secrets, vous pouvez vérifier les détails d’émission de votre certificat en cliquant sur l'icôneActions
> Afficher les détails.
-
Si la validation n'aboutit pas, le statut de votre certificat passe à Désactivé. Dans le tableau des secrets, vous pouvez vérifier les détails d’émission de votre certificat en cliquant sur l'icôneActions
> Afficher les détails.
-
Si la validation n'aboutit pas, le statut de votre certificat passe à Désactivé. Vous pouvez utiliser l'API Obtenir les métadonnées d'un secret pour vérifier les détails concernant l'émission de votre certificat dans la zone
resources.issuance_info. -
Une fois le certificat émis, vous pouvez le déployer dans vos applications intégrées, le télécharger ou modifier ses options de rotation.
Commande de certificats publics avec des fournisseurs DNS intégrés dans l'interface utilisateur
Vous pouvez commander un certificat à l'aide de l'interface utilisateur Secrets Manager.
-
Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans le tableau Secrets, cliquez sur Ajouter.
-
Cliquez sur la tuile Commander un certificat public.
-
Ajoutez un nom et une description pour facilement identifier votre certificat.
-
Sélectionnez le groupe de secrets que vous souhaitez affecter au secret. Vous n'avez pas de groupe de secrets ? Dans la zone Groupe de secrets, vous pouvez cliquer sur Créer pour fournir un nom et une description pour un nouveau groupe. Votre secret est automatiquement ajouté au nouveau groupe. Pour plus d'informations sur les groupes de secrets, consultez Organisation de vos secrets.
-
Facultatif : ajoutez des étiquettes pour vous aider à rechercher des secrets similaires dans votre instance.
-
Facultatif: ajoutez des métadonnées à votre secret ou à une version spécifique de votre secret. Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
-
Cliquez sur Suivant.
-
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 de secrets > Certificats publics.
-
Sélectionnez l'algorithme de clé à utiliser pour générer la clé publique associée à votre certificat.
L'algorithme de clé que vous sélectionnez détermine l'algorithme de chiffrement (RSA ou ECDSA) et la taille de clé à utiliser pour générer des clés et signer des certificats. Pour les certificats à durée de vie plus
longue, il est recommandé d'utiliser des longueurs de clé plus importantes afin d'assurer une meilleure protection du cryptage. Les options incluent RSA2048, RSA4096, ECDSA256 et ECDSA384.
-
Facultatif : activez les options avancées du certificat.
-
Pour regrouper votre certificat émis avec des certificats intermédiaires, basculez le bouton de regroupement sur En fonction. Cette opération ne peut pas être annulée. Si vous choisissez de ne pas regrouper les certificats, vous ne pourrez pas modifier cette information par la suite, mais seulement en créant un nouveau secret.
-
Pour activer la rotation automatique du certificat, basculez le bouton de rotation sur En fonction. La rotation est appliquée 31 jours avant l'expiration du certificat.
-
Pour demander une nouvelle clé privée avec le certificat à chaque rotation, mettez l'option re-key sur On.
-
Sélectionnez une configuration de fournisseur DNS. La configuration que vous sélectionnez détermine le fournisseur DNS qui sera utilisé pour valider la propriété de vos domaines. Pour afficher les configurations définies pour votre instance, vous pouvez accéder à Moteurs de secrets > Certificats publics.
-
Ajoutez les domaines à inclure dans la demande.
-
Cliquez sur Sélectionner des domaines.
-
Dans la liste des domaines, sélectionnez le nom usuel du certificat.
Le nom commun est une donnée facultative. Si le nom commun n'est pas explicitement spécifié, Let's encrypt attribue automatiquement le premier nom alt ne dépassant pas 64 caractères comme nom commun. Si aucun nom alternatif de ce type n'est trouvé, le certificat sera délivré sans nom commun.
Vous pouvez éventuellement ajouter manuellement des domaines valides à l'aide du Ajouter des domaines manuellement champ.
-
Cliquez sur Suivant.
-
Passez en revue les détails de votre certificat.
-
Cliquez sur Ajouter.
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. Une fois que vous avez soumis vos informations de certificat, Secrets Manager envoie votre demande à l'autorité de certification sélectionnée. 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. Votre clé privée pour SSL/TLS est générée directement dans Secrets Manager et stockée de manière sécurisée.
Vous souhaitez vérifier le statut de votre commande ? Dans le tableau des secrets, vous pouvez vérifier les détails d’émission de votre certificat en cliquant sur l'icôneActions > Afficher les détails.
Commande de certificats publics avec des fournisseurs DNS intégré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 commander un certificat public avec un fournisseur DNS intégré à l'aide du plug-in d'interface de ligne de commande Secrets Manager, exécutez la commande ibmcloud secrets-manager secret-create command.For, la commande suivante demande un secret de certificat public à l'autorité de certification 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-public-certificate \
--secret-description "Extended description for this secret." \
--secret-type public_cert \
--secret-group-id bc656587-8fda-4d05-9ad8-b1de1ec7e712 \
--secret-labels dev,us-south \
--public-cert-dns dns_provider \
--certificate-common-name cert_common_name \
--certificate-alt-names alt_name1,alt_name2 \
--public-cert-ca lets-encrypt-config \
--public-cert-key-algorithm RSA2048 \
--secret-rotation '{"auto_rotate": true, "rotate_keys": false}' \
--secret-custom-metadata '{"anyKey": "anyValue"}' \
--secret-version-custom-metadata '{"anyKey": "anyValue"}'
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.
Commande de certificats publics avec des fournisseurs DNS intégrés à l'aide de l'API
Vous pouvez commander des certificats à l'aide d'un programme en appelant l'API Secrets Manager.
L'exemple suivant présente une requête que vous pouvez utiliser afin de commander un certificat. 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.
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.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "example-public-certificate",
"description": "Description of my public certificate",
"secret_type": "public_cert",
"secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
"labels": [
"dev",
"us-south"
],
"common_name": "example.com",
"alt_names": [
"s1.example.com",
"*.s2.example.com"
],
"ca": "lets-encrypt-config",
"dns": "cloud-internet-services-config",
"rotation": {
"auto_rotate": true,
"rotate_keys": true
},
"bundle_certs": true,
"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"
Lorsque vous soumettez vos informations de certificat, Secrets Manager envoie votre demande à l'autorité de certification sélectionnée. 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. Votre clé privée pour SSL/TLS est générée directement dans Secrets Manager et stockée de manière sécurisée. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, voir Créer un secret.
Vous souhaitez vérifier le statut de votre commande ? Utilisez l'API Obtenir les métadonnées du secret pour vérifier la zone resources.issuance_info pour les détails d'émission de votre certificat.
Commande de certificats publics avec des fournisseurs DNS intégrés à l'aide de Terraform
L'exemple suivant montre une configuration que vous pouvez utiliser pour commander un certificat public.
resource "ibm_sm_public_certificate" "sm_public_certificate" {
instance_id = local.instance_id
region = local.region
name = "test-public-certificate"
secret_group_id = "default"
ca = ibm_sm_public_certificate_configuration_ca_lets_encrypt.my_lets_encrypt_config.name
dns = ibm_sm_public_certificate_configuration_dns_cis.my_cis_dns_config.name
rotation {
auto_rotate = true
rotate_keys = false
}
}
Simplifiez la commande de certificats publics avec les modules Terraform IBM (TIM) pour Secrets Manager Public Certificate, qui gèrent la gestion du cycle de vie des certificats par le biais du code. Explorez les modules Terraform IBM pour connaître les meilleures pratiques.
Commande de certificats publics avec votre propre fournisseur DNS dans l'interface utilisateur
Pour créer un certificat public à l'aide d'un fournisseur DNS manuel dans l'interface utilisateur, procédez comme suit.
-
Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans le tableau Secrets, cliquez sur Ajouter.
-
Cliquez sur la tuile Commander un certificat public.
-
Ajoutez un nom et une description pour facilement identifier votre certificat.
-
Sélectionnez le groupe de secrets que vous souhaitez affecter au secret. Vous n'avez pas de groupe de secrets ? Dans la zone Groupe de secrets, vous pouvez cliquer sur Créer pour fournir un nom et une description pour un nouveau groupe. Votre secret est automatiquement ajouté au nouveau groupe. Pour plus d'informations sur les groupes de secrets, consultez Organisation de vos secrets.
-
Facultatif : ajoutez des étiquettes pour vous aider à rechercher des secrets similaires dans votre instance.
-
Facultatif: ajoutez des métadonnées à votre secret ou à une version spécifique de votre secret. Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
-
Cliquez sur Suivant.
-
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 de secrets > Certificats publics.
-
Sélectionnez l'algorithme de clé à utiliser pour générer la clé publique associée à votre certificat. L'algorithme de clé que vous sélectionnez détermine l'algorithme de chiffrement (
RSAouECDSA) et la taille de clé à utiliser pour générer des clés et signer des certificats. Pour les certificats à durée de vie plus longue, il est recommandé d'utiliser des longueurs de clé plus importantes afin d'assurer une meilleure protection du cryptage. Les options incluentRSA2048,RSA4096,ECDSA256etECDSA384. -
Facultatif : activez les options avancées du certificat.
-
Pour regrouper votre certificat émis avec des certificats intermédiaires, basculez le bouton de regroupement sur En fonction. Cette opération ne peut pas être annulée. Si vous choisissez de ne pas regrouper les certificats, vous ne pourrez pas modifier cette information par la suite, mais seulement en créant un nouveau secret.
-
Pour demander une nouvelle clé privée avec le certificat à chaque rotation, mettez l'option re-key sur On.
-
Sélectionnez Manuel comme fournisseur DNS.
-
Ajoutez les domaines à inclure dans la demande.
Vous pouvez inclure jusqu'à 100 domaines, sous-domaines ou caractères génériques. Le nom usuel ou le nom de domaine complet du certificat ne peut pas dépasser 64 caractères. Vous pouvez sélectionner un caractère générique comme nom usuel.
- Dans la section Nom usuel, dans votre liste de domaines, sélectionnez le nom usuel du certificat.
- Cliquez sur Suivant.
- Passez en revue les détails de votre certificat.
- Cliquez sur Ajouter.
- Vérifiez les détails d'émission de votre certificat en cliquant sur l'icône Actions
> Afficher les détails.
- Cliquez sur Défis pour accéder au nom et à la valeur de l'enregistrement TXT qui sont associés à chacun de vos domaines. Vous en avez besoin pour relever les défis.
- Pour valider la propriété de vos domaines, ajoutez manuellement les enregistrements TXT fournis pour chacun de vos domaines à votre compte de fournisseur DNS. Vous devez traiter uniquement les demandes d'authentification qui ne sont pas validées avant la date d'expiration.
Si vous commandez un certificat pour un sous-domaine, par exemple sub1.sub2.domain.com, vous devez ajouter les enregistrements TXT à votre domaine enregistré domain.com.
- Vérifiez que les enregistrements TXT que vous avez ajoutés à vos domaines sont propagés. En fonction de votre fournisseur DNS, cette opération peut prendre un certain temps.
- Une fois que vous avez confirmé que les enregistrements sont propagés, cliquez sur Valider pour demander Let's Encrypt afin de valider les demandes d'authentification de vos domaines et de créer un certificat public.
Si la commande échoue car les enregistrements TXT n'ont pas été propagés correctement, vous devez démarrer une nouvelle commande pour continuer.
- Lorsque votre certificat est émis, nettoyez et supprimez les enregistrements TXT des domaines de votre compte de fournisseur DNS.
Commande de certificats publics avec votre propre fournisseur DNS à l'aide de l'API
Pour créer un certificat public à l'aide d'un fournisseur DNS manuel, procédez comme suit.
-
Créez une configuration d'autorité de certification en suivant les étapes définies dans Ajout d'une configuration d'autorité de certification.
-
Créez un nouveau certificat public en spécifiant
manualcomme configuration DNS.curl -X POST -H "Authorization: Bearer {iam_token}" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -d '{ "name": "example-public-certificate", "description": "description of my public certificate", "secret_type": "public_cert", "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa", "labels": [ "dev", "us-south" ], "common_name": "example.com", "alt_names": [ "s1.example.com", "*.s2.example.com" ], "ca": "lets-encrypt-config", "dns": "manual", "rotation": { "auto_rotate": true, "rotate_keys": true }, "bundle_certs": true, "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"Exemple de réponse :
"metadata": { "collection_type": "application/vnd.ibm.secrets-manager.secret+json", "collection_total": 1 }, "resources": [ { "alt_names": [ "domain2", "domain3" ], "common_name": "domain1", "created_by": "User", "creation_date": "2022-09-13T06:21:33Z", "crn": "secret crn", "description": "Description for ordered certificate.", "downloaded": false, "id": "38747ae6-8c69-d745-5276-cdf3157b9021", "issuance_info": { "auto_rotated": false, "bundle_certs": false, "ca": "ca_config_name", "challenges": [ { "domain": "domain1", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain1.", "txt_record_value": "TA6J7fFYrwP3Jg-S_IAQSj2Ydqfw4Ycm4sMwlzuCcxk" }, { "domain": "domain2", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain2.", "txt_record_value": "qSDrCkFAViX4xANKuEPcMNairWm1PUtROm6kp9bmSS0" }, { "domain": "domain3", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain3.", "txt_record_value": "8dcgan91fW6aK3aIhPAVZRkHpbYEoMcCNPpVh1n4tSA" } ], "dns": "manual", "ordered_on": "2022-09-13T06:21:33Z", "state": 0, "state_description": "Pre-activation" }, "key_algorithm": "RSA2048", "labels": [], "last_update_date": "2022-09-13T06:21:33Z", "locks_total": 0, "name": "my-public-certificate", "rotation": { "auto_rotate": false, "rotate_keys": false }, "secret_type": "public_cert", "state": 0, "state_description": "Pre-activation", "versions": [], "versions_total": 1 } ] -
Terminez les demandes d'authentification qui sont marquées comme
pendingavant qu'elles n'expirent en ajoutant les enregistrements TXT spécifiés dans la demande d'authentification à votre domaine dans votre compte de fournisseur DNS afin de vérifier votre propriété du domaine.Si vous commandez un certificat pour des sous-domaines, par exemple
sub1.sub2.domain.com, vous devez ajouter les enregistrements TXT à votre domaine enregistrédomain.com. -
Vérifiez que les enregistrements TXT que vous avez ajoutés sont propagés. En fonction de votre fournisseur DNS, cette opération peut prendre un certain temps.
-
Une fois les enregistrements propagés, appelez l'API Secrets Manager Créer une action secrète pour demander Let's Encrypt afin de valider les demandes d'authentification auprès de votre domaine et créer un certificat public.
curl -X POST --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" --data '{ "action_type": "public_cert_action_validate_dns_challenge" }'\ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/actions"Si vous devez mettre à jour votre certificat ultérieurement, vous pouvez utiliser l'API Create a secret action mais avec l'action
rotate. Cependant, il n'est pas possible d'effectuer une rotation automatique des certificats manuels des fournisseurs DNS dans Secrets Manager. -
Lorsque votre certificat est émis, nettoyez et supprimez les enregistrements TXT des domaines de votre compte de fournisseur DNS.
Vous souhaitez automatiser la création de vos certificats publics? Si vos domaines sont configurés via un fournisseur DNS, vous pouvez créer un script pour répondre aux demandes d'authentification. Certains fournisseurs DNS offrent une API
qui vérifie si les nouveaux enregistrements sont intégralement transmis. Si votre fournisseur DNS n'offre pas cette option, vous pouvez configurer votre client pour qu'il attende un certain temps, parfois jusqu'à une heure. Dans Secrets
Manager, après avoir appelé validate-dns-challenges, vous pouvez vérifier l'état de la délivrance du certificat en obtenant les métadonnées de votre certificat. Lorsque la zone IssuanceInfo.State renvoyée est modifiée
en active, le certificat est émis.
Commande de certificats publics avec votre propre fournisseur DNS à l'aide de l'interface de ligne de commande
Pour commander un certificat public avec votre propre fournisseur DNS à l'aide du plug-in d'interface de ligne de commande Secrets Manager, exécutez la commande ibmcloud secrets-manager secret-create.
Par exemple, la commande suivante demande un secret de certificat public à l'autorité de certification 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-public-certificate \
--secret-description "Extended description for this secret." \
--secret-type public_cert \
--secret-group-id bc656587-8fda-4d05-9ad8-b1de1ec7e712 \
--secret-labels dev,us-south \
--public-cert-dns manual \
--certificate-common-name cert_common_name \
--certificate-alt-names alt_name1,alt_name2 \
--public-cert-ca lets-encrypt-config \
--public-cert-key-algorithm RSA2048 \
--secret-rotation '{"enabled": false, "rotate_keys": false}' \
--secret-custom-metadata '{"anyKey": "anyValue"}' \
--secret-version-custom-metadata '{"anyKey": "anyValue"}'
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.
Commande de certificats publics avec le fournisseur DNS Akamai à l'aide de Terraform
Pour créer un certificat public en utilisant Akamai comme fournisseur DNS, procédez comme suit.
-
Créez une configuration d'autorité de certification en suivant les étapes définies dans Ajout d'une configuration d'autorité de certification.
-
Créez un nouveau certificat public en spécifiant
akamaicomme configuration DNS. -
Utilisez l'une des méthodes d'authentification d'Akamai suivantes. Vous pouvez utiliser un fichier
edgercou fournir directement vos données d'authentification Akamai. En savoir plus sur les données d'authentification d'Akamai.-
Indiquez le chemin d'accès à votre fichier
.edgercet au fichierconfig_sectionapproprié.resource "ibm_sm_public_certificate" "sm_public_certificate" { instance_id = local.instance_id region = local.region name = "test-public-certificate" secret_group_id = "default" ca = ibm_sm_public_certificate_configuration_ca_lets_encrypt.my_lets_encrypt_config.name dns = “akamai” akamai { edgerc { path_to_edgerc = “/path/to/your/edgerc/file” config_section = “default” } } rotation { auto_rotate = true rotate_keys = false } } ``` -
Fournissez vos identifiants d'authentification Akamai.
resource "ibm_sm_public_certificate" "sm_public_certificate" { instance_id = local.instance_id region = local.region name = "test-public-certificate" secret_group_id = "default" ca = ibm_sm_public_certificate_configuration_ca_lets_encrypt.my_lets_encrypt_config.name dns = “akamai” akamai { config { client_secret = “your_client_secret” host = “your_host” access_token = "your_access_token" client_token = "your_client_token" } } rotation { auto_rotate = true rotate_keys = false } } ```
-
Les enregistrements TXT nouvellement créés qui se trouvent dans les domaines concernés dans Akamai ne sont pas automatiquement supprimés.
Commande de certificats publics avec votre propre fournisseur DNS à l'aide de Terraform
-
Créez une configuration d'autorité de certification en suivant les étapes définies dans Ajout d'une configuration d'autorité de certification.
-
Créez un nouveau certificat public en spécifiant
manualcomme configuration DNS.resource "ibm_sm_public_certificate" "sm_public_certificate" { instance_id = local.instance_id region = local.region name = "test-public-certificate" secret_group_id = "default" ca = ibm_sm_public_certificate_configuration_ca_lets_encrypt.my_lets_encrypt_config.name dns = “manual” rotation { auto_rotate = true rotate_keys = false } }Exemple de réponse :
{ "alt_names": [ "domain2", "domain3" ], "bundle_certs": false, "ca": "ca_config_name", "common_name": "domain1", "created_by": "User", "creation_date": "2022-09-13T06:21:33Z", "crn": "secret crn", "description": "Description for ordered certificate.", "downloaded": false, "id": "38747ae6-8c69-d745-5276-cdf3157b9021", "issuance_info": { "auto_rotated": false, "challenges": [ { "domain": "domain1", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain1.", "txt_record_value": "TA6J7fFYrwP3Jg-S_IAQSj2Ydqfw4Ycm4sMwlzuCcxk" }, { "domain": "domain2", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain2.", "txt_record_value": "qSDrCkFAViX4xANKuEPcMNairWm1PUtROm6kp9bmSS0" }, { "domain": "domain3", "expiration": "2022-09-20T06:21:36Z", "status": "pending", "txt_record_name": "_acme-challenge.domain3.", "txt_record_value": "8dcgan91fW6aK3aIhPAVZRkHpbYEoMcCNPpVh1n4tSA" } ], "dns": "manual", "ordered_on": "2022-09-13T06:21:33Z", "state": 0, "state_description": "Pre-activation" }, "key_algorithm": "RSA2048", "labels": [], "last_update_date": "2022-09-13T06:21:33Z", "locks_total": 0, "name": "my-public-certificate", "rotation": { "auto_rotate": false, "rotate_keys": false }, "secret_type": "public_cert", "state": 0, "state_description": "Pre-activation", "versions": [], "versions_total": 1 } -
Terminez les demandes d'authentification qui sont marquées comme
pendingavant qu'elles n'expirent en ajoutant les enregistrements TXT spécifiés dans la demande d'authentification à votre domaine dans votre compte de fournisseur DNS afin de vérifier votre propriété du domaine.Si vous commandez un certificat pour des sous-domaines, par exemple
sub1.sub2.domain.com, vous devez ajouter les enregistrements TXT à votre domaine enregistrédomain.com. -
Vérifiez que les enregistrements TXT que vous avez ajoutés sont propagés. En fonction de votre fournisseur DNS, cette opération peut prendre un certain temps.
-
Une fois les enregistrements propagés, demandez à Let's Encrypt de valider les demandes d'authentification de votre domaine et de créer un certificat public.
Vous pouvez le faire en utilisant la ressource
ibm_sm_public_certificate_action_validate_manual_dnscomme le montre l'exemple de configuration suivant :resource "ibm_sm_public_certificate_action_validate_manual_dns" "sm_public_certificate_action_validate_manual_dns_instance" { instance_id = local.instance_id region = local.region secret_id = ibm_sm_public_certificate.sm_public_certificate.secret_id }Vous pouvez utiliser Méta-argument
depends_onde Terraform pour vous assurer que la configuration de Terraform est créée dans le bon ordre logique, comme indiqué dans ces instructions.
Vous pouvez également appeler l'API Secrets Manager Créer une action secrète pour demander Let's Encrypt afin de valider les demandes d'authentification de votre domaine et créer un certificat public.
curl -X POST --header "Authorization: Bearer {iam_token}" --header "Accept: application/json" --header "Content-Type: application/json" --data '{ "action_type": "public_cert_action_validate_dns_challenge" }'\ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/actions" -
Une fois votre certificat émis (son état est
active), vous devez exécuter à nouveau la commande Terraformterraform applypour mettre à jour la ressource Terraform de votre certificat public et utiliser votre nouveau certificat. -
Nettoyez et supprimez les enregistrements TXT des domaines de votre compte de fournisseur DNS.