Original Publish date : 8/28/2018
In this blog post we will see how to perform different operation on KSS keystore using WLST:
1) List the available KSS keystores :
wls:/offline> connect()
// Create an object of OPSS KeyStoreService
wls:/wdsoaqau_domain/serverConfig/> svc = getOpssService(name=’KeyStoreService’)
wls:/wdsoaqau_domain/serverConfig/> svc.listKeyStores(appStripe=’*’)
2) List the certificates in KSS DemoTrust keystore (i.e list all the alias of a KSS keystore) :
This is similar to “keytool -list -keystore <>” command.
NOTE : the password for KSS trust keystore is the same as the weblogic user’s password.
svc.listKeyStoreAliases(appStripe=’system’, name=’trust’, password=’welcome1′, type=’*’)
3) Print the details of a particular certificate in KSS keystore
This is similar to “keytool -list -v -alias <> -keystore <>” command.
svc.getKeyStoreCertificates(appStripe=’system’, name=’trust’, password=’welcome1′, alias=’democa’)
4) List the certificates in demoIdentity KSS keystore :
This is similar to “keytool -list -v -keystore <> -alias <>”
NOTE :
The storepass for demoIdentity KSS keystore is : DemoIdentityKeyStorePassPhrase
and the alias is : DemoIdentity
svc.getKeyStoreCertificates(appStripe=’system’, name=’demoidentity’, password=’DemoIdentityKeyStorePassPhrase’, alias=’DemoIdentity’)
5) Convert a KSS keystore to JKS keystore :
NOTE :
In this scenario we are trying to convert demoIdentity KSS keystore to demoIdentity JKS keystore.
Storepass : DemoIdentityKeyStorePassPhrase
Keypass : DemoIdentityPassPhrase
Alias : DemoIdentity
svc.exportKeyStore(appStripe=’system’, name=’demoidentity’, password=’DemoIdentityKeyStorePassPhrase’, aliases=’DemoIdentity’, keypasswords=’DemoIdentityPassPhrase’,type= ‘JKS’,filepath=’/tmp/demoidentity_exported.jks’)
You can then list the JKS keystore using the following command :
keytool -list -v -keystore /tmp/demoidentity_exported.jks
6) Delete a certificate from KSS keystore :
svc.deleteKeyStoreEntry(appStripe=’opss’, name=’trustservice_ts’, password=’Welcome1′,alias=’xell’, keypassword=’Welcome1′)
7) Import a JKS keystore into KSS keystore :
svc.importKeyStore(appStripe=’opss’, name=’trustservice_ks’, password=’Welcome1′,aliases=’xell’, keypasswords=’Welcome1′, type=’JKS’, permission=true, filepath=’/opt/oracle/Middleware/user_projects/domains/iam_domain/config/fmwconfig/default-keystore.jks’)
NOTE :
password is the keystore password and keypassword is the password of the alias.
svc.importKeyStoreCertificate(appStripe=’appstripe1′, name=’keystore2′, password=’password’, alias=’mykey’, keypassword=’keypassword’, type=’Certificate’, filepath=’/tmp/cert.txt’)
8) Change certificate password :
NOTE :
password is the keystore password and keypassword is the password of the certificate alias.
svc.changeKeyPassword(appStripe=’system1′, name=’keystore’, password=’password’, alias=’testkey’, currentkeypassword=’currentkeypassword’, newkeypassword=’newkeypassword’)
9) Export a certificate or Trusted Certificate :
NOTE :
password is the keystore password and keypassword is the password of the alias.
svc.exportKeyStoreCertificate(appStripe=’appstripe1′, name=’keystore2′, password=’password’, alias=’mykey’, keypassword=’keypassword’, type=’Certificate’, filepath=’/tmp/cert.txt’)
10) Generate a keypair :
NOTE :
password is the keystore password and keypassword is the password of the alias.
svc.generateKeyPair(appStripe=’appstripe2′, name=’keystore2′, password=’password’, dn=’cn=www.example.com’, keysize=’1024′, alias=’myalias’, keypassword=’keypassword’)
11) Generate CSR for a keypair :
NOTE :
password is the keystore password and keypassword is the password of the alias. The CSR is exported to an operating system file.
svc.exportKeyStoreCertificateRequest(appStripe=’stripe1′, name=’keystore1′, password=’password’, alias=’testalias’, keypassword=’keypassword’, filepath=’/tmp/csr-file’)
NOTE :
Keystore Service supports import of PEM/BASE64-encoded certificates only. You cannot import DER-encoded certificates or trusted certificates into a KSS keystore.
12) Export KSS to Oracle Wallet :
svc.exportKeyStore(appStripe=’mystripe’, name=’keystore3′, password=’mypassword’,aliases=’myorakey1,myorakey2′, keypasswords=”, type=’OracleWallet’,path=’/tmp’)
13) Import a wallet to KSS keystore :
svc.importKeyStore(appStripe=’mystripe’, name=’keystore4′, password=’owPwd1234′,aliases=’myorakey1,myorakey2′, keypasswords=”, type=’OracleWallet’, permission=true, filepath=’/tmp’)
