web-dev-qa-db-fra.com

"Le certificat a expiré" dans le journal en démarrant Glassfish 3.1.2

Aujourd'hui, en lançant mon glassfish, j'ai vu un message d'erreur concernant un certificat expiré ...

Quelqu'un peut-il m'aider et dire ce que je peux/dois faire?

Voici le message:

     ...
     [exec]
     [exec] [#|2013-08-15T08:57:42.106+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.Sun.enterprise.v3.services.impl|_ThreadID=39;_ThreadName=Thread-2;|Grizzly
Framework 1.9.50 started in: 16ms - bound to [0.0.0.0:1307 6]|#]
     [exec]
     [exec] [#|2013-08-15T08:57:42.262+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.Sun.enterprise.v3.server|_ThreadID=1;_ThreadName=Thread-2;|GlassFish
Server Open Source Edition 3.1.2.2 (5) startup time : Felix (1'1
23ms), startup services(609ms), total(1'732ms)|#]
     [exec]
     [exec] [#|2013-08-15T08:57:42.309+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.ssl.security.com.Sun.enterprise.security.ssl.impl|_ThreadID=40;_ThreadName=Thread-2;|SEC5054:
Certificate has expired: [
     [exec] [
     [exec]   Version: V3
     [exec]   Subject: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
     [exec]   Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
     [exec]
     [exec]   Key:  Sun RSA public key, 2048 bits
     [exec]   modulus: 237418898293472616608124373663877543854434319738611148654904141538840503317458119685231168476255701465927369352097185652960533868421359855348631579831288127741629980536737464707822524076734022381468699944387
29551246768368782318393878374421033907597162218758024581735139682087126982809511479059100617027892880227587855877479432885604404402435662802390484099065871430585284534529627347717530352189612077130606642676951640071336717026459037
542552927905851171460589361570392199748753414855675665635003335769915908187224347232807336022456537328962095005323382940080676931822787496212635993279098588863972868266229522169377
     [exec]   public exponent: 65537
     [exec]   Validity: [From: Fri Aug 14 16:50:00 CEST 1998,
     [exec]                To: Thu Aug 15 01:59:00 CEST 2013]
     [exec]   Issuer: CN=GTE CyberTrust Root 5, OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US
     [exec]   SerialNumber: [    01b6]
     [exec]
     [exec] Certificate Extensions: 4
     [exec] [1]: ObjectId: 2.5.29.19 Criticality=true
     [exec] BasicConstraints:[
     [exec]   CA:true
     [exec]   PathLen:5
     [exec] ]
     [exec]
     [exec] [2]: ObjectId: 2.5.29.32 Criticality=false
     [exec] CertificatePolicies [
     [exec]   [CertificatePolicyId: [1.2.840.113763.1.2.1.3]
     [exec] []  ]
     [exec] ]
     [exec]
     [exec] [3]: ObjectId: 2.5.29.15 Criticality=true
     [exec] KeyUsage [
     [exec]   Key_CertSign
     [exec]   Crl_Sign
     [exec] ]
     [exec]
     [exec] [4]: ObjectId: 2.5.29.14 Criticality=false
     [exec] SubjectKeyIdentifier [
     [exec] KeyIdentifier [
     [exec] 0000: 76 0A 49 21 38 4C 9F DE   F8 C4 49 C7 71 71 91 9D  v.I!8L....I.qq..
     [exec] ]
     [exec] ]
     [exec]
     [exec] ]
     [exec]   Algorithm: [SHA1withRSA]
     [exec]   Signature:
     [exec] 0000: 41 3A D4 18 5B DA B8 DE   21 1C E1 8E 09 E5 F1 68  A:..[...!......h
     [exec] 0010: 34 FF DE 96 F4 07 F5 A7   3C F3 AC 4A B1 9B FA 92  4.......<..J....
     [exec] 0020: FA 9B ED E6 32 21 AA 4A   76 C5 DC 4F 38 E5 DF D5  ....2!.Jv..O8...
     [exec] 0030: 86 E4 D5 C8 76 7D 98 D7   B1 CD 8F 4D B5 91 23 6C  ....v......M..#l
     [exec] 0040: 8B 8A EB EA 7C EF 14 94   C4 C6 F0 1F 4A 2D 32 71  ............J-2q
     [exec] 0050: 63 2B 63 91 26 02 09 B6   80 1D ED E2 CC B8 7F DB  c+c.&...........
     [exec] 0060: 87 63 C8 E1 D0 6C 26 B1   35 1D 40 66 10 1B CD 95  .c...l&.5.@f....
     [exec] 0070: 54 18 33 61 EC 13 4F DA   13 F7 99 AF 3E D0 CF 8E  T.3a..O.....>...
     [exec] 0080: A6 72 A2 B3 C3 05 9A C9   27 7D 92 CC 7E 52 8D B3  .r......'....R..
     [exec] 0090: AB 70 6D 9E 89 9F 4D EB   1A 75 C2 98 AA D5 02 16  .pm...M..u......
     [exec] 00A0: D7 0C 8A BF 25 E4 EB 2D   BC 98 E9 58 38 19 7C B9  ....%..-...X8...
     [exec] 00B0: 37 FE DB E2 99 08 73 06   C7 97 83 6A 7D 10 01 2F  7.....s....j.../
     [exec] 00C0: 32 B9 17 05 4A 65 E6 2F   CE BE 5E 53 A6 82 E9 9A  2...Je./..^S....
     [exec] 00D0: 53 0A 84 74 2D 83 CA C8   94 16 76 5F 94 61 28 F0  S..t-.....v_.a(.
     [exec] 00E0: 85 A7 39 BB D7 8B D9 A8   B2 13 1D 54 09 34 24 7D  ..9........T.4$.
     [exec] 00F0: 20 81 7D 66 7E A2 90 74   5C 10 C6 BD EC AB 1B C2   ..f...t\.......
     [exec]
     [exec] ]|#] ...
26
Francesco

Nous utilisons également Glassfish et Arquillian intégrés pour nos tests d’intégration. Malheureusement, nous ne pouvons exécuter aucun test avant la sortie d’une nouvelle version de Glassfish intégré. En attendant, voici ce que j'ai fait:

  1. Trouvez le pot Glassfish intégré dans votre cache Maven local. Le mien se trouvait dans le\chemin d'accès\local\maven\repo\org\glassfish\main\extras\glassfish-embedded-all\3.1.2\glassfish-embedded-all-3.1.2.jar
  2. Ouvrez le fichier JAR avec un logiciel d’archivage. J'ai utilisé 7-Zip.
  3. Extrayez config\cacerts.jks dans un dossier.
  4. Exécutez\path\to\jdk\bin\keytool -delete -v -alias gtecybertrust5ca -keystore cacerts.jks. Lorsque le mot de passe est demandé, entrez: changeit
  5. Copiez cacerts.jks dans le fichier jar intégré à Glassfish en remplaçant l'ancien magasin de clés.
  6. Exécutez à nouveau vos tests.

Je viens de trouver une solution similaire de heather92115 dans un article lié ( https://stackoverflow.com/a/18343639/1540666 ) qui pourrait être un peu meilleur. N'oubliez pas de supprimer le magasin de clés modifié de votre projet lorsqu'une version mise à jour de Glassfish intégrée est publiée.

10
BoneGoat

Mon système d'exploitation est Windows 2003 et j'ai résolu le problème comme suit

  1. j'ai ouvert la console cmd du système Windows dans C:\glassfish3\jdk 7\bin, dans ce dossier se trouvait l'outil de clé

  2. Trouvez tous les cacerts.jks dans le répertoire glassfish, dans mon cas, je les trouve tous dans C:\glassfish3\glassfish\domain\domain1\config et C:\glassfish3\glassfish\lib\templates

  3. liste tous les certificats de cacerts.jks, le keytool de Java peut le faire. J'ai copié le fichier cacerts.jks dans le dossier keytool mais cela reste facultatif si keytool fonctionne bien: C:\glassfish3\jdk7\bin> keytool -list -v -keystore cacerts.jks -storepass changeit> listaCertificados.txt

  4. dans le fichier listaCertificados.txt créé à l'étape précédente, j'ai vérifié tous les certificats expirés

  5. j'ai supprimé le gtecybertrust5ca certifié qui a expiré en août 2013. La commande est la suivante: keytool -delete -alias gtecybertrust5ca -keystore cacerts.jks -storepass changeit

  6. j'ai changé le fichier de nom de cacerts.jks qui se trouvait dans C:\glassfish3\glassfish\domain\domain1\config, puis j'ai copié le fichier cacerts.jks de C:\glassfish3\jdk7\bin vers C:\glassfish3\glassfish \. domaines\domaine1\config

  7. j'ai appliqué la même procédure à C:\glassfish3\glassfish\lib\templates\cacerts.jks

  8. enfin j'ai rechargé le serveur glassfish

Désolé pour mon anglais, je ne parle pas cette langue mais je veux aider

8
user2765762

fais juste 

domain=domain1
asadmin stop-domain $domain
cd $(dirname `which asadmin`)/../glassfish/domains/config
cp cacerts.jks{,.bak}
keytool -delete -alias gtecybertrust5ca -keystore cacerts.jks -storepass changeit
cd -
asadmin start-domain $domain
4
test30

La solution fournie par BoneGoat a également fonctionné pour le glassfish-embedded-web-3.1.2.2.jar. Depuis que j'utilise Maven, j'ai suivi les étapes de BoneGoat pour le pot, puis téléchargé dans notre référentiel Nexus local avec un nom de version mis à jour. J'ai ensuite mis à jour mes dépendances:

                <groupId>org.glassfish.main.extras</groupId>
                <artifactId>glassfish-embedded-web</artifactId>
                <version>3.1.2.2-fixed-cert</version>
                <scope>test</scope>

Remarque: je n'ai pas eu de chance avec la version 4.0 du bocal. (Il peut y avoir des incompatibilités avec arquillian et la nouvelle version.)

Vous pouvez également trouver des informations utiles dans cette question Arquillian Embedded Glassfish Certificate Expired

0
peater

Vous pouvez maintenant obtenir les certificats dans le package OpenJDK - voir https://dzone.com/articles/openjdk-10-now-includes-root-ca-certificates

Pour une installation Docker, vous pouvez faire quelque chose comme ceci:

# Set glassfish env
ENV GLASSFISH_HOME /opt/glassfish5/glassfish

# Get latest cacerts from OpenJDK project
RUN wget https://hg.openjdk.Java.net/jdk/jdk/raw-file/tip/src/Java.base/share/lib/security/cacerts && \
    mv cacerts $GLASSFISH_HOME/domains/domain1/config/cacerts.jks

Une installation manuelle serait similaire

0
aaronvargas

Des solutions dans d'autres réponses peuvent fonctionner ....

Cependant, je vous recommande de ne pas perdre votre temps à vous amuser avec les certificats, il suffit de réinstaller Glassfish et le problème serait résolu.

0
Zich