Com as novas atualizações do Java cada vez mais temos que desenvolver sistemas que utilizam certificados SSL, muitos são conhecidos pelo seu JDK porém outros não, com isso podemos nos deparar com erros do tipo:
Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?
Para resolvermos esse tipo de problema, aonde não é possível valídar a conexão com a API que estamos usando, ou o site que estamos conectando para extrair alguma informação, devemos importar para dentro de nosso JDK o certificado, também há maneiras de adicionarmos na própria aplicação, porém não vem ao caso nesse post.
Caso você não possua o certificado em mãos uma maneira fácil de extrair o .cert
é usando seu próprio navegador, a seguir ilustrei em três passos como extraílo pelo Opera
porém o conceito é o mesmo para praticamente todos os navegadores.

Com o certificado extraído basta adicionarmos no nosso SDK com um simples comando executado pelo Terminal
keytool -import -noprompt -trustcacerts -alias {CERTIFICATE_NAME} \
-file {CERTIFICATE_FILE_PATH} \
-keystore $JAVA_HOME/jre/lib/security/cacerts \
-storepass changeit
Notas:
1 – Substitua {CERTIFICATE_NAME}
pelo nome de seu certificado e substitua {CERTIFICATE_FILE_PATH
} pelo path
do certificado extraído.
2 – Tenha certeza que vocề tem a váriavel de ambiente $JAVA_HOME configurada, ou substitua pelo path
que o representa.
3 – Alguns JDK, não lembro se apartir do 9 ou 11 a pasta jre
não existe, basta retirarmos e mantermos $JAVA_JOME/lib/security/cacerts
Para listarmos os certificados disponíveis em nosso JDK
basta executarmos:
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts
Dica: Podemos usar no final do comando um grep
para verificarmos se o certificado foi realmente adicionado:
keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts | grep {CERTIFICATE_NAME}