Como Solicitar e Usar Certificados de Assinatura de Código do ServBay
Visão Geral
Durante o desenvolvimento e distribuição de software, a assinatura de código é uma etapa essencial para garantir a confiança do usuário e a integridade do software. Ao assinar digitalmente o código, o desenvolvedor comprova a origem da aplicação e assegura que o código não foi alterado desde sua assinatura.
O ServBay oferece uma funcionalidade prática que permite aos desenvolvedores solicitar e utilizar certificados de assinatura de código emitidos por sua própria Autoridade Certificadora interna (CA) no ambiente local. Esses certificados são especialmente indicados para:
- Assinar softwares durante a fase de desenvolvimento ou testes em ambiente local, simulando o processo real de assinatura.
- Assinar scripts, ferramentas ou aplicativos de uso interno, facilitando a validação da origem e integridade em equipes ou ambientes confiáveis.
- Aprender e praticar todo o fluxo de assinatura de código, sem a necessidade de adquirir certificados de assinatura de código comerciais e caros.
Aviso importante: Os certificados de assinatura de código emitidos pela CA interna do ServBay não são fornecidos por autoridades certificadoras reconhecidas publicamente (como Let's Encrypt, Comodo, etc.). Eles não são automaticamente confiáveis por sistemas operacionais ou navegadores públicos. Portanto, esses certificados não devem ser utilizados para cenários que exigem confiança pública, como distribuição de software comercial para usuários finais, envio para lojas de aplicativos, ou aplicações que devem passar por verificações de segurança do sistema operacional (como o Gatekeeper do macOS, que alerta sobre desenvolvedores desconhecidos). O uso recomendado é para desenvolvimento local, testes ou ambientes controlados.
O que é um Certificado de Assinatura de Código
O certificado de assinatura de código é um certificado digital utilizado para aplicar uma assinatura digital em arquivos executáveis, scripts, bibliotecas e outros tipos de código de software. Sua finalidade principal é estabelecer confiança e garantir a segurança:
- Verificação da identidade do publicador: O certificado contém informações do publicador; a assinatura digital prova que o software realmente foi criado pelo desenvolvedor ou organização identificada no certificado.
- Garantia de integridade do código: O processo de assinatura gera um valor hash baseado no conteúdo do código e o criptografa com uma chave privada. Na verificação, é feito um novo cálculo do hash e ocorre a descriptografia usando a chave pública para comparar os valores. Qualquer alteração no código irá invalidar o hash, falhando a validação e indicando que o código foi modificado.
- Aumento da confiança do usuário: Sistemas operacionais e softwares de segurança normalmente emitem alertas para softwares não assinados ou de publicadores desconhecidos. O uso de um certificado de assinatura elimina esses alertas (em ambientes confiáveis ou quando a CA do ServBay é manualmente adicionada à cadeia de confiança), aumentando a confiança para instalação e uso.
- Prevenção contra malwares: A assinatura de código ajuda o usuário a diferenciar software legítimo de malwares disfarçados, contribuindo para evitar a disseminação de software malicioso.
Como Solicitar um Certificado de Assinatura de Código no ServBay
O ServBay simplifica o processo de obtenção de certificados de assinatura de código no ambiente local.
Acesse o painel de gerenciamento de certificados SSL: No menu lateral do aplicativo ServBay, clique em "SSL Certificates".
Solicite um novo certificado: Na página de gerenciamento de certificados, clique no botão "+" (Adicionar) no canto superior direito.
Preencha as informações do certificado: Na tela "Request Certificate" (Solicitar Certificado), preencha as seguintes informações essenciais:
- Common Name (Nome Comum): Informe o nome da sua organização ou o seu nome. Ex:
ServBay, LLC
ouServBay Demo Developer
. - Usage Purpose (Finalidade): Escolha o objetivo do certificado. Selecione
Code Signing
(Assinatura de Código). - Request Method (Método de Solicitação): Escolha como o certificado será emitido. Selecione
ServBay CA
para utilizar a funcionalidade interna de emissão. - Issuer (Emissor): Selecione a CA interna do ServBay que irá emitir este certificado. Em geral, escolha
ServBay User CA
. - Algorithm (Algoritmo): Escolha o algoritmo de criptografia para o par de chaves. Opções comuns são
ECC
(Criptografia de Curva Elíptica) ouRSA
. ECC oferece maior segurança com chaves mais curtas. - Key Length (Tamanho da Chave): Escolha o tamanho da chave para o algoritmo selecionado. Exemplo:
384
para ECC;2048
ou4096
para RSA. Chaves maiores são mais seguras, mas podem ser mais lentas. - Password (Senha): Muito importante! Defina uma senha forte para proteger sua chave privada. Esta senha será solicitada tanto na exportação do certificado (arquivo
.p12
) quanto nas ferramentas de assinatura. Guarde bem a senha, pois o ServBay não tem como recuperá-la caso seja perdida. Escolha uma senha personalizada e segura. (Nota: a senhaServBay.dev
exibida em capturas é apenas um exemplo, não use senhas fracas; sempre crie sua própria senha segura.)
Imagem de exemplo, preencha de acordo com suas informações reais
- Common Name (Nome Comum): Informe o nome da sua organização ou o seu nome. Ex:
Finalize a solicitação do certificado: Após conferir todos os dados, clique no botão "Request" no final da página. O ServBay irá emitir automaticamente o certificado usando a ServBay User CA selecionada.
Exportando e Utilizando o Certificado
Após a obtenção com sucesso do seu certificado de assinatura de código, será necessário exportá-lo em um formato padrão para uso em diversas ferramentas de assinatura. O certificado exportado pelo ServBay é geralmente um arquivo no formato .p12
.
Abra o painel de gerenciamento de certificados SSL: No menu lateral do ServBay, clique em "SSL Certificates".
Encontre o certificado de assinatura de código: Localize na lista o certificado recentemente criado, cuja finalidade seja "Code Signing".
Clique na opção de exportação: Clique no ícone de exportação ao lado do certificado (geralmente um ícone de seta para a direita).
Escolha o diretório de exportação e configure a senha: Na janela de exportação, selecione o local para salvar o arquivo do certificado. O formato exportado será
.p12
(PKCS#12). Este arquivo contém tanto o certificado de assinatura de código quanto sua chave privada, protegidos por senha. Insira a senha definida na solicitação para concluir a exportação.Utilize o certificado nas ferramentas de assinatura de código: Importe o arquivo
.p12
na sua ferramenta de assinatura. Diferentes sistemas operacionais e ambientes utilizam ferramentas distintas:- macOS: Use o comando
codesign
no terminal. Pode ser necessário primeiro importar o arquivo.p12
no Acesso às Chaves (Keychain Access) do macOS. - Windows: Utilize o
signtool.exe
do SDK do Windows; pode ser necessário importar o.p12
no gerenciador de certificados do Windows. - Outras plataformas/ferramentas: Dependendo da tecnologia utilizada (Java com
jarsigner
, .NET comSignTool
, ferramentas externas para Go, etc.), consulte como importar e assinar código com arquivos.p12
e senha de chave.
- macOS: Use o comando
Após importar o certificado, você poderá assinar digitalmente seus códigos, aplicativos, drivers e outros.
Exemplo de Assinatura de Código Usando o Certificado (macOS)
Veja abaixo como utilizar o codesign
e um certificado .p12
exportado pelo ServBay para assinar e verificar um binário simples no macOS.
Imagine que você já importou o arquivo .p12
do ServBay para o Acesso às Chaves do macOS, fornecendo corretamente a senha.
# 1. Crie um arquivo fonte C simples para testar a assinatura
# Salve o conteúdo a seguir como test.c
cat <<EOF > test.c
#include <stdio.h>
int main() {
printf("Hello, ServBay Code Signing!\n");
return 0;
}
EOF
# 2. Compile o arquivo C com gcc gerando um executável
# -o /tmp/test define o nome de saída como /tmp/test
gcc test.c -o /tmp/test
echo "Compilação concluída, gerado /tmp/test"
# 3. Liste identidades do certificado disponíveis para assinatura de código
# -v mostra informações detalhadas
# -p codesigning filtra certificados aptos para assinatura de código
# Encontre o 'Common Name' ou hash do certificado (ex. 99C183BC3796067FAFBA6F232D1C3C3425DAABDA)
security find-identity -v -p codesigning
# Exemplo de saída:
# 1) ABCDEF1234567890ABCDEF1234567890ABCDEF12 "Apple Development: Seu Nome (XYZ123)"
# 2) 99C183BC3796067FAFBA6F232D1C3C3425DAABDA "ServBay Demo Developer"
# 2 valid identities found
# Anote o hash ou Common Name referente ao certificado ServBay ("ServBay Demo Developer")
# 4. Assine o executável usando o certificado encontrado
# -f força assinatura (substitui a anterior)
# -s especifica a identidade; pode ser hash ou nome se for único
# --timestamp adiciona carimbo de tempo (opcional, mas recomendado)
# /tmp/test é o arquivo a ser assinado
codesign -f -s "ServBay Demo Developer" --timestamp /tmp/test
# Ou usando o hash:
# codesign -f -s "99C183BC3796067FAFBA6F232D1C3C3425DAABDA" --timestamp /tmp/test
echo "/tmp/test foi assinado com certificado de código"
# 5. Verifique a assinatura
# -dvvv mostra detalhes completos sobre a assinatura
codesign -dvvv /tmp/test
# Verifique o campo "Authority", que deverá exibir informações do seu certificado e da cadeia CA do ServBay
# Confira "Signature size", "CDHash" etc. indicando que o arquivo foi assinado
# Veja se há um "Timestamp"
# Exemplo de resposta:
# Authority=ServBay Demo Developer
# Authority=ServBay User CA - ECC Code Signing
# Authority=ServBay Public CA - ECC Root
# Timestamp=7 de nov de 2024 às 18:26:48 (exemplo de data)
# 6. Modifique o arquivo para invalidar a assinatura
# Escreva dados aleatórios, alterando o hash do arquivo
echo "abcde" >> /tmp/test
echo "Conteúdo de /tmp/test modificado"
# 7. Refaça a validação da assinatura
# Agora, a verificação deve falhar
codesign -dvvv /tmp/test
# Exemplo de saída:
# /tmp/test: code object is not signed at all
# Ou mensagem similar, sinalizando que a assinatura foi invalidada porque o conteúdo não é mais igual ao assinado.
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Observações:
security find-identity
lista certificados presentes no chaveiro para finalidades comocodesigning
. Localize o certificado do ServBay (por nome ou hash).codesign -f -s "Seu Identificador"
realiza a assinatura. O parâmetro--timestamp
insere um carimbo de tempo, garantindo validade da assinatura mesmo após expiração do certificado, desde que ele era válido no momento da assinatura e o timestamp seja confiável.codesign -dvvv
verifica detalhadamente a assinatura, conferindo validade, cadeia de confiança e integridade do arquivo.- Ao modificar o arquivo e refazer a verificação, você comprova a principal utilidade da assinatura de código: verificação de integridade — qualquer alteração no arquivo invalida a assinatura.
Renovação do Certificado
Certificados de assinatura de código emitidos pelo ServBay têm uma validade específica (normalmente 800 dias). Antes do vencimento, é possível renová-los via o painel de SSL Certificates.
- Acesse o painel de certificados SSL.
- Encontre o certificado a ser renovado.
- Clique na opção de renovação: O ícone de renovação (geralmente uma seta circular) aparece à direita da linha do certificado.
- Confirme a renovação: Após confirmar, o ServBay emitirá um novo certificado, válido por mais 800 dias a partir da nova data.
Exclusão de Certificados
Se não precisar mais de um determinado certificado de assinatura de código, ele pode ser excluído do ServBay.
- Acesse o painel de certificados SSL.
- Encontre o certificado a excluir.
- Clique para excluir: O ícone de lixeira aparece à direita da linha do certificado.
- Confirme a exclusão: No menu de confirmação, escolha "Delete" e confirme novamente. Atenção: a exclusão é definitiva e não poderá ser revertida.
Perguntas Frequentes (FAQ)
P: Os certificados de assinatura de código emitidos pelo ServBay são gratuitos?
R: Sim, os certificados emitidos pela CA interna do ServBay fazem parte dos recursos do próprio ServBay, sem custo adicional.
P: Posso assinar e distribuir meu software comercial para usuários usando certificados emitidos pelo ServBay?
R: Não. Os certificados emitidos pelo ServBay são por uma CA interna e não são reconhecidos por sistemas operacionais públicos ou lojas de aplicativos. São destinados somente a ambientes de desenvolvimento local, testes ou internos. Para distribuição comercial, é necessário adquirir certificados de uma autoridade de confiança pública.
P: Esqueci a senha definida ao exportar meu arquivo .p12
. O que faço?
R: O ServBay não armazena a senha da sua chave privada. Se você esquecer a senha, não conseguirá exportar ou usar a chave privada desse certificado. Será necessário excluir o certificado e solicitar outro.
P: É possível adicionar a ServBay User CA ao armazenamento de confiança do meu sistema operacional?
R: Sim, basta exportar o certificado da ServBay User CA e importá-lo manualmente no armazenamento de certificados do sistema operacional ou navegador.
Conclusão
O recurso de certificados de assinatura de código do ServBay facilita o teste de assinaturas de software e a assinatura de ferramentas internas no ambiente local de desenvolvimento. Com este guia, você aprendeu como solicitar, exportar e usar esses certificados no ServBay. Lembre-se: eles são utilizados apenas para desenvolvimento e testes, não para cenários que dependem de confiança pública.
Em caso de dúvidas ou dificuldades, consulte a documentação oficial do ServBay ou busque ajuda na comunidade.