Adicionando uma autoridade de certificação raiz a um aplicativo java

3

Instalei o Jenkins no CentOS7 e estava recebendo um erro SSL ao tentar atualizar / instalar plug-ins. Após algumas investigações, descobri que havia um certificado de CA raiz ausente no armazenamento do Java CA.

Eu usei o utilitário keytool para adicionar o certificado de CA ausente ao armazenamento do Java CA e funcionou. No entanto, acho irritante ter que mexer com isso.

Não existe uma maneira de fazer com que Java herde os certificados de CA raiz confiáveis pelo sistema? Se sim, como?

    
por Ezwig 16.07.2018 / 01:42

1 resposta

3

Basta copiar seus arquivos de certificado para este diretório no CentOS 7.x:

$ sudo cp <cert file> /etc/pki/ca-trust/source/anchors/

Depois que os arquivos de certificado forem colocados nesse diretório, execute este comando para atualizar o sistema com este certificado recém-adicionado:

$ sudo update-ca-trust

E quanto ao Java

Se você procurar na página de manual por update-ca-trust , verá a seguinte seção:

$ man update-ca-trust

...

/etc/pki/java/cacerts

Classic filename, file contains a list of CA certificates trusted for TLS server authentication usage, in the Java keystore file format, without distrust information. This file is a symbolic link that refers to the consolidated output created by the update-ca-trust command.

Se você olhar para esse arquivo, poderá ver como ele se conecta ao restante da estrutura de diretório /etc/pki :

$ ll /etc/pki/java/cacerts
lrwxrwxrwx. 1 root root 40 May  2 10:41 /etc/pki/java/cacerts -> /etc/pki/ca-trust/extracted/java/cacerts

E se executarmos o Java keytool contra ele:

$ keytool -list -keystore /etc/pki/java/cacerts -storepass changeit |& head
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 155 entries

hellenicacademicandresearchinstitutionsrootca2011, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D
taiwangrca, May 2, 2018, trustedCertEntry,
Certificate fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9
teliasonerarootcav1, May 2, 2018, trustedCertEntry,

Você pode ver que o acima selecionou todos os certificados disponíveis e eles são incorporados automaticamente neste arquivo Java JKS. Este arquivo está disponível para qualquer aplicativo Java em execução no sistema.

Referências

por 16.07.2018 / 03:28