Java: Importando Certificados SSL para a Java Virtual Machine (JVM)
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