Java: Importando Certificados SSL para a Java Virtual Machine (JVM)

From Wiki

Nestes 2 exemplos, vou mostrar como fazer para importa um certificado SSL para Java Virtual Machine.

Você pode utilizar este artigo para fazer o Trust do Certificado de uma empresa ou quando algum administrador criou um certificado auto-assinado.

Procedimento

Localizando o cacerts

1) Primeiro vou verificar a versão do meu java

# java -version
java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr9fp10-20150708_01(SR9 FP10))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20150701_255667 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR9_20150701_0050_B255667
JIT  - tr.r11_20150626_95120.01
GC   - R26_Java726_SR9_20150701_0050_B255667_CMPRSS
J9CL - 20150701_255667)
JCL - 20150628_01 based on Oracle jdk7u85-b15

2) Vou procurar o cacerts

find / -iname cacerts
/usr/lib64/jvm/java-1.7.0-ibm-1.7.0/jre/lib/security/cacerts

3) Ir para o diretório

cd /usr/lib64/jvm/java-1.7.0-ibm-1.7.0/jre/lib/security

4) Fazer um backup

cp cacerts cacerts_orig

Importando de um arquivo .der

Baixe o arquivo através de um browser e copie para o diretório /usr/lib64/jvm/java-1.7.0-ibm-1.7.0/jre/lib/security. Execute o comando

keytool -v -import -noprompt -trustcacerts -alias "<TITULO_CERTIFICADO>" -file <NOME_DO_ARQUIVO_DER> -keystore cacerts -storepass changeit

Para verificar, executar o comando:

keytool -v -list -alias "<TITULO_CERTIFICADO>" -keystore cacerts -storepass changeit


Importando através de uma URL

Download do certificado

openssl s_client -connect <HOST:PORT> </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > <NOME_DO-ARQUIVO.cer>

Execute o comando para importar

keytool -v -import -noprompt -trustcacerts -alias "<TITULO_CERTIFICADO>" -file <NOME_DO_ARQUIVO.cer> -keystore cacerts -storepass changeit


Ver também

Mais artigos sobre Java