Comment créer un keystore Java avec Keytool dans FMW 11g/12c
S'APPLIQUE À :
Oracle WebLogic Server - Version 10.3.1 à 12.1.3.0.0
Oracle Fusion Middleware - Version 11.1.1.1.0 à 12.1.3.0.0 [Release Oracle11g à 12c]
Les informations de ce document s'appliquent à toutes les plateformes.
OBJECTIF
Comment créer un Java KeyStore (JKS) avec Keytool dans FMW 11g/12c
SOLUTION
FMW 11g
Cette note fait partie d'une série d'articles consacrés à la configuration SSL dans FMW 11g.
Veuillez lire la note 1218695.1 Master Note for SSL Configuration in Fusion Middleware 11g
Assurez-vous d'avoir lu la note 1218603.1 Understanding Wallets and Keystores in Fusion Middleware 11g/12c avant de suivre cet article.
Suivez cette note pour créer un Java KeyStore pour WebLogic Server (WLS), SOA, WebCenter, Directory Intergration and Provisioning (DIP) et Oracle Directory Server Manager (ODSM).
Pour créer un keystore pour Oracle Virtual Directory, consultez : 7.3.3.1 Creating a Keystore Using Fusion Middleware Control ou 7.3.3.2 Creating a Keystore Using WLST
FMW 12c
Cette note fait partie d'une série d'articles consacrés à la configuration SSL dans FMW 12c.
Veuillez lire la note 1628909.1 Master Note for SSL Configuration in Fusion Middleware 12c
Assurez-vous d'avoir lu la note 1218603.1 Understanding Wallets and Keystores in Fusion Middleware 11g/12c avant de suivre cet article.
Comment créer un keystore Java avec Keytool dans FMW 11g/12c
Toutes les commandes ci-dessous font référence à $MIDDLEWARE_HOME pour FMW 11g. Si vous utilisez FMW 12c, remplacez $MIDDLEWARE_HOME par $ORACLE_HOME.
1. Créez un répertoire, par exemple : $MIDDLEWARE_HOME/keystores
2. Exécutez la commande suivante pour définir l'environnement sous UNIX :
cd $MIDDLEWARE_HOME/user_projects/domains/<domain>/bin
> . ./setDomainEnv.sh
Ou sous Windows :
cd %MIDDLEWARE_HOME%\user_projects\domains\<domain>\bin
setDomainEnv.cmd
3. Créez un keystore et une clé privée en exécutant la commande suivante :
keytool -genkey -alias <alias> -keyalg RSA -keysize 1024 -sigalg SHA256withRSA -dname <dn> -keypass <password> -keystore <keystore> -storepass <password>
Par exemple :
$MIDDLEWARE_HOME/keystores> keytool -genkey -alias server_cert -keyalg RSA -keysize 1024 -sigalg SHA256withRSA -dname "CN=server.uk.oracle.com,OU=Support,O=Oracle,L=Reading,ST=Berkshire,C=GB" -keypass welcome -keystore keystore.jks -storepass welcome
où server.uk.oracle.com est le host.domain du serveur.
Important : la commande ci-dessus n'est qu'un EXEMPLE. Vous pouvez modifier tous les paramètres selon ce que permet l'outil et ce qu'indique la documentation Oracle de votre version.
Notez bien les paramètres -alias, -keypass et -storepass, car ils seront nécessaires plus loin dans la procédure.
4. À ce stade, faites une sauvegarde du keystore, par ex. : keystore.jks
5. Pour afficher le contenu du keystore créé, exécutez la commande suivante :
keytool -list -v -keystore <keystore> -storepass <password>
Par exemple :
keytool -list -v -keystore keystore.jks -storepass welcome
$MIDDLEWARE_HOME/keystores> keytool -list -v -keystore keystore.jks -storepass welcome
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
Alias name: server_cert
Creation date: Sep 13, 2010
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=server.uk.oracle.com, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Issuer: CN=server.uk.oracle.com, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Serial number: 4c8e1ad5
Valid from: Mon Sep 13 13:36:37 BST 2010 until: Sun Dec 12 12:36:37 GMT 2010
Certificate fingerprints:
MD5: 1A:4A:3B:42:7E:BD:94:65:67:0E:9B:02:28:90:D6:A8
SHA1: C1:53:48:50:EB:F1:FD:A0:DC:28:9F:EF:3B:C8:FB:22:82:9F:8E:EE
Signature algorithm name: SHA256withRSA
Version: 3
*******************************************
*******************************************
Si un certificat autosigné vous convient, ce keystore suffit et vous pouvez passer à l'étape 12. Sinon, si vous avez besoin d'un véritable certificat signé par une autorité de certification (CA) reconnue, poursuivez ci-dessous.
6. Créez une demande de signature de certificat (Certificate Signing Request, CSR) avec la commande suivante :
keytool -certreq -v -alias <alias> -file <filename> -sigalg SHA256withRSA -keypass <password> -storepass <password> -keystore <keystore>
Par exemple :
MIDDLEWARE_HOME/keystores/> keytool -certreq -v -alias server_cert -file server.csr -sigalg SHA256withRSA -keypass welcome -storepass welcome -keystore keystore.jks
Assurez-vous d'utiliser les mêmes valeurs -alias, -storepass et -keypass qu'à l'étape 3.
La CSR créée (server.csr) ressemble à ceci :
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBtzCCASACAQAwdzELMAkGA1UEBhMCR0IxEjAQBgNVBAgTCUJlcmtzaGlyZTEQMA
4GA1UEBxMHUmVhZGluZzEPMA0GA1UEChMGT3JhY2xlMRAwDgYDVQQLEwdTdXBwb3J0
MR8wHQYDVQQDExZtYXJzaGFsbC51ay5vcmFjbGUuY29tMIGfMA0GCSqGSIb3DQEBA
QUAA4GNADCBiQKBgQCEopgMZp1lI6jWXxb1rM1kWIc1l8bhiV/0UTcsdKzeaSHxbO
SLO3Ed9kxNWAZgXaR9f5FBlwRJ+IR163e64v3SplHenxHfVRaHYWPZx4KlJz/6p
Yd1fAlF0PdQm1DNoFtKmCHVk/cRuvGRpsp38l7K2mYlyQ+GxH38llS7g3owIDAQAB
oAAwDQYJKoZIhvcNAQEFBQADgYEAD/sG1+rSI76OjihHg3WezT+VIbSRJxyly9nbx
4uwXbDHh8DGgQLAXV51C9ioaMrm+dM0eygVDDMESXFxvJiYipS/pphgYt1xDBgnEH
GcNiX3BnTaLNtzYlc5eAMsmbDlpk/qOxvQiH3bKN+UKYQlBXJZWPL6FusXu2LMTrk
zsY=
-----END NEW CERTIFICATE REQUEST-----
7. Envoyez cette CSR à l'autorité de certification (CA) de votre choix.
8. Une fois le certificat reçu, vous devrez l'importer dans votre keystore, avec le ou les certificats de l'autorité racine de confiance (Trusted Root CA) qui l'ont signé.
Remarque : si vous ne savez pas quels sont les bons certificats de confiance, consultez la note 1368940.1 How To Identify The Correct Trusted Root Certificate Authority Certificate(s) for a User Certificate?
Enregistrez le certificat du serveur dans un fichier nommé server.cer. Enregistrez le certificat racine de l'autorité de certification dans un fichier nommé rootCA.cer, dans le répertoire de votre keystore, par ex. $MIDDLEWARE_HOME/keystores. Répétez cette étape pour chacun des autres certificats Root CA de la chaîne, par ex. rootCA2.cer, etc.
9. Importez le certificat racine de la CA dans votre keystore avec la commande suivante :
keytool -import -v -noprompt -trustcacerts -alias <alias>
-file <rootca_file> -keystore <keystore> -storepass <password>
Par exemple :
$ORACLE_MIDDLEWARE/keystores> keytool -import -v -noprompt -trustcacerts -alias rootcacert
-file rootCA.cer -keystore keystore.jks -storepass welcome
Certificate was added to keystore
[Storing keystore.jks]
Répétez l'opération pour chaque certificat Root CA de la chaîne, en utilisant un alias différent chaque fois.
10. Importez le certificat du serveur dans votre keystore avec la commande suivante :
keytool -import -v -alias <alias> -file <server_cert_file> -keystore <keystore> -keypass <password> -storepass <password>
Par exemple :
$MIDDLEWARE_HOME/keytores> keytool -import -v -alias server_cert -file server.cer -keystore keystore.jks -keypass welcome -storepass welcome
Certificate reply was installed in keystore
[Storing keystore.jks]
Assurez-vous d'utiliser le même -alias qu'à l'étape 3.
11. Pour afficher le contenu du keystore, exécutez la commande suivante :
keytool -list -v -keystore keystore.jks -storepass welcome
Par exemple :
$MIDDLEWARE_HOME/keystores> keytool -list -v -keystore keystore.jks -storepass welcome
Alias name: rootcacert
Creation date: Sep 13, 2010
Entry type: trustedCertEntry
Owner: CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Issuer: CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Serial number: c47f4774c2ef014c
Valid from: Fri Jan 09 10:27:18 GMT 2009 until: Mon May 26 11:27:18 BST 2036
Certificate fingerprints:
MD5: E9:24:39:56:DE:34:44:DB:46:93:45:93:8E:82:66:AC
SHA1: 17:39:92:C0:43:9B:28:F3:C2:54:55:9B:5E:97:CA:EE:71:5D:9C:26
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 67 57 BA 54 BB 9B C0 38 9A 71 AA 28 82 23 4B 08 gW.T...8.q.(.#K.
0010: 72 B9 FC C1 r...
]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.35 Criticality=false
[CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB]
SerialNumber: [ c47f4774 c2ef014c]
]
*******************************************
*******************************************
Alias name: server_cert
Creation date: Sep 13, 2010
Entry type: PrivateKeyEntry
Certificate chain length: 2
Certificate[1]:
Owner: CN=server.uk.oracle.com, OU=Support, O=Oracle, L=Reading, ST=Berkshire,
C=GB
Issuer: CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Serial number: e
Valid from: Mon Sep 13 14:02:00 BST 2010 until: Sat Sep 22 14:02:00 BST 2012
Certificate fingerprints:
MD5: CB:B8:07:32:22:B5:76:78:44:BB:94:D2:CE:EF:A3:CA
SHA1: 1E:3E:C6:BC:17:EB:43:50:19:01:0B:11:50:D8:23:60:21:B2:57:3E
Signature algorithm name: SHA256withRSA
Version: 1
Certificate[2]:
Owner: CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB
Issuer: CN=SSL Training CA, OU=Support, O=Oracle, L=Readin g, ST=Berkshire, C=GB
Serial number: c47f4774c2ef014c
Valid from: Fri Jan 09 10:27:18 GMT 2009 until: Mon May 26 11:27:18 BST 2036
Certificate fingerprints:
MD5: E9:24:39:56:DE:34:44:DB:46:93:45:93:8E:82:66:AC
SHA1: 17:39:92:C0:43:9B:28:F3:C2:54:55:9B:5E:97:CA:EE:71:5D:9C:26
Signature algorithm name: SHA256withRSA
Version: 3
Extensions:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 67 57 BA 54 BB 9B C0 38 9A 71 AA 28 82 23 4B 08 gW.T...8.q.(.#K.
0010: 72 B9 FC C1 r...
]
]
#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:true
PathLen:2147483647
]
#3: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 67 57 BA 54 BB 9B C0 38 9A 71 AA 28 82 23 4B 08 gW.T...8.q.(.#K.
0010: 72 B9 FC C1 r...
]
[CN=SSL Training CA, OU=Support, O=Oracle, L=Reading, ST=Berkshire, C=GB]
SerialNumber: [ c47f4774 c2ef014c]
]
*******************************************
*******************************************
12. Le keystore est maintenant prêt à l'emploi. Pour l'utiliser avec WLS, reportez-vous à la Master Note de votre version :
Note 1218695.1 Master Note for SSL Configuration in Fusion Middleware 11g
ou
Note 1628909.1 Master Note for SSL Configuration in Fusion Middleware 12c