Solicitud de certificados públicos SSL / TLS

Puede utilizar IBM Cloud® Secrets Manager para almacenar, solicitar y generar certificados públicos SSL / TLS que puede utilizar para sus aplicaciones o servicios.

Un certificado SSL/TLS es un tipo de certificado digital que se utiliza para establecer la privacidad de la comunicación entre un servidor y un cliente. Los certificados son emitidos por autoridades de certificación(CA)Organización o empresa de terceros de confianza que emite los certificados digitales. La entidad emisora de certificados normalmente verifica la identidad de las personas a las que se otorga el certificado exclusivo. y contienen información que se utiliza para crear conexiones fiables y seguras entre puntos finales. Después de añadir un certificado a la instancia de Secrets Manager, puede utilizarlo para proteger las comunicaciones de red para los despliegues en la nube o en las instalaciones. El certificado se almacena de forma segura en la instancia de servicio de Secrets Manager dedicada, donde puede gestionar de forma centralizada su ciclo de vida.

En Secrets Manager, los certificados que solicite a través de Secrets Manager a una autoridad de certificación externa son certificados públicos. Los certificados que importa al servicio son certificados importados (imported_cert). Los certificados que crea utilizando una entidad emisora de certificados privada son certificados privados (private_cert).

Antes de empezar

Antes de empezar, asegúrese de que tiene el nivel de acceso necesario. Para crear o añadir secretos, necesita el rol de servicio Escritor o superior.

Antes de solicitar un certificado, asegúrese de que:

  • Prepare la instancia para solicitar certificados.
  • Revise las configuraciones de autoridad de certificación y proveedor DNS disponibles. Para ver las configuraciones que se definen para su instancia, vaya a la página Motores de secretos > Certificados públicos en la interfaz de usuario de Secrets Manager.

Para trabajar con un proveedor de DNS que no está integrado actualmente con el servicio, no es necesario añadir una configuración para solicitar el certificado público.

Solicitud de certificados públicos

Después de configurar el motor de certificados públicos para su instancia, puede utilizar Secrets Manager para solicitar certificados públicos SSL / TLS a Let's Encrypt. Antes de que se pueda emitir un certificado, Secrets Manager utiliza la validación de dominio para verificar la propiedad de los dominios. Cuando solicite un certificado:

  • Secrets Manager envía la solicitud a la entidad emisora de certificados seleccionada. El estado del certificado cambia a Preactivación para indicar que se está procesando la solicitud.

  • Si la validación se completa correctamente, el certificado se emite y su estado cambia a Activo.

  • Si la validación no se completa correctamente, el estado de su certificado cambia a Desactivado. En la tabla Secretos, puede comprobar los detalles de emisión del certificado pulsando el icono Acciones Icono Acciones > Ver detalles.

  • Si la validación no se completa correctamente, el estado de su certificado cambia a Desactivado. En la tabla Secretos, puede comprobar los detalles de emisión del certificado pulsando el icono Acciones Icono Acciones > Ver detalles.

  • Si la validación no se completa correctamente, el estado de su certificado cambia a Desactivado. Puede utilizar la API Obtener metadatos de secretos para comprobar el campo resources.issuance_info para obtener detalles sobre su certificado.

  • Una vez emitido el certificado, puede desplegarlo en sus aplicaciones integradas, descargarlo o modificar sus opciones de rotación.

Solicitud de certificados públicos con proveedores DNS integrados en la interfaz de usuario

