Okie doke, je crois que je viens de trouver la solution.
Comme je l'ai dit plus haut, l'essentiel est que le certificat n'a pas d'importance, tant qu'il est généré avec un algorithme qui prend en charge le cryptage AES 256 bits (par exemple, RSA). Pour être sûr que nous sommes sur la même longueur d'onde, pour mes tests, j'ai généré mon certificat auto-signé en utilisant ce qui suit :
keytool -genkey -alias tomcat -keyalg RSA
Vous devez maintenant vous assurer que votre implémentation Java sur votre serveur prend en charge AES-256, et c'est là que le bât blesse. J'ai effectué mes tests sur une machine OS X (OS 10.5), et lorsque j'ai vérifié la liste des algorithmes de chiffrement pris en charge par défaut, AES-256 n'était PAS sur la liste, ce qui explique pourquoi l'utilisation du certificat que j'ai généré ci-dessus n'a créé qu'une connexion AES-128 entre mon navigateur et Tomcat. cette liste de JDK 5 .)
Pour être complet, voici la petite application Java que j'ai créée pour vérifier les chiffres pris en charge par ma boîte :
import java.util.Arrays;
import javax.net.ssl.SSLSocketFactory;
public class CipherSuites {
public static void main(String[] args) {
SSLSocketFactory sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault();
String[] ciphers = sslsf.getDefaultCipherSuites();
Arrays.sort(ciphers);
for (String cipher : ciphers) {
System.out.println(cipher);
}
}
}
Il s'avère que le JDK 5, qui est installé par défaut sur cette machine OS X, a besoin des "Unlimited Strength Jurisdiction Policy Files" pour indiquer à Java qu'il est possible d'utiliser les niveaux de cryptage supérieurs. vous trouverez ces fichiers ici (faites défiler la page et regardez en haut de la section "Autres téléchargements"). Je ne suis pas sûr que le JDK 6 ait besoin de la même chose, mais les mêmes fichiers de stratégie pour le JDK 6 sont disponibles ici donc je suppose que c'est le cas. Décompressez ce fichier, lisez le README pour voir comment installer les fichiers à leur place, puis vérifiez à nouveau les algorithmes de chiffrement supportés... Je parie que AES-256 est maintenant sur la liste.
Si c'est le cas, vous devriez être tranquille ; redémarrez simplement Tomcat, connectez-vous à votre instance SSL, et je parie que vous verrez maintenant une connexion AES-256.