18
0
Fork 0
wiki/HowtoJava.md

4.6 KiB

Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.

Howto Java

http://docs.oracle.com/javase/

http://openjdk.java.net/

Installation Java

Sous Debian 6, Sun Java 6 ou OpenJDK 6. Sous Debian 7, OpenJDK 6 ou 7. Sous Debian 8, OpenJDK 7 (ou 8 via backports).

Installer OpenJDK 8 sous Debian 7

à compléter.

Installer Oracle Java 8 sous Debian 7 et 8

Le plus simple est de créer un package automatiquement en utilisant le tar.gz du site oracle. La procédure à suivre est ici : https://wiki.debian.org/JavaPackage

Java sécurité

Importer un certificat racine

Java stocke ces certificats dans un fichier, situé dans /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts (sous Debian).

Pour lister les certificats :

$ keytool -list -v -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts

Pour importer un nouveau certificat, on peut utiliser la commande keytool :

$ keytool -import -v -file certificat.cer -alias <mykey> -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts

(/usr/lib/jvm/java-6-sun/jre/lib/security/cacerts est en fait un lien symbolique vers /etc/java-6-sun/security/cacerts).

Il est ensuite demandé un mot de passe pour ouvrir la base de données des certificats. Par défaut, il s'agit de changeit.

Si vous ne précisez pas d'alias vous pourriez rencontrer l'erreur suivante :

keytool error: java.lang.Exception: Certificate not imported, alias <mykey> already exists

Basiquement, cela peut vouloir dire que le certificat a déjà été importé avec l'alias par défaut: mykey, il faudra donc trouver un autre nom pour importer le certificat.

Pour supprimer un certificat (parce qu'il est expiré par exemple) :

$ keytool -delete -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts -alias <mykey>

Java Cryptography Extension (JCE)

http://gcolpart.evolix.net/blog21/jce-non-limitees-sous-debian/

Sous squeeze :

Télécharger le fichier ici : http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip

# dpkg-divert --add --rename --divert /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/US_export_policy.jar.debianorig /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/US_export_policy.jar
# dpkg-divert --add --rename --divert /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/local_policy.jar.debianorig /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/local_policy.jar
- (Télécharger sur votre poste) sur le site d'oracle : <http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html> | scp sur le serveur
# cd /home/$USER
# unzip jce_policy-6.zip
# cp jce/US_export_policy.jar /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/
# cp jce/local_policy.jar /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/
# chmod 644 /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/security/*.jar

Il faut aussi modifier /etc/java-6-sun/security/java.security, en mettant les lignes suivantes après # List of providers and their preference orders (see above):

security.provider.1=org.jasypt.hibernate.type.EncryptedStringType
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.provider.Sun

Sous Wheezy avec JRE Oracle (pas OpenJDK) :

Télécharger le fichier ici : http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

# cd /home/$USER
# unzip UnlimitedJCEPolicyJDK7.zip
# cp UnlimitedJCEPolicy/US_export_policy.jar /usr/local/opt/jdk1.7.0_45/jre/lib/security/
# cp UnlimitedJCEPolicy/local_policy.jar /usr/local/opt/jdk1.7.0_45/jre/lib/security/
# chmod 644 /usr/local/opt/jdk1.7.0_45/jre/lib/security/*.jar

Il faut aussi modifier /usr/local/opt/jdk1.7.0_45/jre/lib/security/java.security, en mettant les lignes suivantes après # List of providers and their preference orders (see above):

security.provider.1=org.jasypt.hibernate.type.EncryptedStringType
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=com.sun.net.ssl.internal.ssl.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
security.provider.6=com.sun.security.sasl.Provider
security.provider.7=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.8=sun.security.smartcardio.SunPCSC
security.provider.9=sun.security.provider.Sun