Puede solicitar un certificado utilizando la interfaz de usuario de Secrets Manager.

  1. En la consola, pulse el icono Menú Icono de menú > Lista de recursos.

  2. En la lista de servicios, seleccione la instancia de Secrets Manager.

  3. En la tabla Secretos, pulse Añadir.

  4. Haga clic en el mosaico Pedir certificado público.

  5. Añada un nombre y una descripción para identificar fácilmente el certificado.

  6. Seleccione el grupo de secretos que desea asignar al secreto. ¿No tiene ningún grupo de secretos? En el campo Grupo de secretos, puede pulsar Crear para proporcionar un nombre y una descripción para un grupo nuevo. Su secreto se añade automáticamente al nuevo grupo. Para obtener más información sobre grupos de secretos, consulte Organización de los secretos.

  7. Opcional: añada etiquetas para ayudarle a buscar secretos similares en la instancia.

  8. Opcional: añada metadatos a su secreto o a una versión específica de su secreto. Cargue un archivo o especifique los metadatos y los metadatos de versión en formato JSON.

  9. Pulse Siguiente.

  10. Seleccione una configuración de entidad emisora de certificados.

    La configuración que seleccione determina la entidad emisora de certificados que se utilizará para firmar y emitir el certificado. Para ver las configuraciones definidas para la instancia, puede ir a Motores secretos > Certificados públicos.

  11. Seleccione el algoritmo de claves que se utilizará para generar la clave pública para el certificado.

El algoritmo de clave que seleccione determina el algoritmo de cifrado (RSA o ECDSA) y el tamaño de clave que se debe utilizar para generar claves y firmar certificados. Para los certificados de vida más larga, se recomienda utilizar longitudes de clave más largas para proporcionar una mayor protección de cifrado. Las opciones incluyen RSA2048, RSA4096, ECDSA256 y ECDSA384.

  1. Opcional: habilite las opciones avanzadas para el certificado.

  2. Para empaquetar el certificado emitido con certificados intermedios, cambie el conmutador del paquete a On. Una vez empaquetados los certificados, ya no pueden desempaquetarse. Si decide no agrupar los certificados, esto no se puede cambiar después, sólo creando un nuevo secreto.

  3. Para habilitar la rotación automática del certificado, cambie el conmutador de rotación por On. El certificado se rotará 31 días antes de que caduque.

  4. Para solicitar una nueva clave privada con el certificado en cada rotación, active la casilla de cambio de clave.

  5. Seleccionar una configuración de proveedor de DNS La configuración que seleccione determina el proveedor de DNS para validar la propiedad de los dominios. Para ver las configuraciones definidas para la instancia, puede ir a Motores secretos > Certificados públicos.

  6. Añada los dominios a incluir en la solicitud.

  7. Pulse Seleccionar dominios.

  8. En la lista de dominios, seleccione el Nombre común del certificado.

    El nombre común es opcional. Si el nombre común no se especifica explícitamente, Let's encrypt asigna automáticamente como nombre común el primer nombre alt que no tenga más de 64 caracteres. Si no se encuentra dicho nombre alternativo, el certificado se emitirá sin nombre común.

    Opcionalmente, también puede agregar manualmente dominios válidos utilizando el Agregar dominios manualmente campo.

  9. Pulse Siguiente.

  10. Revise los detalles del certificado.

  11. Pulse Añadir.

Cuando solicita un certificado, se realiza la validación del dominio para verificar la propiedad de los dominios seleccionados. El proceso puede tardar algunos minutos en completarse. Después de enviar los detalles del certificado, Secrets Manager envía la solicitud a la entidad emisora de certificados seleccionada. Una vez emitido el certificado, puede desplegarlo en sus aplicaciones integradas, descargarlo o rotarlo manualmente. La clave privada para SSL/TLS se genera directamente en Secrets Manager y se almacena de forma segura.

¿Necesita comprobar el estado de su solicitud? En la tabla Secretos, puede comprobar los detalles de emisión del certificado pulsando el icono Acciones Icono Acciones > Ver detalles.

Solicitud de certificados públicos con proveedores DNS integrados desde la CLI

Antes de empezar, siga las instrucciones de la CLI para configurar el punto final de la API.

Para solicitar un certificado público con un proveedor de DNS integrado utilizando el plugin de CLI Secrets Manager, ejecute el mandato ibmcloud secrets-manager secret-create command.For el mandato siguiente solicita un secreto de certificado público de la entidad emisora de certificados que especifique.

