Java commando's

Deze handleiding bevat een overzicht van veelgebruikte / nuttige Java Keytool commando's, toelichtingen van de gebruikte switches en voorbeelden.

Aanmaken Keystore en keypair

[root@server ssl]# keytool -genkey -alias naam -keyalg RSA -keystore bestandsnaam

  • -genkey - geeft aan dat een nieuw keypair (private key & public key) dient te worden aangemaakt.
  • -alias naam - kent een unieke naam toe aan de keypair. Noteer deze zorgvuldig.
  • -keyalg encryptiealgoritme - bepaalt welk encryptiealgoritme moet worden gebruikt voor de codering. Doorgaans is dit RSA.
  • -keystore bestandsnaam - maakt een keystore (een beveiligd bestand waarin de certificaten worden bewaard) aan met een bepaalde bestandsnaam.
    Let op: Een keystore wordt altijd beveiligd met een wachtwoord. Noteer deze zorgvuldig.

Voorbeeld

Het commando [root@server ssl]# keytool -genkey -alias www.sslcertificaten.nl -keyalg RSA -keystore www.sslcertificaten.nl.jks maakt een keystore aan dat www.sslcertificaten.nl.jks heet, en maakt een keypair (private + public key) aan met als naam (alias) www.sslcertificaten.nl binnen de keystore.

Aanmaken CSR

[root@server ssl]# keytool -certreq -keyalg RSA -alias keypairalias -file bestandsnaam.csr -keystore bestandsnaam

  • -certreq - geeft aan dat er een CSR moet worden gegenereerd aan de hand van de net aangemaakte Public Key
  • -file bestandsnaam - geeft aan wat het bestandsnaam van de CSR moet worden

Voorbeeld

Het commando [root@server ssl]# keytool -certreq -keyalg RSA -alias www.sslcertificaten.nl -file www.sslcertificaten.nl.csr -keystore www.sslcertificaten.nl.jks maakt aan de hand van de keypair (alias) www.sslcertificaten.nl dat zich bevindt in de keystore www.sslcertificaten.nl.jks een CSR aan met als naam www.sslcertificaten.nl.csr in de huidige map.

Installatie root- of intermediate certificaat

[root@server ssl]# keytool -import -trustcacerts -alias rootcertificaat -file rootcertificaat.crt -keystore keystorenaam

  • -import - geeft aan dat een bestand moet worden geïmporteerd.
  • -trustcacerts - geeft aan dat het te importeren bestand moet worden toegevoegd aan een speciale keystore cacerts. Deze keystore is toegankelijk in het hele systeem en is speciaal voor root- en intermediate certificaten. De standaardwachtwoord voor deze keystore is changeit.
  • -alias naam - de naam (alias) van het te gebruiken keypair, zoals opgegeven tijdens het aanmaken ervan.
  • -file bestandsnaam - het (pad naar) het root- of intermediate certificaatbestand dat moet worden geïmporteerd
  • -keystore bestandsnaam - geeft door in welke keystore het certificaat moet worden geïmporteerd.

Voorbeeld

Het commando [root@server ssl]# keytool -import -trustcacerts -alias rootcertificaat -file /etc/ssl/cert/root.crt -keystore www.sslcertificaten.nl.jks

Importeert het rootcertificaatbestand /etc/ssl/cert/root.crt in keystore www.sslcertificaten.nl.jks onder alias rootcertificaat.

Installatie domeincertificaat

[root@server ssl]# keytool -import -alias domeincertificaat -file bestandsnaam.crt -keystore keystorenaam

  • -import - geeft aan dat een bestand moet worden geïmporteerd.
  • -alias naam - kent het te importeren bestand de alias naam toe, waarmee het voortaan in de keystore wordt herkend.
  • -file bestandsnaam - het (pad naar) het root- of intermediate certificaatbestand dat moet worden geïmporteerd
  • -keystore bestandsnaam - geeft door in welke keystore het certificaat moet worden geïmporteerd.

Voorbeeld

Het commando [root@server ssl]# keytool -import -alias www_sslcertificaten_nl -file www_sslcertificaten_nl.crt -keystore www_sslcertificaten_nl.jks importeert het certificaatbestand www_sslcertificaten_nl.crt in keystore www_sslcertificaten_nl.jks onder de alias www_sslcertificaten_nl.

Verwijderen certificaat

[root@server ssl]# keytool -delete -alias aliasnaam -keystore keystorenaam

  • -delete - de nader te specificeren alias moet worden verwijderd
  • -alias - de naam binnen keytool (alias) van het te verwijderen certificaat
  • -keystore - de naam van de keystore waaruit het certificaat dient te worden verwijderd

Voorbeeld

Lijst opvragen met alle certificaten binnen een keystore

[root@server ssl]# keytool -list -v -keystore keystorenaam | more

  • -keystore - de naam van de keystore waarvan meer informatie wordt opgevraagd

Lijst opvragen met alle root- en intermediate certificaten in de CAcerts-keystore

[root@server ssl]# keytool -list -keystore $JAVA_HOME\lib\security\cacerts

# keytool -list -keystore \j2sdk\jre\lib\security\cacerts | more

OSX 10.6: keytool -list -v -keystore /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/lib/security/cacerts

Certificaat tonen

[root@server ssl]# keytool -printcert -v -file bestandsnaam

# keytool -printcert -v -file anycert.cer

 

.pfx bestand direct omzetten naar een keystore (.jks)

keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12 -destkeystore clientcert.jks -deststoretype JKS

Let op: Zorg dat het .pfx bestand alle certificaten bevat, dus ook het root en intermediate certifica(a)t(en).

SSLCheck

De SSLCheck controleert of je certificaat goed op je server is geïnstalleerd en of er mogelijke problemen zijn.