Criação de certificados privados SSL / TLS
Você pode usar IBM Cloud® Secrets Manager para armazenar, solicitar e gerar certificados privados SSL / TLS que podem ser usados em seus aplicativos ou serviços.
Um certificado SSL/TLS é um tipo de certificado digital que é usado para estabelecer a privacidade de comunicação entre um servidor e um cliente. Os certificados são emitidos por autoridades de certificação(CA)Uma organização ou empresa de terceiro confiável que emite os certificados digitais. A autoridade de certificação geralmente verifica a identidade dos indivíduos que recebem o certificado exclusivo. e contêm informações que são usadas para criar conexões confiáveis e seguras entre endpoints. Depois de incluir um certificado em sua instância do Secrets Manager, ele poderá ser usado para proteger comunicações de rede para suas implementações em nuvem ou no local. Seu certificado é armazenado de forma segura em sua instância de serviço dedicada do Secrets Manager, na qual é possível gerenciar centralmente seu ciclo de vida.
Em Secrets Manager, os certificados que você cria usando uma autoridade de certificação privada são certificados privados (private_cert). Os certificados que você importa para o serviço são certificados importados (imported_cert). Os certificados que você solicita por meio do site Secrets Manager de uma autoridade de certificação de terceiros são certificados públicos (public_cert).
Antes de Iniciar
Antes de começar, certifique-se de ter o nível de acesso necessário. Para criar ou incluir segredos, é necessária a função de serviço Gravador ou superior.
Antes de criar um certificado privado, certifique-se de:
- Prepare sua instância para criar certificados.
- Revise as autoridades de certificação intermediárias disponíveis. Para visualizar as configurações definidas para sua instância, acesse a página Secrets engines > Private certificates na interface do usuário Secrets Manager.
- Revise os modelos de certificado que estão disponíveis para sua CA intermediária selecionada.
Uma seleção de modelo é necessária quando você cria um certificado privado. Dependendo do modelo que você escolher, algumas restrições para o seu certificado privado podem se aplicar. Para visualizar os modelos definidos para sua CA intermediária, acesse a página Secrets engines > Private certificates (Mecanismos de segredos > Certificados privados ) na interface do usuário Secrets Manager. Expanda a linha da AC intermediária que você deseja usar como autoridade emissora do certificado privado e clique em Modelos para revisar os modelos disponíveis.
Criando certificados privados
Depois de configurar o mecanismo de certificados privados para sua instância, é possível usar o Secrets Manager para gerar certificados privados usando uma autoridade de certificação interna que foi previamente configurada para a sua instância de serviço do Secrets Manager. Antes que um certificado possa ser emitido para você, o Secrets Manager verifica para garantir que a sua solicitação de certificado corresponda às restrições definidas para o modelo de certificado que você selecionar. Depois que um certificado é emitido, é possível implementá-lo em seus apps integrados, fazer download dele, revogá-lo ou rotacioná-lo manualmente.
Criando certificados privados na IU
É possível criar um certificado privado usando a IU do Secrets Manager.
- No console, clique no ícone Menu
> Lista de Recursos.
- Na lista de serviços, selecione sua instância do Secrets Manager.
- Na tabela Segredos, clique em Incluir.
- Clique no tile Criar certificado privado.
- Clique em Avançar.
- Inclua um nome e uma descrição para identificar facilmente o seu certificado.
- Opcional: inclua rótulos para ajudar a procurar segredos semelhantes em sua instância.
- Opcional: inclua metadados em seu segredo ou em uma versão específica de seu segredo
- Faça o upload de um arquivo ou insira os metadados e os metadados da versão no formato JSON
- Clique em Avançar.
- Selecione uma configuração de autoridade de certificação.
A configuração que você seleciona determina a autoridade de certificação a ser usada para assinar e emitir o certificado. Para visualizar as configurações definidas para sua instância, é possível acessar Mecanismos de segredo > Certificados privados.
- Selecione um modelo de certificado.
O modelo que você selecionar determina os parâmetros a serem aplicados ao seu certificado gerado. Para visualizar os detalhes dos modelos de certificado que são definidos para sua autoridade de certificação selecionada, é possível acessar Mecanismos de segredo > Certificados privados. Na lista de autoridades de certificação, expanda a linha da autoridade de certificação que deseja usar como autoridade emissora do seu certificado privado e clique em Modelos. 12. Opcional: ative a rotação automática para o certificado.
Para ativar a rotação automática, alterne a rotação para Ligado. Selecione um intervalo e uma unidade que especifica o número de dias entre as rotações programadas.
Dependendo do modelo de certificado que você escolher nas etapas a seguir, algumas restrições no intervalo de rotação para o seu certificado privado podem se aplicar. Por exemplo, o intervalo de rotação não pode exceder o tempo de vida (TTL) definido no modelo. Para obter mais informações, consulte Modelos de certificado.
- Obrigatório: Especifique um nome comum para seu certificado.
Dependendo do modelo de certificado que você escolher, algumas restrições sobre o nome comum podem se aplicar. Para visualizar os detalhes do seu modelo de certificado selecionado, é possível acessar Mecanismos de segredo > Certificados privados. Na lista de autoridades de certificação, expanda a linha da autoridade de certificação que deseja usar como autoridade emissora do seu certificado privado e clique em Modelos. 14. Selecione o grupo secretoO ambiente e as restrições que contêm segredos em uma instância devem estar em conformidade com ele. Um usuário pode ser associado a um grupo de segredos para ativar o acesso e a colaboração. que você deseja atribuir ao certificado.
Se o seu modelo de certificado selecionado permite que os certificados sejam incluídos em grupos de segredos específicos, apenas os grupos permitidos serão listados. Se o modelo não tiver restrições, será possível criar um grupo de segredos se você ainda não tiver um. Seu certificado é incluído no novo grupo automaticamente. Para obter mais informações sobre grupos de segredos, confira Organizando seus segredos. 15. Opcional: especifique nomes alternativos para seu certificado.
Os nomes alternativos podem ser nomes de host ou endereços de e-mail. 16. Clique em Avançar. 17. Revise os detalhes do certificado. 18. Clique em Incluir.
Criando certificados privados por meio da CLI
Antes de começar, siga os documentos da CLI para definir seu endpoint de API.
Para criar um certificado privado usando o plug-in da CLI Secrets Manager, execute o comando ibmcloud secrets-manager secret-create.
Por exemplo, o comando a seguir cria um segredo de certificado privado a partir do modelo de certificado especificado.
Ao solicitar um certificado, a validação de domínio ocorre para verificar a propriedade de seus domínios selecionados. Esse processo pode levar alguns minutos para ser concluído.
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
O comando gera o valor do ID do segredo, além de outros metadados. Para obter mais informações sobre as opções de comando, consulte ibmcloud secrets-manager secret-create.
Criando certificados privados com a API
É possível gerar certificados privados programaticamente chamando a API do Secrets Manager.
O exemplo a seguir mostra uma consulta que você pode usar para criar um certificado privado. Ao chamar a API, substitua as variáveis de ID e o token IAM pelos valores que são específicos para a sua instância do Secrets Manager.
É possível armazenar metadados relevantes para as necessidades de sua organização com os parâmetros de solicitação custom_metadata e version_custom_metadata. Os valores do version_custom_metadata são
retornados apenas para as versões de um segredo Os metadados customizados de seu segredo são armazenados como todos os outros metadados, para até 50 versões e você não deve incluir dados confidenciais.
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"
Precisa criar um certificado privado com opções avançadas? É possível usar parâmetros de solicitação opcionais para especificar atributos avançados para o seu certificado privado, como Nomes alternativos de assunto ou um tempo de vida (TTL). Se você omitir esses parâmetros opcionais, os atributos definidos para o seu modelo de certificado selecionado serão aplicados. Para obter mais informações, consulte a Referência da API.
Uma solicitação bem-sucedida retorna o conteúdo do seu certificado privado, juntamente com outros metadados que são determinados pelo modelo de certificado e autoridade de certificação emissora.
{
"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
}
Criando certificados privados com o Terraform
O exemplo a seguir mostra uma configuração que você pode usar para criar um certificado privado.
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"
}
Depois que um certificado é emitido, é possível implementá-lo em seus aplicativos integrados, fazer download ou alterná-lo manualmente. Para obter mais informações sobre os parâmetros de solicitação opcionais e necessários, consulte a Referência de API.
Para automatizar a criação e o gerenciamento de certificados privados, use o Terraform IBM Modules (TIM) para Secrets Manager Private Certificate para infraestrutura como código. Consulte Terraform IBM Modules para obter orientação de implementação.