Cuando solicita un certificado, se realiza la validación del dominio para verificar la propiedad de los dominios seleccionados. El proceso puede tardar algunos minutos en completarse.

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

El mandato genera el valor de ID del secreto, junto con otros metadatos. Para obtener más información sobre las opciones de mandato, consulte ibmcloud secrets-manager secret-create.

Solicitud de certificados públicos con proveedores DNS integrados utilizando la API

Puede solicitar certificados mediante programación llamando a la API de Secrets Manager.

El ejemplo siguiente muestra una consulta que puede utilizar para solicitar un certificado existente. Cuando llame a la API, sustituya las variables de ID y la señal de IAM por los valores que son específicos de la instancia de Secrets Manager.

Puede almacenar metadatos que sean relevantes para las necesidades de su organización con los parámetros de solicitud custom_metadata y version_custom_metadata. Los valores de version_custom_metadata sólo se devuelven para las versiones de un secreto. Los metadatos personalizados del secreto se almacenan como todos los demás metadatos, para un máximo de 50 versiones, y no debe incluir datos confidenciales.

Cuando solicita un certificado, se realiza la validación del dominio para verificar la propiedad de los dominios seleccionados. El proceso puede tardar algunos minutos en completarse.

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"

Al enviar los detalles del certificado, Secrets Manager envía la solicitud a la entidad emisora de certificados seleccionada. Una vez emitido el certificado, puede desplegarlo en sus aplicaciones integradas, descargarlo o rotarlo manualmente. La clave privada para SSL/TLS se genera directamente en Secrets Manager y se almacena de forma segura. Para obtener más información sobre los parámetros de solicitud obligatorios y opcionales, consulte Crear un secreto.

¿Necesita comprobar el estado de su solicitud? Utilice la API Obtener metadatos de secretos para consultar el campo resources.issuance_info y obtener detalles de emisión del certificado.

Solicitud de certificados públicos con proveedores DNS integrados utilizando Terraform

El siguiente ejemplo muestra una configuración que puede utilizar para solicitar un certificado público.

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

Simplifique el pedido de certificados públicos con Terraform IBM Modules (TIM) para Secrets Manager Public Certificate, que gestiona el ciclo de vida de los certificados mediante código. Explore Terraform IBM Modules para conocer las mejores prácticas.

Solicitud de certificados públicos con su propio proveedor de DNS en la interfaz de usuario

Para crear un certificado público utilizando un proveedor de DNS manual en la interfaz de usuario, realice los pasos siguientes.

  1. En la consola, pulse el icono Menú Icono de menú > Lista de recursos.

  2. En la lista de servicios, seleccione la instancia de Secrets Manager.

  3. En la tabla Secretos, pulse Añadir.

  4. Haga clic en el mosaico Pedir certificado público.

  5. Añada un nombre y una descripción para identificar fácilmente el certificado.

  6. Seleccione el grupo de secretos que desea asignar al secreto. ¿No tiene ningún grupo de secretos? En el campo Grupo de secretos, puede pulsar Crear para proporcionar un nombre y una descripción para un grupo nuevo. Su secreto se añade automáticamente al nuevo grupo. Para obtener más información sobre grupos de secretos, consulte Organización de los secretos.

  7. Opcional: añada etiquetas para ayudarle a buscar secretos similares en la instancia.

  8. Opcional: añada metadatos a su secreto o a una versión específica de su secreto. Cargue un archivo o especifique los metadatos y los metadatos de versión en formato JSON.

  9. Pulse Siguiente.

  10. Seleccione una configuración de entidad emisora de certificados. La configuración que seleccione determina la entidad emisora de certificados que se utilizará para firmar y emitir el certificado. Para ver las configuraciones definidas para la instancia, puede ir a Motores secretos > Certificados públicos.

  11. Seleccione el algoritmo de claves que se utilizará para generar la clave pública para el certificado. El algoritmo de clave que seleccione determina el algoritmo de cifrado (RSA o ECDSA) y el tamaño de clave que se debe utilizar para generar claves y firmar certificados. Para los certificados de vida más larga, se recomienda utilizar longitudes de clave más largas para proporcionar una mayor protección de cifrado. Las opciones incluyen RSA2048, RSA4096, ECDSA256 y ECDSA384.

  12. Opcional: habilite las opciones avanzadas para el certificado.

  13. Para empaquetar el certificado emitido con certificados intermedios, cambie el conmutador del paquete a On. Una vez empaquetados los certificados, ya no pueden desempaquetarse. Si decide no agrupar los certificados, esto no se puede cambiar después, sólo creando un nuevo secreto.

  14. Para solicitar una nueva clave privada con el certificado en cada rotación, active la casilla de cambio de clave.

  15. Seleccione Manual como proveedor de DNS.

  16. Añada los dominios a incluir en la solicitud.

