Ordinare i certificati pubblici SSL / TLS
È possibile utilizzare IBM Cloud® Secrets Manager per memorizzare, richiedere e generare certificati pubblici 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 ordinati tramite Secrets Manager da un'autorità di certificazione di terze parti sono certificati pubblici. I certificati che importi nel servizio sono certificati importati (imported_cert). I certificati che vengono creati utilizzando un'autorità di certificazione privata sono certificati privati (private_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 ordinare un certificato, assicurarsi di:
- Prepara la tua istanza per ordinare i certificati.
- Esaminare le configurazioni dell'autorità di certificazione e del provider DNS disponibili. Per visualizzare le configurazioni definite per la tua istanza, vai alla pagina Secrets engines> Certificati pubblici nell'IU Secrets Manager.
Per utilizzare un provider DNS che non sia attualmente integrato con il servizio, non devi aggiungere una configurazione per ordinare il certificato pubblico.
Ordinazione di certificati pubblici
Dopo aver configurato il motore dei certificati pubblici per la vostra istanza, potete usare Secrets Manager per richiedere i certificati pubblici SSL / TLS a Let's Encrypt. Prima di emettere un certificato, Secrets Manager utilizza la convalida del dominio per verificare la proprietà dei vostri domini. Quando si ordina un certificato:
-
Secrets Manager invia la richiesta all'autorità di certificazione selezionata. Lo stato del certificato cambia in Pre - attivazione per indicare che la richiesta è in fase di elaborazione.
-
Se la convalida viene completata correttamente, il tuo certificato viene emesso e il suo stato cambia in Attivo.
-
Se la convalida non viene completata correttamente, lo stato del certificato cambia in Disattivato. Dalla tua tabella Secrets, puoi verificare i dettagli di emissione del certificato facendo clic sull'icona Azioni
> Visualizza dettagli.
-
Se la convalida non viene completata correttamente, lo stato del certificato cambia in Disattivato. Dalla tua tabella Secrets, puoi verificare i dettagli di emissione del certificato facendo clic sull'icona Azioni
> Visualizza dettagli.
-
Se la convalida non viene completata correttamente, lo stato del certificato cambia in Disattivato. Puoi utilizzare l'API Get secret metadata per controllare il campo
resources.issuance_infoper i dettagli di emissione sul certificato. -
Una volta emesso il certificato, puoi distribuirlo alle tue applicazioni integrate, scaricarlo o modificarne le opzioni di rotazione.
Ordine di certificati pubblici con provider DNS integrati nell'IU
Puoi ordinare un certificato utilizzando l'IU Secrets Manager.
-
Nella console, fai clic su Menu icon
> Resource List.
-
Dall'elenco di servizi, seleziona la tua istanza di Secrets Manager.
-
Nella tabella Segreti, fare clic su Aggiungi.
-
Fai clic sul tile Order public certificate.
-
Aggiungere un nome e una descrizione per identificare facilmente il certificato.
-
Selezionare il gruppo di segreti che si desidera assegnare al segreto. Non hai un gruppo segreto? Nel campo Gruppo segreto, è possibile fare clic su Crea per fornire un nome e una descrizione per un nuovo gruppo. Il tuo segreto viene aggiunto automaticamente al nuovo gruppo. Per ulteriori informazioni sui gruppi di segreti, consulta Organizzazione dei tuoi segreti.
-
Facoltativo: aggiungi le etichette per aiutarti a cercare segreti simili nella tua istanza.
-
Facoltativo: aggiungi i metadati al tuo segreto o a una versione specifica del tuo segreto. Caricare un file o immettere i metadati e i metadati della versione in formato JSON.
-
Fai clic su Next.
-
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 pubblici.
-
Selezionare l'algoritmo di chiave da utilizzare per generare la chiave pubblica per il certificato.
L'algoritmo chiave selezionato determina l'algoritmo di codifica (RSA o ECDSA) e la dimensione chiave da utilizzare per generare le chiavi e firmare i certificati. Per i certificati di durata più lunga, si consiglia
di utilizzare lunghezze di chiave più lunghe per fornire una maggiore protezione della crittografia. Le opzioni includono RSA2048, RSA4096, ECDSA256 e ECDSA384.
-
Facoltativo: abilitare le opzioni avanzate per il certificato.
-
Per raggruppare il certificato emesso con certificati intermedi, passare all'opzione Attivo. Dopo che i tuoi certificati sono stati raggruppati, non possono più essere disaggregati. Se si sceglie di non raggruppare i certificati, questo non può essere modificato in seguito, ma solo creando un nuovo segreto.
-
Per abilitare la rotazione automatica per il certificato, attivare / disattivare la rotazione su On. Il certificato viene ruotato 31 giorni prima della scadenza.
-
Per richiedere una nuova chiave privata con il certificato a ogni rotazione, impostare la levetta di ri-chiave su On.
-
Selezionare una configurazione del provider DNS. La configurazione selezionata determina il provider DNS per convalidare la proprietà dei domini. Per visualizzare le configurazioni definite per la tua istanza, puoi andare a Secrets engines> Certificati pubblici.
-
Aggiungere i domini da includere nella richiesta.
-
Fare clic su Seleziona domini.
-
Dall'elenco di domini, selezionare il nome comune del certificato.
Il nome comune è un dato opzionale. Se il nome comune non è specificato esplicitamente, Let's encrypt assegna automaticamente il primo nome alt non più lungo di 64 caratteri come nome comune. Se non viene trovato un nome alt, il certificato verrà emesso senza nome comune.
Facoltativamente puoi anche aggiungere manualmente domini validi utilizzando il file Aggiungi domini manualmente campo.
-
Fai clic su Next.
-
Esaminare i dettagli del certificato.
-
Fai clic su Aggiungi.
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. Dopo aver inviato i dettagli del certificato, Secrets Manager invia la richiesta all'autorità di certificazione selezionata. Una volta emesso un certificato, puoi distribuirlo alle tue applicazioni integrate, scaricarlo o ruotarlo manualmente. La chiave privata per SSL / TLS viene generata direttamente in Secrets Manager e conservata in modo sicuro.
Hai bisogno di controllare lo stato del tuo ordine? Dalla tua tabella Secrets, puoi verificare i dettagli di emissione del certificato facendo clic sull'icona Azioni > Visualizza dettagli.
Ordine di certificati pubblici con provider DNS integrati dalla CLI
Prima di iniziare, seguire la documentazione della CLI per impostare l'endpoint API.
Per ordinare un certificato pubblico con un provider DNS integrato utilizzando il plug-in CLI Secrets Manager, esegui il comando ibmcloud secrets-manager secret-create command.For il seguente comando richiede un segreto di certificato pubblico dall'autorità di certificazione che hai 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-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"}'
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.
Ordine di certificati pubblici con provider DNS integrati utilizzando l'API
Puoi ordinarli in modo programmatico richiamando l'API Secrets Manager.
Il seguente esempio mostra una query che puoi utilizzare per ordinare un certificato. 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.
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.
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"
Quando si inviano i dettagli del certificato, Secrets Manager invia la richiesta all'autorità di certificazione selezionata. Una volta emesso un certificato, puoi distribuirlo alle tue applicazioni integrate, scaricarlo o ruotarlo manualmente. La chiave privata per SSL / TLS viene generata direttamente in Secrets Manager e conservata in modo sicuro. Per ulteriori informazioni sui parametri di richiesta obbligatori e facoltativi, vedi Crea un segreto.
Hai bisogno di controllare lo stato del tuo ordine? Utilizza l'API Get secret metadata per controllare il campo resources.issuance_info per i dettagli
di emissione sul certificato.
Ordinazione di certificati pubblici con provider DNS integrati utilizzando Terraform
Il seguente esempio mostra una configurazione che puoi utilizzare per ordinare un certificato pubblico.
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
}
}
Semplificate l'ordine dei certificati pubblici con Terraform IBM Modules (TIM) per Secrets Manager Public Certificate, che gestisce il ciclo di vita dei certificati attraverso il codice. Esplorate i moduli Terraform IBM per le migliori pratiche.
Ordinazione di certificati pubblici con il tuo provider DNS nell'IU
Per creare un certificato pubblico utilizzando un provider DNS manuale nella IU, completa la seguente procedura.
-
Nella console, fai clic su Menu icon
> Resource List.
-
Dall'elenco di servizi, seleziona la tua istanza di Secrets Manager.
-
Nella tabella Segreti, fare clic su Aggiungi.
-
Fai clic sul tile Order public certificate.
-
Aggiungere un nome e una descrizione per identificare facilmente il certificato.
-
Selezionare il gruppo di segreti che si desidera assegnare al segreto. Non hai un gruppo segreto? Nel campo Gruppo segreto, è possibile fare clic su Crea per fornire un nome e una descrizione per un nuovo gruppo. Il tuo segreto viene aggiunto automaticamente al nuovo gruppo. Per ulteriori informazioni sui gruppi di segreti, consulta Organizzazione dei tuoi segreti.
-
Facoltativo: aggiungi le etichette per aiutarti a cercare segreti simili nella tua istanza.
-
Facoltativo: aggiungi i metadati al tuo segreto o a una versione specifica del tuo segreto. Caricare un file o immettere i metadati e i metadati della versione in formato JSON.
-
Fai clic su Next.
-
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 pubblici.
-
Selezionare l'algoritmo di chiave da utilizzare per generare la chiave pubblica per il certificato. L'algoritmo chiave selezionato determina l'algoritmo di codifica (
RSAoECDSA) e la dimensione chiave da utilizzare per generare le chiavi e firmare i certificati. Per i certificati di durata più lunga, si consiglia di utilizzare lunghezze di chiave più lunghe per fornire una maggiore protezione della crittografia. Le opzioni includonoRSA2048,RSA4096,ECDSA256eECDSA384. -
Facoltativo: abilitare le opzioni avanzate per il certificato.
-
Per raggruppare il certificato emesso con certificati intermedi, passare all'opzione Attivo. Dopo che i tuoi certificati sono stati raggruppati, non possono più essere disaggregati. Se si sceglie di non raggruppare i certificati, questo non può essere modificato in seguito, ma solo creando un nuovo segreto.
-
Per richiedere una nuova chiave privata con il certificato a ogni rotazione, impostare la levetta di ri-chiave su On.
-
Selezionare Manuale come provider DNS.
-
Aggiungere i domini da includere nella richiesta.
È possibile includere fino a 100 domini, sottodomini o caratteri jolly. Il nome comune o il nome dominio completo del certificato non può superare i 64 caratteri. È possibile selezionare un carattere jolly come Nome comune.
- Nella sezione Nome comune, dall'elenco di domini, selezionare il nome comune del certificato.
- Fai clic su Next.
- Esaminare i dettagli del certificato.
- Fai clic su Aggiungi.
- Controlla i dettagli di emissione del tuo certificato facendo clic sull'icona Azioni
> Visualizza dettagli.
- Fai clic su Sfide per accedere al nome e al valore del record TXT associati a ogni tuo dominio. Hai bisogno di loro per completare le sfide.
- Per convalidare la proprietà dei tuoi domini, aggiungi manualmente i record TXT forniti per tutti i domini al tuo account provider DNS. È necessario affrontare solo le domande di verifica non convalidate prima della data di scadenza.
Se ordini un certificato per un dominio secondario, ad esempio, sub1.sub2.domain.com, devi aggiungere i record TXT al tuo dominio registrato domain.com.
- Verifica che i record TXT che hai aggiunto ai tuoi domini siano propagati. A seconda del tuo provider DNS, il completamento può richiedere del tempo.
- Dopo aver confermato che i record sono propagati, fare clic su Convalida per richiedere Let' s Encrypt per convalidare le domande di verifica per i domini e creare un certificato pubblico.
Se l'ordine non riesce perché i record TXT non sono stati propagati correttamente, è necessario avviare un nuovo ordine per procedere.
- Quando il tuo certificato viene emesso, ripulisci e rimuovi i record TXT dai domini nel tuo account provider DNS.
Ordine di certificati pubblici con il tuo provider DNS utilizzando l'API
Per creare un certificato pubblico utilizzando un provider DNS manuale, completare la seguente procedura.
-
Creare una configurazione CA (Certificate Authority) seguendo la procedura definita in Aggiunta di una configurazione CA.
-
Crea un nuovo certificato pubblico specificando
manualcome tua configurazione 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"Risposta di esempio:
"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 } ] -
Completa le domande di verifica contrassegnate come
pendingprima che scadano aggiungendo i record TXT specificati nella richiesta di verifica al tuo dominio nel tuo account del provider DNS per verificare la tua proprietà del dominio.Se ordini un certificato per i domini secondari, ad esempio
sub1.sub2.domain.com, devi aggiungere i record TXT al tuo dominio registratodomain.com. -
Convalida che i record TXT che hai aggiunto siano propagati. A seconda del tuo provider DNS, il completamento può richiedere del tempo.
-
Dopo aver propagato i record, richiama l'API Secrets Manager Crea un'azione segreta per richiedere Let' s Encrypt per convalidare le domande di verifica al tuo dominio e creare un certificato pubblico.
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"Se devi aggiornare il tuo certificato in un secondo momento, puoi utilizzare l'API Crea un'azione segreta ma con l'azione
rotate. Tuttavia, non è possibile ruotare automaticamente i certificati dei provider DNS manuali in Secrets Manager. -
Quando il tuo certificato viene emesso, ripulisci e rimuovi i record TXT dai domini nel tuo account provider DNS.
Vuoi automatizzare la creazione dei certificati pubblici? Se i domini sono configurati tramite un provider DNS, è possibile creare uno script per completare le sfide. Alcuni provider DNS offrono un'API che controlla se i nuovi record sono
completamente trasmessi. Se il tuo provider DNS non offre questa opzione, puoi configurare il tuo client in modo che attenda un determinato periodo di tempo, a volte fino a un'ora. In Secrets Manager, dopo aver chiamato validate-dns-challenges,
è possibile verificare lo stato di emissione del certificato ottenendo i metadati del certificato. Quando il campo IssuanceInfo.State restituito viene modificato in active, il certificato viene emesso.
Ordinazione di certificati pubblici con il tuo provider DNS utilizzando la CLI
Per ordinare un certificato pubblico con il tuo provider DNS utilizzando il plugin CLI Secrets Manager, esegui il comando ibmcloud secrets-manager secret-create.
Ad esempio, il seguente comando richiede un segreto di certificato pubblico dall'autorità di certificazione specificata.
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-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"}'
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.
Ordine di certificati pubblici con il provider DNS Akamai utilizzando Terraform
Per creare un certificato pubblico utilizzando Akamai come provider DNS, completa la seguente procedura.
-
Creare una configurazione CA (Certificate Authority) seguendo la procedura definita in Aggiunta di una configurazione CA.
-
Crea un nuovo certificato pubblico specificando
akamaicome tua configurazione DNS. -
Utilizzare uno dei seguenti metodi di autenticazione di Akamai. Puoi utilizzare un file
edgerco fornire direttamente le credenziali di autenticazione Akamai. Ulteriori informazioni sulle credenziali di autenticazione di Akamai.-
Fornire il percorso del file
.edgerce ilconfig_sectionpertinente.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 } } ``` -
Fornire le credenziali di autenticazione di 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 } } ```
-
I record TXT appena creati che si trovano nei domini rilevanti in Akamai non vengono eliminati automaticamente.
Ordinazione di certificati pubblici con il tuo provider DNS utilizzando Terraform
-
Creare una configurazione CA (Certificate Authority) seguendo la procedura definita in Aggiunta di una configurazione CA.
-
Crea un nuovo certificato pubblico specificando
manualcome tua configurazione 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 } }Risposta di esempio:
{ "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 } -
Completa le domande di verifica contrassegnate come
pendingprima che scadano aggiungendo i record TXT specificati nella richiesta di verifica al tuo dominio nel tuo account del provider DNS per verificare la tua proprietà del dominio.Se ordini un certificato per i domini secondari, ad esempio
sub1.sub2.domain.com, devi aggiungere i record TXT al tuo dominio registratodomain.com. -
Convalida che i record TXT che hai aggiunto siano propagati. A seconda del tuo provider DNS, il completamento può richiedere del tempo.
-
Dopo che i record sono stati propagati, richiedi Let' s Encrypt per convalidare le domande di verifica per il tuo dominio e creare un certificato pubblico.
È possibile farlo utilizzando la risorsa
ibm_sm_public_certificate_action_validate_manual_dnsdi Terraform, come mostrato nel seguente esempio di configurazione: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 }Puoi utilizzare Meta - argomento
depends_ondi Terraform per assicurare che la configurazione di Terraform venga creata nell'ordine logico corretto, come mostrato in queste istruzioni.
In alternativa, puoi richiamare l'API Secrets Manager Crea un'azione segreta per richiedere Let' s Encrypt per convalidare le sfide al tuo dominio e creare un certificato pubblico.
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" -
Dopo l'emissione del certificato (il suo stato è
active), è necessario eseguire nuovamente il comando Terraformterraform applyper aggiornare la risorsa Terraform del certificato pubblico e utilizzare il certificato appena emesso. -
Ripulisci e rimuovi i record TXT dai domini nel tuo account provider DNS.