Importando um certificado SSL

Você pode adquirir um Certificado SSL de uma certificadora como Verisign, Thawte, etc. Essas empresas oferecem excelentes documentações e instruções sobre como instalar o certificado em seu website.

Abaixo eu incluí um screenshot do processo de instalação do certificado no arquivo keystore.

/opt/java/bin/keytool -import -alias serasa -keystore serasa-prod.jks -trustcacerts -file ./sitenet43.serasa.com.br

Atenção! Podemos ter uma importação pura e simples de um certificado, onde somente a chave pública é enviada ao servidor; no exemplo abaixo, procedimento para a importação de um certificado emitido pelo SERASA:

$ keytool -import -alias serasa -file serasa.cer

Será requisitado que você entre com uma password… essa password será a chave privada da keystore; ele só servirá para abrir o certificado do SERASA (serasa.jks), onde contém a chave publica.

Enter keystore password:  
Re-enter new password:

Após a password, ele mostrará qual chain root foi importada…

Owner: CN=sitenet43.serasa.com.br, OU=Domain Control Validated, C=BR
Issuer: CN=AlphaSSL CA - G2, O=AlphaSSL
Serial number: 1121135488c25c36c39de12fe7d7e33e8c79
Valid from: Sat Jul 13 00:43:47 BRT 2013 until: Wed Jul 13 00:43:47 BRT 2016
Certificate fingerprints:
	 MD5:  7F:A4:83:7F:4A:C4:F2:9F:DA:82:70:43:BD:42:35:EE
	 SHA1: 2D:77:EE:65:EE:4C:AA:DE:1A:EB:9A:EA:A5:00:6D:53:F8:6A:23:20
	 SHA256: F5:53:6C:22:66:27:B3:CB:82:87:39:9A:50:0D:BB:42:C3:45:6D:2E:0B:FD:BE:CC:52:7D:06:C3:32:6C:87:F5
	 Signature algorithm name: SHA1withRSA
	 Version: 3

Extensions: 

#1: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: caIssuers
   accessLocation: URIName: http://secure2.alphassl.com/cacert/gsalphag2.crt
, 
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp2.globalsign.com/gsalphag2
]
]

#2: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 14 EA 19 55 F0 0E 0D 32   C6 1F 74 33 B7 8E 66 1A  ...U...2..t3..f.
0010: 4C 12 31 1E                                        L.1.
]
]

#3: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:false
  PathLen: undefined
]

#4: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://crl2.alphassl.com/gs/gsalphag2.crl]
]]

#5: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [2.23.140.1.2.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 26 68 74 74 70 73 3A   2F 2F 77 77 77 2E 67 6C  .&https://www.gl
0010: 6F 62 61 6C 73 69 67 6E   2E 63 6F 6D 2F 72 65 70  obalsign.com/rep
0020: 6F 73 69 74 6F 72 79 2F                            ository/

]]  ]
]

#6: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
  serverAuth
  clientAuth
]

#7: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  DigitalSignature
  Key_Encipherment
]

#8: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  DNSName: sitenet43.serasa.com.br
]

#9: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1B 0D 77 B4 3F 71 7D B1   90 37 A9 82 8B 94 13 BB  ..w.?q...7......
0010: CF 3A 3B 78                                        .:;x
]
]

Trust this certificate? [no]:  yes
Certificate was added to keystore

Observe que para finalizar, ele pergunta “Trust this certificate?”, responda “yes”.

Agora vamos listar a chave importada, ver se ficou legal (use a password usada acima).

$ /opt/java/bin/keytool -list -keystore serasa-prod.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

serasa, Dec 29, 2014, trustedCertEntry, 
Certificate fingerprint (SHA1): 2D:77:EE:65:EE:4C:AA:DE:1A:EB:9A:EA:A5:00:6D:53:F8:6A:23:20

Pronto, agora você tem uma Java Key Store para usar com seus certificados, enjoy!