Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Cloud HSM suporta armazenamento de certificados via PKCS#11, permitindo que aplicações gerenciem certificados X.509 juntamente com chaves. Este tutorial fornece instruções passo a passo para configurar pré-requisitos para armazenamento de certificados, incluindo Azure Blob Storage e configuração de Identidade Gerida. Para obter detalhes sobre como usar APIs PKCS#11 para gerenciar certificados, consulte a API PKCS#11 para armazenamento de certificados.
Pré-requisito
Os seguintes pré-requisitos são necessários para suportar o armazenamento de certificados com o Azure Cloud HSM. Consulte o the Azure Cloud HSM Onboarding Guide para instalação e configuração do SDK caso a implementação do HSM não esteja completa.
Requisitos do sistema
- O recurso HSM do Azure Cloud é implementado, inicializado e configurado.
- Azure Cloud HSM Client SDK
- Cópia do certificado de proprietário da partição "PO.crt" no servidor de aplicativos.
- Endereço conhecido do seu HSM
hsm1.chsm-<resource-name>-<unique-string>.privatelink.cloudhsm.azure.net. - Conhecimento das credenciais do usuário de criptografia
Pré-requisitos de armazenamento de certificados
- Conta do Azure Blob Storage
- Identidade gerenciada para acessar o armazenamento
Importante
Os clientes que utilizem qualquer versão do Windows Server devem instalar a versão mais recente do Visual C++ Redistributable.
Configurar uma conta Azure Blob Storage
Antes de poder usar a API PKCS#11 para Armazenamento de Certificados, deve criar uma Conta Azure Blob Storage. Essa conta de armazenamento manterá os objetos de certificado PKCS#11, que são salvos e recuperados no formato JWS.
Para configurar uma Conta Azure Blob Storage para armazenamento de certificados PKCS#11, vá ao portal Azure e crie uma nova Conta de Armazenamento.
Depois de criar com sucesso a Conta de Armazenamento, navegue até ela no portal Azure e selecione Containers em Armazenamento de Dados. Aqui, você cria 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é Propriedades do contêiner. Este URL é necessário mais tarde.
Em Propriedades do contêiner, você encontra a URL do contêiner listada. Essa URL é necessária posteriormente no arquivo azcloudhsm_application.cfg para permitir que os aplicativos PKCS#11 localizem o local de armazenamento para objetos de certificado.
Configurando a identidade gerenciada atribuída ao 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. Esta identidade é atribuída a função necessária para aceder à conta de armazenamento Azure Blob e é utilizada para autenticar a partir do VM de administrador designado.
Observação
O exemplo a seguir cria e usa uma identidade gerenciada atribuída pelo usuário. Uma Identidade Gerenciada Atribuída ao Sistema também pode ser criada e usada na VM.
Para criar uma Identidade Gerida Atribuída pelo Utilizador para armazenamento de certificados PKCS#11, navegue até ao 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 sua VM.
O passo seguinte é atribuir o papel Azure apropriado para conceder à Identidade Gerida permissão para ler e escrever na Conta de Blob Storage criada anteriormente. Atribua a função de Colaborador de Dados de Blob de Armazenamento à Identidade Gerenciada, definindo o Escopo como Armazenamento e selecionando o recurso específico da Conta de Armazenamento.
A próxima etapa é atribuir a Identidade Gerenciada Atribuída pelo Usuário à VM que executará seu aplicativo de armazenamento de certificados PKCS#11. Navegue até ao seu recurso de VM no portal Azure, vá à secção Security, selecione Identidade e adicione a Identidade Atribuída pelo Utilizador.
Configurar as ferramentas cliente do Azure Cloud HSM
Criar uma chave de assinatura de armazenamento
O comando azcloudhsm_util a seguir pode ser usado para criar um par de chaves de assinatura RSA para armazenamento de certificados PKCS#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 o azcloudhsm_client está sendo executado como um serviço em segundo plano.
Substitua os marcadores de posição da seguinte forma:
- PKCS11_S com seu nome de usuário Crypto User. (por exemplo, CU1)
- PKCS11_P com sua senha de usuário de criptografia. (por exemplo, user1234)
- SIGNING_KEY_ID com o ID do par de chaves desejado (esse ID também será usado posteriormente no arquivo azcloudhsm_application.cfg)
ID da chave de assinatura Para este exemplo, vamos definir o ID da Chave de Assinatura como um valor aleatório.
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
Certifique-se de que cada um dos nós de HSM retorna sucesso.
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: 2.09.07.02, SDK API Version: 2.09.07.02, SDK Package Version: 2.0.1.2
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 configuração do aplicativo
Você precisará atualizar os seguintes parâmetros no arquivo azcloudhsm_application.cfg.
CERTSTORAGE_URL: Este campo refere-se à URL do contentor dentro da Conta Blob Storage do cliente e é usado para armazenar informações de certificados. (por exemplo) https://chsmstorage.blob.core.windows.net/certificates
CERTSTORAGE_SIGNING_KEYID: Este campo refere-se ao ID atribuído 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: Este campo refere-se ao ID do Cliente da Identidade Gerida Atribuída pelo Utilizador, que é usada para autenticar a Conta Blob Storage do cliente. Se deixada em branco, a autenticação será padronizada para usar uma Identidade Gerenciada Atribuída pelo Sistema.
Observação
Esses parâmetros só se aplicam ao executar operações de certificado em PKCS#11. Não é necessário para Operações-Chave.
DAEMON_ID=1
SOCKET_TYPE=UNIXSOCKET
PORT=1111
USER_KEK_HANDLE=262150
DEFAULT_WRAP_WITH_TRUSTED=1
CERTSTORAGE_URL=https://chmsstorage.blob.core.windows.net/certificates
CERTSTORAGE_SIGNING_KEYID=hjgrwvvofe
UAMI_CLIENT_ID=25e659cc-6570-4f3b-9617-adfbc84b2565
Validar a configuração do PKCS#11
Consulte o Guia de Integração PKCS#11 para validação baseada em exemplo da sua configuração PKCS#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óximos passos
- API PKCS#11 para Armazenamento de Certificados: Aprenda a usar APIs PKCS#11 para gerir certificados X.509 no Azure Cloud HSM.
- Visão geral do Azure Cloud HSM
- Assegure o seu HSM na Azure Cloud