No Windows, a maneira mais fácil é usar o portecle do programa .
- Baixe e instale o portecle.
- Primeiro, verifique 100% se você sabe qual JRE ou JDK está sendo usado para executar seu programa. Em um Windows 7 de 64 bits, pode haver alguns JREs. O Process Explorer pode ajudá-lo com isso ou você pode usar:
System.out.println(System.getProperty("java.home"));
- Copie o arquivo JAVA_HOME \ lib \ security \ cacerts para outra pasta.
- No Portecle, clique em Arquivo> Abrir Arquivo de Keystore
- Selecione o arquivo cacerts
- Digite esta senha: changeit
- Clique em Ferramentas> Importar Certificado Confiável
- Procure o arquivo mycertificate.pem
- Clique em Importar
- Clique em OK para o aviso sobre o caminho de confiança.
- Clique em OK quando exibir os detalhes sobre o certificado.
- Clique em Sim para aceitar o certificado como confiável.
- Quando solicitar um alias, clique em OK e clique em OK novamente quando indicar que importou o certificado.
- Clique em salvar. Não se esqueça disso ou a alteração foi descartada.
- Copie o arquivo cacerts de volta onde você o encontrou.
No Linux:
Você pode fazer o download do certificado SSL de um servidor Web que já o esteja usando assim:
$ echo -n | openssl s_client -connect www.example.com:443 | \
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /tmp/examplecert.crt
Opcionalmente, verifique as informações do certificado:
$ openssl x509 -in /tmp/examplecert.crt -text
Importe o certificado para o keystore Java cacerts:
$ keytool -import -trustcacerts -keystore /opt/java/jre/lib/security/cacerts \
-storepass changeit -noprompt -alias mycert -file /tmp/examplecert.crt
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider())
são completamente desnecessárias na primeira parte. O segundo não faz nenhuma verificação de certificação. Tente com uma planícieURLConnection
para começar. Tem certeza que você tenha modificadocacerts
nolib/security
de sua instalação JRE? Você já tentou atrustmanager
opção de depuração ?