Configurar o TLS mútuo entre o cliente e o AWS CloudHSM (recomendado)
Os tópicos a seguir descrevem as etapas que você deve concluir para habilitar o TLS mútuo (mTLS) entre o cliente e o AWS CloudHSM. Atualmente, esse recurso está disponível exclusivamente no hsm2m.medium. Para obter mais informações sobre o tipo de HSM, consulte Modos de cluster do AWS CloudHSM.
Tópicos
Etapa 1. Criar e registrar uma âncora de confiança no HSM
Uma âncora de confiança deve ser criada e registrada no HSM antes de ativar o mTLS. Este é um processo em duas etapas:
Criar uma chave privada e um certificado raiz autoassinado
nota
Para um cluster de produção, a chave deve ser criada com segurança usando uma fonte confiável de aleatoriedade. Recomendamos que você use um HSM fora do local e off-line ou o equivalente. Armazene a chave com segurança.
Durante a fase de desenvolvimento e teste, você pode usar qualquer ferramenta conveniente (como o OpenSSL) para criar a chave e autoassinar um certificado raiz. Você precisará da chave e do certificado raiz para assinar o certificado do cliente no habilitar mTLS para AWS CloudHSM.
Os exemplos a seguir mostram como criar uma chave privada e um certificado raiz autoassinado com o OpenSSL
exemplo Crie uma chave privada com o OpenSSL
Use o comando a seguir para criar uma chave de RSA de 4096 bits criptografada com o algoritmo AES-256. Para usar esse exemplo, substitua <mtls_ca_root_1.key>
pelo nome do arquivo onde você deseja armazenar a chave.
$
openssl genrsa -out
<mtls_ca_root_1.key>
-aes256 4096Generating RSA private key, 4096 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for mtls_ca_root_1.key: Verifying - Enter pass phrase for mtls_ca_root_1.key:
exemplo – Criar um certificado raiz autoassinado com o OpenSSL
Use o comando a seguir para criar um certificado raiz autoassinado chamado mtls_ca_root_1.crt
da chave privada que você acabou de criar. O certificado é válido por 25 anos (9130 dias). Leia as instruções na tela e siga os avisos.
$
openssl req -new -x509 -days 9130 -key mtls_ca_root_1.key -out mtls_ca_root_1.crt
Enter pass phrase for mtls_ca_root_1.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
Registrar a âncora de confiança no HSM
Depois de criar um certificado raiz autoassinado, o administrador deve registrá-lo como âncora de confiança no cluster do AWS CloudHSM.
Para registrar uma âncora de confiança no HSM
-
Use o comando a seguir para iniciar CloudHSM CLI:
-
Usando a CLI do CloudHSM, faça login como administrador.
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } } -
Use o comando Registrar uma âncora de confiança com a CLI do CloudHSM para registrar a âncora de confiança. Para obter mais informações, consulte o exemplo a seguir ou use o comando help cluster mtls register-trust-anchor.
exemplo – Registrar uma âncora de confiança com o cluster do AWS CloudHSM
O exemplo a seguir mostra como usar o comando cluster mtls register-trust-anchor na CLI do CloudHSM para registrar uma âncora de confiança no HSM. Para usar esse comando, o CO deve estar conectado no HSM. Substitua esses valores pelos seus próprios:
aws-cloudhsm >
cluster mtls register-trust-anchor --path
</path/mtls_ca_root_1.crt>
{ "error_code": 0, "data": { "trust_anchor": { "certificate-reference": "0x01", "certificate": "
<PEM Encoded Certificate>
", "cluster-coverage": "full" } } }
nota
O AWS CloudHSM é compatível com o registro de certificados intermediários como âncora de confiança. Nesses casos, todo o arquivo da cadeia de certificados codificado pelo PEM precisa ser registrado no HSM, com os certificados em ordem hierárquica.
O AWS CloudHSM é compatível com uma cadeia de certificados de 6980 bytes.
Depois de registrar com êxito a âncora de confiança, é possível executar o comando cluster mtls list-trust-anchors para verificar as âncoras de confiança registradas atuais, conforme mostrado abaixo:
aws-cloudhsm >
cluster mtls list-trust-anchors
{ "error_code": 0, "data": { "trust_anchors": [ { "certificate-reference": "0x01", "certificate": "
<PEM Encoded Certificate>
", "cluster-coverage": "full" } ] } }
nota
No máximo 2 (duas) âncoras de confiança podem ser registradas em instâncias hsm2m.medium.
Etapa 2. Habilitar o mTLS para AWS CloudHSM
Para habilitar o mTLS para AWS CloudHSM, é necessário criar uma chave privada e um certificado de cliente assinado pelo certificado raiz que geramos em Criar e registrar uma âncora de confiança no HSM e, em seguida, usar qualquer ferramenta de configuração do Client SDK 5 para configurar o caminho da chave privada e o caminho da cadeia de certificados do cliente.
Criar uma chave privada e uma cadeia de certificados de clientes
exemplo Crie uma chave privada com o OpenSSL
Use o comando a seguir para criar uma chave de RSA de 4096 bits criptografada com o algoritmo AES-256. Para usar esse exemplo, substitua <ssl-client.key>
pelo nome do arquivo onde você deseja armazenar a chave.
$
openssl genrsa -out
<ssl-client.key>
-aes256 4096Generating RSA private key, 4096 bit long modulus .....................................+++ .+++ e is 65537 (0x10001) Enter pass phrase for ssl-client.key: Verifying - Enter pass phrase for ssl-client.key:
exemplo – Gere uma Certificate Signing Request (CSR – Solicitação de assinatura de certificado).
Use o comando a seguir para gerar uma Certificate Signing Request (CSR – Solicitação de assinatura de certificado) com a chave privada que você acabou de criar. Leia as instruções na tela e siga os avisos.
$
openssl req -new -key
<ssl-client.key>
-out<ssl-client.csr>
Enter pass phrase for ssl-client.key: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]: State or Province Name (full name) [Some-State]: Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []: Email Address []:
exemplo – Assinar a CSR com o certificado raiz
Use o comando a seguir para assinar a CSR com o certificado raiz que criamos e registramos em Criar e registrar uma âncora de confiança no HSM e criar um certificado de cliente chamado ssl-client.crt
. O certificado é válido por 5 anos (1826 dias).
$
openssl x509 -req -days 1826 -in
<ssl-client.csr>
-CA<mtls_ca_root_1.crt>
-CAkey<mtls_ca_root_1.key>
-CAcreateserial -out<ssl-client.crt>
exemplo – Criar uma cadeia de certificado de cliente
Use o comando a seguir para combinar o certificado do cliente e o certificado raiz que criamos e registramos em Criar e registrar uma âncora de confiança no HSM e criar uma cadeia de certificados do cliente chamada ssl-client.pem
, que será usada para configurar na próxima etapa.
$
cat
<ssl-client.crt>
<mtls_ca_root_1.crt>
><ssl-client.pem>
nota
Se você registrou certificados intermediários em Criar e registrar uma âncora de confiança no HSM como âncora de confiança, combine o certificado do cliente com toda a cadeia de certificados para criar uma cadeia de certificados do cliente.
Configurar mTLS para Client SDK 5
Use qualquer ferramenta de configuração do Client SDK 5 para habilitar o TLS mútuo fornecendo o caminho correto da chave do cliente e o caminho da cadeia de certificados do cliente. Para obter mais informações sobre a ferramenta de configuração para o Client SDK 5, consulte Ferramenta de configuração do Client SDK 5 do AWS CloudHSM.
Etapa 3. Definir a imposição do mTLS para AWS CloudHSM
Depois de configurar com qualquer uma das ferramentas de configuração do Client SDK 5, a conexão entre o cliente e o AWS CloudHSM será TLS mútuo no cluster. No entanto, remover o caminho da chave privada e o caminho da cadeia de certificados do cliente do arquivo de configuração transformará a conexão em TLS normal novamente. É possível usar a CLI do CloudHSM para definir a imposição de mTLS no cluster concluindo as seguintes etapas:
-
Use o comando a seguir para iniciar CloudHSM CLI:
-
Usando a CLI do CloudHSM, faça login como administrador.
aws-cloudhsm >
login --username admin --role admin
Enter password: { "error_code": 0, "data": { "username": "admin", "role": "admin" } }nota
1. Verifique se você configurou a CLI do CloudHSM e inicie-a em uma conexão mTLS.
2. É preciso estar logado como usuário administrador padrão com o nome de usuário administrador antes de definir a imposição do mTLS.
-
Use o comando Definir o nível de imposição do mTLS com a CLI do CloudHSM para definir a imposição. Para obter mais informações, consulte o exemplo a seguir ou use o comando help cluster mtls set-enforcement.
exemplo – Definir a imposição do mTLS com cluster AWS CloudHSM
O exemplo a seguir mostra como usar o comando cluster mtls set-enforcement na CLI do CloudHSM a fim de definir a imposição de mTLS com o HSM. Para usar esse comando, o administrador com nome de usuário admin deve estar conectado no HSM.
aws-cloudhsm >
cluster mtls set-enforcement --level cluster
{ "error_code": 0, "data": { "message": "Mtls enforcement level set to Cluster successfully" } }
Atenção
Depois de impor o uso de mTLS no cluster, todas as conexões não MTLS existentes serão descartadas e a conexão com o cluster será possível apenas com certificados mTLS.