Puede incluir hasta 100 dominios, subdominios o comodines. El nombre común, o el nombre de dominio completo del certificado, no puede superar los 64 caracteres de longitud. Se puede seleccionar un comodín como Nombre común.

  1. En la sección Nombre común, en la lista de dominios, seleccione el nombre común del certificado.
  2. Pulse Siguiente.
  3. Revise los detalles del certificado.
  4. Pulse Añadir.
  5. Compruebe los detalles de emisión del certificado pulsando el icono Acciones icono Acciones > Ver detalles.
  6. Pulse Retos para acceder al nombre y valor de registro TXT que están asociados con cada uno de los dominios. Los necesita para completar los retos.
  7. Para validar la propiedad de los dominios, añada manualmente los registros TXT que se proporcionan para cada uno de los dominios a la cuenta de proveedor de DNS. Debe abordar sólo las preguntas de contraseña que no se han validado antes de la fecha de caducidad.

Si solicita un certificado para un subdominio, por ejemplo, sub1.sub2.domain.com, debe añadir los registros TXT al dominio registrado domain.com.

  1. Verifique que los registros TXT que ha añadido a los dominios se han propagado. En función del proveedor de DNS, puede tardar algún tiempo en completarse.
  2. Después de confirmar que los registros se propagan, pulse Validar para solicitar Let's Encrypt para validar los retos de los dominios y crear un certificado público.

Si el pedido falla porque los registros TXT no se han propagado correctamente, debe iniciar un nuevo pedido para continuar.

  1. Cuando se emita el certificado, limpie y elimine los registros TXT de los dominios de la cuenta de proveedor de DNS.

Solicitud de certificados públicos con su propio proveedor de DNS utilizando la API

Para crear un certificado público utilizando un proveedor de DNS manual, realice los pasos siguientes.

  1. Cree una configuración de entidad emisora de certificados (CA) siguiendo los pasos definidos en Adición de una configuración de CA.

  2. Cree un nuevo certificado público especificando manual como configuración de 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"
    

    Respuesta de ejemplo:

    "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
       }
    ]
    
  3. Complete los desafíos marcados como pending antes de que caduquen añadiendo los registros TXT especificados en el desafío a su dominio en su cuenta de proveedor de DNS para verificar su propiedad del dominio.

    Si solicita un certificado para subdominios, por ejemplo, sub1.sub2.domain.com, debe añadir los registros TXT al dominio registrado domain.com.

  4. Valide que los registros TXT que ha añadido se propaguen. En función del proveedor de DNS, puede tardar algún tiempo en completarse.

  5. Después de propagar los registros, llame a la API Secrets Manager Crear una acción secreta para solicitar a Let's Encrypt que valide los retos del dominio y cree un certificado público.

     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 necesita actualizar el certificado más adelante, puede utilizar la API Crear una acción secreta pero con la acción rotate. Sin embargo, no se pueden rotar automáticamente los certificados manuales de proveedores DNS en Secrets Manager.

  6. Cuando se emita el certificado, limpie y elimine los registros TXT de los dominios de la cuenta de proveedor de DNS.

