Como configurar um ambiente Linux para utilizar o Google Cloud HSM
Para assinar o seu código através do certificado Code Signing armazenado no Google Cloud HSM através do Linux é necessário:
Fazer o download da biblioteca PKCS #11:
https://cloud.google.com/kms/docs/reference/pkcs11-openssl?hl=pt-br
Instalar os seguintes pacotes:
Criar um arquivo de configuração YAML para localizar os recursos do Cloud KMS:
/etc/pkcs11-kms.yml
com o seguinte conteúdo:
O valor para project-id e keyring-name serão enviados por e-mail após a emissão do certificado Code Signing.
Definir as seguintes variáveis:
Instalar a CLI gcloud:
https://cloud.google.com/sdk/docs/install?hl=pt-br
Para utilizar o HSM do Google Cloud é necessário fazer a autenticação do seu usuário:
Baixar o aplicativo de assinatura de código Jsign:
https://ebourg.github.io/jsign/
Para o usuário criado no Google Cloud que terá acesso ao HSM para realizar as assinaturas, é necessário conceder as seguintes permissões:
cloudkms.cryptoKeyVersions.useToSign
cloudkms.cryptoKeyVersions.list
cloudkms.cryptoKeys.list
Caso ainda não possua um certificado Code Signing ou precise renovar o existente, confira nossas ofertas: https://flexbox.cloud/pt-br/certificado-code-signing/
Fazer o download da biblioteca PKCS #11:
https://cloud.google.com/kms/docs/reference/pkcs11-openssl?hl=pt-br
Instalar os seguintes pacotes:
sudo apt-get update
sudo apt-get install libengine-pkcs11-openssl opensc
Criar um arquivo de configuração YAML para localizar os recursos do Cloud KMS:
/etc/pkcs11-kms.yml
com o seguinte conteúdo:
---
tokens:
- key_ring: "projects/project-id/locations/global/keyRings/keyring-name"
O valor para project-id e keyring-name serão enviados por e-mail após a emissão do certificado Code Signing.
Definir as seguintes variáveis:
export KMS_PKCS11_CONFIG=/etc/pkcs11-kms.yml
export PKCS11_MODULE_PATH=/usr/lib/x86_64-linux-gnu/pkcs11-spy.so
export PKCS11SPY="/usr/local/lib/libkmsp11.so"
Instalar a CLI gcloud:
https://cloud.google.com/sdk/docs/install?hl=pt-br
Para utilizar o HSM do Google Cloud é necessário fazer a autenticação do seu usuário:
gcloud auth application-default login
Baixar o aplicativo de assinatura de código Jsign:
https://ebourg.github.io/jsign/
Para o usuário criado no Google Cloud que terá acesso ao HSM para realizar as assinaturas, é necessário conceder as seguintes permissões:
cloudkms.cryptoKeyVersions.useToSign
cloudkms.cryptoKeyVersions.list
cloudkms.cryptoKeys.list
Caso ainda não possua um certificado Code Signing ou precise renovar o existente, confira nossas ofertas: https://flexbox.cloud/pt-br/certificado-code-signing/
Atualizado em: 19/04/2024
Obrigado!