Isso acabou sendo direto. O crédito vai para o link . Eu apenas reescrevi para novatos como eu.
Digamos que o site seja example.com
Windows
Obtendo seu certificado
Se você estiver no lado da assinatura, você controla seu certificado. Você pode seguir as boas instruções em: link
Isso fornecerá sua chave privada e o certificado necessário para as etapas a seguir.
Se você está apenas no lado da verificação, pode clicar na fechadura ao lado do endereço da web em seu navegador, visualizar o certificado e exportá-lo para um arquivo crt ou cer. O nome do arquivo não é importante, mas domain.crt
é um bom nome.
Instalar o openssl
Instale o openssl. Eu usei o link referido a mim por link . Extraia-o em uma pasta de instalação do openssl. Vou chamar isso de pasta openssl.
Executa o openssl
apenas vá para a pasta openssl, digite openssl
e pressione enter. Agora você está em um prompt openssl
.
Assinar
Você precisa da sua chave privada. Parece assim:
-----BEGIN RSA PRIVATE KEY-----
(bunch of base64 text)==
-----END RSA PRIVATE KEY-----
Salve em example.key
, por exemplo. Mas o nome do arquivo não é importante, apenas é útil.
Em seguida, salve uma mensagem em um arquivo chamado message.txt
. Pode estar vazio. E o nome do arquivo não é importante.
Em seguida, na sua pasta openssl (onde você extraiu os binários), execute
dgst -sha256 -sign example.key -out signature.txt message.txt
usa a mensagem e a chave para produzir a assinatura.
mensagem + tecla = > assinatura
Verificar
Você precisará do certificado do site. Parece assim:
-----BEGIN CERTIFICATE-----
(bunch of base64)==
-----END CERTIFICATE-----
Salve em example.crt
. O nome não importa.
Primeiro, você precisará criar uma chave pública a partir do arquivo de certificado ( example.crt
) assim:
x509 -in example.crt -pubkey -noout -out example.pub
Isso usa o certificado para criar a chave pública.
certificado = > chave pública
Então você pode verificar a mensagem assim:
dgst -sha256 -verify example.pub -signature signature.txt -out result.txt message.txt
Ele usa a chave pública e a assinatura para verificar a mensagem, colocando o resultado da verificação no arquivo result.txt
.
chave pública + assinatura + mensagem = > resultado
result.txt
conterá "Verified OK" ou "Verification Failure".
Linux
Instruções em breve. Eu acho que é bem parecido, exceto pela menor sintaxe.