Como usar Certificados Digitais no Linux

Linux

Referências usadas aqui..: DigitalOcean.

Informações de um Certificado

No linux, há algumas formas de verificar informações de certificados, veja algumas formas e suas ferramentas.

  • Keytool

No Ubuntu:

keytool -list -keystore /etc/ssl/certs/java/cacerts

No RedHat:

keytool -list -keystore /etc/pki/java/cacerts

Exemplo de saída:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 174 entries

debian:staat_der_nederlanden_root_ca_-_g3.pem, Jul 14, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC
debian:pscprocert.pem, Jul 14, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): 70:C1:8D:74:B4:28:81:0A:E4:FD:A5:75:D7:01:9F:99:B0:3D:50:74
debian:chambers_of_commerce_root_-_2008.pem, Jul 14, 2016, trustedCertEntry,
Certificate fingerprint (SHA1): 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C
debian:ca_disig_root_r2.pem, Jul 14, 2016, trustedCertEntry,
...
  • OpenSSL

Para verificar informações como fingerprint, versão, algoritmos de assinatura, dentro outros a ferramenta OpenSSL. Algumas referências sobre. Verificar Certificados - listar informação do certificado padrão x509:

openssl x509 -in <CERTIFICADO>.crt -text -noout

Exemplo de saída:

Certificate:
Data:
    Version: 3 (0x2)
    Serial Number:
        72:c6:63:0d:00:00:00:00:00:0b
Signature Algorithm: sha1WithRSAEncryption
    Issuer: DC=local, DC=kos, DC=teste, CN=TESTE-CA
    Validity
        Not Before: Mar  3 12:00:45 2016 GMT
        Not After : Mar  3 12:00:45 2017 GMT

        . . .

Verificar Certificados

Listar somente o certificado em base 64:

openssl x509 -in <CERTIFICADO>.crt

Exemplo de saída:

-----BEGIN CERTIFICATE-----
MIIFxDCCBKygAwIBAgIKcsZjDQAAAAAACzANBgkqhkiG9w0BAQUFADB2MRIwEAYK
CZImiZPyLGQBGRYCYnIxEzARBgoJkiaJk/IsZAEZFgNnb3YxFTATBgoJkiaJk/Is
ZAEZFgVjYXBlczEVMBMGCgmSJomT8ixkARkWBXRlc3RlMR0wGwYDVQQDExR0ZXN0

. . .

RjnZwvaHNvLbgvIaGjaKD9Z78U0O5hapnPZyyjZe7RVa23FZmIVkiR0m0Pk0E+G2
/Ra4zk0NJyCAtNKN8ERWcmWrU+CTGCQJuNvmR0zQZTWnytMDMus7/Q==
-----END CERTIFICATE-----
  • Fingerprint - para verificar uma impressão digital (fingerprint) de um certificado no linux:

    openssl x509 -noout -in <CERTIFICADO>.cer -fingerprint
    

Exemplo de saída:

SHA1 Fingerprint=89:50:B2:D1:3C:68:FC:A2:B2:A6:EE:22:20:EC:6B:4D:B8:5B:C2:70

Importar um certificado

Veja como importar um certificado.

  • Ubuntu:

    \\ Sem alias
    keytool -importcert -keystore  /etc/ssl/certs/java/cacerts -file <CERTIFICADO.CER>
    
    \\ Com alias.
    keytool -importcert -alias activedirectory:testead -keystore  /etc/ssl/certs/java/cacerts -file <CERTIFICADO.CER>
    
  • Red Hat::

    keytool -importcert -keystore /etc/pki/java/cacerts -file certificado.cer
    

Ele ficará armazenado na keystore. Valide pela sua impressão digital (fingerprint)

Gerar um Certificado

Certificados Auto-Assinados - utilizando o OpenSSL com chave privada de 2048 (dominio_TESTE.key) e um certificado auto-assinado (dominio_TESTE.crt) para utilização em sites com HTTPS:

openssl req -newkey rsa:2048 -nodes -keyout dominio_TESTE.key -x509 -days 365 -out <dominio_TESTE>.crt

Exportar um Certificado

Formato Java Keystore - para exportar um certificado de uma java keystore para formato x509:

keytool -keystore </PASTA/.keystore OU arquivo.kjs> -exportcert -alias NOME_CERTIFICADO | openssl x509 -inform der -text > <CERTIFICADO>.crt

Remover um Certificado

Para remover certificados:

keytool -delete -keystore /etc/ssl/certs/java/cacerts -alias <CERTIFICADO_DESEJADO_PARA_EXCLUIR>