¿Desea automatizar la creación de sus certificados públicos? Si los dominios se configuran a través de un proveedor de DNS, puede crear un script para completar las preguntas de contraseña. Algunos proveedores de DNS ofrecen una API que comprueba si los nuevos registros se transmiten por completo. Si el proveedor de DNS no ofrece esta opción, puede configurar el cliente para que espere una cantidad de tiempo especificada, a veces hasta una hora. En Secrets Manager, después de llamar a validate-dns-challenges, puede comprobar el estado de la emisión del certificado obteniendo los metadatos del mismo. Cuando el campo IssuanceInfo.State que se devuelve cambia a active, se emite el certificado.

Solicitud de certificados públicos con su propio proveedor de DNS utilizando la CLI

Para solicitar un certificado público con su propio proveedor de DNS utilizando el plugin de CLI Secrets Manager, ejecute el mandato ibmcloud secrets-manager secret-create. Por ejemplo, el mandato siguiente solicita un secreto de certificado público de la entidad emisora de certificados que especifique.

Cuando solicita un certificado, se realiza la validación del dominio para verificar la propiedad de los dominios seleccionados. El proceso puede tardar algunos minutos en completarse.

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

El mandato genera el valor de ID del secreto, junto con otros metadatos. Para obtener más información sobre las opciones de mandato, consulte ibmcloud secrets-manager secret-create.

Solicitud de certificados públicos con el proveedor de DNS de Akamai utilizando Terraform

Para crear un certificado público utilizando Akamai como proveedor de DNS, realice los pasos siguientes.

  1. Cree una configuración de entidad emisora de certificados (CA) siguiendo los pasos definidos en Adición de una configuración de CA.

  2. Cree un nuevo certificado público especificando akamai como configuración de DNS.

  3. Utilice uno de los siguientes métodos de autenticación de Akamai. Puede utilizar un archivo edgerc o proporcionar directamente las credenciales de autenticación de Akamai. Más información sobre las credenciales de autenticación de Akamai.

    1. Proporcione la vía de acceso al archivo .edgerc y el config_section correspondiente.

      		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
      				}
      		}
      
             ```
      
      
    2. Proporcione sus credenciales de autenticación de 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
      				}
      		}
               ```
      
      
      
      

Los registros TXT recién creados que se encuentran en los dominios relevantes en Akamai no se eliminan automáticamente.

Solicitud de certificados públicos con su propio proveedor de DNS utilizando Terraform

  1. Cree una configuración de entidad emisora de certificados (CA) siguiendo los pasos definidos en Adición de una configuración de CA.

  2. Cree un nuevo certificado público especificando manual como configuración de 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
         }
     }
    
    

    Respuesta de ejemplo:

    {
       "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
    }
    
  3. Complete los desafíos marcados como pending antes de que caduquen añadiendo los registros TXT especificados en el desafío a su dominio en su cuenta de proveedor de DNS para verificar su propiedad del dominio.

    Si solicita un certificado para subdominios, por ejemplo, sub1.sub2.domain.com, debe añadir los registros TXT al dominio registrado domain.com.

  4. Valide que los registros TXT que ha añadido se propaguen. En función del proveedor de DNS, puede tardar algún tiempo en completarse.

  5. Después de propagar los registros, solicite Let's Encrypt para validar los retos del dominio y crear un certificado público.

    Puede hacerlo utilizando el recurso ibm_sm_public_certificate_action_validate_manual_dns como se muestra en el siguiente ejemplo de configuración:

     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
     }
    

    Puede utilizar meta-argumento depends_on de Terraform para asegurarse de que la configuración de Terraform se está creando en el orden lógico correcto, tal como se muestra en estas instrucciones.

    Como alternativa, puede llamar a la API Secrets Manager Crear una acción secreta para solicitar a Let's Encrypt que valide los retos del dominio y cree un certificado público.

     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"
    
  6. Después de que se emita su certificado (su estado es active), debe ejecutar el comando Terraform terraform apply de nuevo para actualizar el recurso Terraform de su certificado público y utilizar su certificado recién emitido.

  7. Limpie y elimine los registros TXT de los dominios de la cuenta de proveedor de DNS.