title: Keystore and Certificate concepts
body: <p>After I did some research about keystore and certificate, I found the following guides:</p>
  
  <ol>
  <li><a href="https://stackoverflow.com/questions/5724631/understanding-keystore-certificates-and-alias">Understanding keystore, certificates and alias</a></li>
  <li><a href="https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores" rel="noreferrer">Java Keytool Essentials: Working with Java Keystores</a></li>
  </ol>
  
  <p>Correct me if I am wrong. From what I understand (and tested):</p>
  
  <ol>
  <li>Using "keytool -genkeypair -alias testingkeypair -keyalg RSA -keystore keystore.jks" in cmd will generate a keystore.jks file which contains a private and public key pair with alias "domain"</li>
  <li>The keystore.jks file is then used to sign/export certificates </li>
  <li>The keystore.jks file can also be used to store multiple certificates</li>
  </ol>
  
  <p>The thing that I do not understand is that, before I import any certificate into the keystore.jks file, when I try to see what is inside (using keytool -list -v -keystore keystore.jks), there appears to be a certificate already inside. Is it a default certificate for that keystore? I thought "keytool -genkeypair" will only generate a keystore with a keypair?</p>
  
  <p>The result of keytool -list -v -keystore keystore.jks :</p>
  
  <blockquote>
    <p>Keystore type: JKS Keystore provider: SUN</p>
    
    <p>Your keystore contains 1 entry</p>
    
    <p>Alias name: testingkeypair  Creation date: Jan 11, 2016  Entry type:
    PrivateKeyEntry  Certificate chain length: 1  Certificate:
    Owner:CN=testing, OU=testing, O=testing, L=testing, ST=testing,
    C=testing Issuer: CN=testing, OU=testing, O=testing, L=testing,
    ST=testing, C=testing  Serial number: 650d8951 Valid from: Mon Jan 11
    14:43:52 SGT 2016 until: Sun Apr 10 14:43:52 SGT 2016 Certificate
    fingerprints:
             MD5:  F0:74:9F:27:F0:08:AB:A0:BE:B2:A0:F2:94:45:94:90
             SHA1: 87:0C:E2:E2:06:A6:52:4E:0C:40:E9:B0:DE:75:A7:8C:CC:01:45:57
             SHA256: D1:B2:63:F0:85:A7:06:2E:7D:2B:E1:1E:91:9E:62:56:22:E7:61:36:E6:
    23:8A:6F:21:EF:2B:79:0D:12:B8:38
             Signature algorithm name: SHA256withRSA
             Version: 3</p>
  </blockquote>