Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure HSM de nuvem dá suporte ao armazenamento de certificados por meio do PKCS nº 11, permitindo que os aplicativos gerenciem certificados X.509 junto com chaves. Este tutorial fornece instruções passo a passo para configurar pré-requisitos de armazenamento de certificados, incluindo Armazenamento de Blobs do Azure e configuração de identidade gerenciada. Para obter detalhes sobre como usar APIs PKCS nº 11 para gerenciar certificados, consulte a API PKCS nº 11 para armazenamento de certificados.
Pré-requisitos
Os pré-requisitos a seguir são necessários para dar suporte ao armazenamento de certificados com Azure HSM na nuvem. Consulte o guia de integração do Azure Cloud HSM para instalação e configuração do SDK se a implantação do HSM não estiver concluída.
Requisitos do sistema
- O recurso HSM da Nuvem Azure é implantado, inicializado e configurado.
- SDK do Cliente HSM Cloud do Azure
- Cópia do certificado de proprietário da partição "PO.crt" no servidor de aplicativos.
- Endereço conhecido do HSM
hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net. - Conhecimento das credenciais do usuário de criptografia
Pré-requisitos de armazenamento de certificado
- conta do Armazenamento de Blobs do Azure
- Identidade gerenciada para acessar o armazenamento
Importante
Os clientes que usam qualquer versão do Windows Server devem instalar a versão mais recente do Visual C++ Redistributable.
Configurar uma conta de Armazenamento de Blobs do Azure
Antes de poder usar a API PKCS nº 11 para armazenamento de certificados, você deve criar uma conta Armazenamento de Blobs do Azure. Essa conta de armazenamento contém os objetos de certificado PKCS nº 11, que são salvos e recuperados no formato JWS.
Para configurar uma conta de Armazenamento de Blobs do Azure para o armazenamento de certificados PKCS nº 11, acesse o portal do Azure e crie uma nova Conta de Armazenamento.
Depois que a conta de armazenamento for criada, acesse-a no portal do Azure e selecione Contêineres no Armazenamento de Dados. Crie um novo contêiner para armazenar os blobs.
Depois de criar o contêiner, localize a URL do ponto de extremidade do contêiner navegando até as propriedades do contêiner. Essa URL é necessária posteriormente.
Nas propriedades do contêiner, você encontra a URL do contêiner listada. Essa URL é necessária posteriormente no arquivo azcloudhsm_application.cfg para habilitar aplicativos PKCS nº 11 a localizar o local de armazenamento para objetos de certificado.
Configurar uma identidade gerenciada atribuída pelo usuário para acessar o armazenamento
O próximo pré-requisito para o armazenamento de certificados é criar uma Identidade Gerenciada Atribuída pelo Usuário. Essa identidade recebe a função necessária para acessar a Conta de Armazenamento de Blobs do Azure e é usada para autenticar na VM de administrador designada.
Observação
O exemplo a seguir cria e usa uma Identidade Gerenciada Atribuída pelo Usuário. Uma identidade gerenciada atribuída pelo sistema também pode ser criada e usada na VM.
Para criar uma identidade gerenciada atribuída User para armazenamento de certificados PKCS#11, navegue até o portal Azure e crie uma nova identidade.
Depois de criar com êxito a Identidade Gerenciada, anote a ID do cliente, que é necessária posteriormente no arquivo azcloudhsm_application.cfg para habilitar a autenticação na conta de armazenamento da VM.
Atribua a função apropriada do Azure para conceder à identidade gerenciada permissão para ler e escrever na conta do Armazenamento de Blobs criada anteriormente. Atribua a função Colaborador de Dados Blob de Armazenamento à identidade gerenciada, definindo o Escopo como Armazenamento e selecionando o recurso de conta de armazenamento específico.
Atribua a Identidade Gerenciada Atribuída ao Usuário à VM que executa seu aplicativo de armazenamento de certificados PKCS nº 11. Vá para o recurso de VM no portal do Azure, selecione a seção Segurança, selecione Identidade e adicione a identidade atribuída pelo usuário.
Configurar as ferramentas de cliente do Azure Cloud HSM
Criar uma chave de assinatura de armazenamento
Use o comando a seguir azcloudhsm_util para criar um par de chaves de assinatura RSA para o armazenamento de certificados PKCS nº 11 em uma única etapa. Por padrão, ele gera uma chave RSA de 2048 bits com um expoente público de 65537. Você pode modificar o tamanho da chave conforme necessário. Antes de executar o comando, verifique se ele azcloudhsm_client está em execução como um serviço em segundo plano.
Substitua os espaços reservados conforme a seguir:
-
PKCS11_Scom seu nome de usuário de criptografia (por exemplo,cu1) -
PKCS11_Pcom sua senha de usuário de criptografia (por exemplo,user1234) -
SIGNING_KEY_IDcom o identificador do par de chaves desejado (esse identificador também é usado mais tarde no arquivoazcloudhsm_application.cfg)
Defina SIGNING_KEY_ID como um valor aleatório para este exemplo:
SIGNING_KEY_ID=$(tr -dc 'a-z' </dev/urandom | head -c 10)
Linux:
sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s $PKCS11_S -p $PKCS11_P genRSAKeyPair -m 2048 -e 65537 -l $SIGNING_KEY_ID -id $SIGNING_KEY_ID
Windows:
.\azcloudhsm_util.exe singlecmd loginHSM -u CU -s %PKCS11_S% -p %PKCS11_P% genRSAKeyPair -m 2048 -e 65537 -l %SIGNING_KEY_ID% -id %SIGNING_KEY_ID%
Importante
Verifique se cada um dos nós HSM retorna êxito.
chsmVMAdmin@AdminVM:/opt/azurecloudhsm/bin$ sudo ./azcloudhsm_util singlecmd loginHSM -u CU -s cu1 -p user1234 genRSAKeyPair -m 2048 -e 65537 -l signkeyid -id signkeyid
Version info, Client Version: <version>, SDK API Version: <version>, SDK Package Version: <version>
Cfm3Initialize() returned app id : 01000000
session_handle 1000000
Current FIPS mode is: 00000000
Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
Node id 2 status: 0x00000000 : HSM Return: SUCCESS
Node id 3 status: 0x00000000 : HSM Return: SUCCESS
Command: genRSAKeyPair -m 2048 -e 65537 -L signkeyid -id signkeyid
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS
Cfm3GenerateKeyPair: public key handle: 262151 private key handle: 262152
Cluster Status:
Node id 1 status: 0x00000000 : HSM Return: SUCCESS
Node id 2 status: 0x00000000 : HSM Return: SUCCESS
Node id 3 status: 0x00000000 : HSM Return: SUCCESS
Atualizar arquivos de configuração
Atualizar a configuração do aplicativo
Você precisará atualizar os seguintes parâmetros no arquivo azcloudhsm_application.cfg.
CERTSTORAGE_URL: esse campo refere-se à URL do contêiner dentro da conta de Armazenamento de Blobs do cliente e é usado para armazenar informações de certificado. (por exemplo, https://chsmstorage.blob.core.windows.net/certificates)
CERTSTORAGE_SIGNING_KEYID: esse campo refere-se à ID atribuída ao par de chaves, que é usado para executar verificações de integridade durante operações de leitura e gravação no armazenamento (assinatura e verificação).
UAMI_CLIENT_ID: esse campo refere-se à ID do cliente da Identidade Gerenciada Atribuída pelo Usuário, que é usada para autenticar na conta de Armazenamento de Blobs do cliente. Se estiver em branco, a autenticação usará uma Identidade Gerenciada Atribuída ao Sistema.
Observação
Esses parâmetros só se aplicam ao executar operações de certificado no PKCS nº 11. Não é necessário para operações principais.
DAEMON_ID=1
SOCKET_TYPE=UNIXSOCKET
PORT=1111
USER_KEK_HANDLE=262150
DEFAULT_WRAP_WITH_TRUSTED=1
CERTSTORAGE_URL=https://chsmstorage.blob.core.windows.net/certificates
CERTSTORAGE_SIGNING_KEYID=hjgrwvvofe
UAMI_CLIENT_ID=25e659cc-6570-4f3b-9617-adfbc84b2565
Validar a configuração do PKCS#11
Para obter a validação baseada em exemplo da configuração PKCS nº 11, consulte o guia de integração PKCS nº 11.
chsmVMAdmin@AdminVM:/opt/azurecloudhsm$ sudo ./cust_p11_app -s cu1 -p user1234 -l /opt/azurecloudhsm/lib64/libazcloudhsm_pkcs11.so
[INFO] Azure Cloud HSM – Loading PKCS#11 library.
[INFO] Azure Cloud HSM – C_GetFunctionList
[INFO] Azure Cloud HSM – Preparing PIN with given username and password.
[INFO] Azure Cloud HSM – C_Initialize
[INFO] Azure Cloud HSM – C_GetInfo
[INFO] Azure Cloud HSM – Retrieve access token, C_GetTokenInfo
[INFO] Azure Cloud HSM – Start session with specified token, C_OpenSession
[INFO] Azure Cloud HSM – Login with PIN, C_Login
Add Your PKCS#11 Code Here
Próximas etapas
- PKCS#11 API para Armazenamento de Certificados: saiba como usar APIs PKCS#11 para gerenciar certificados X.509 no HSM de nuvem Azure.
- Visão geral do Azure Cloud HSM
- Proteja seu Azure Cloud HSM