JRockit R28
Jest nowy JRockit, teraz z jeszcze lepszą diagnostyką. Oprócz tego ustandaryzowano (względem Sun JVM) opcje linii poleceń.
---
Przykład: aplikacja Grails udostępniająca m.in. WebService po SSL-u "przycina się"
JAVA_OPTS="-Xmanagement:ssl=false,authenticate=false,port=7091"
JAVA_OPTS="-Xmanagement:ssl=false,authenticate=false,port=7091"
grails run-app -Ddisable.auto.recompile=true i mamy już tylko problemy z handshake-em SSL
Stack TraceHandshake SSL potrzebuje dużej losowej liczby pierwszej i wisi na czytaniu z /dev/random - w systemie jest za mało entropii i operacja czytania jest blokująca. Workaround:
http-8443-1 [62] (RUNNABLE)
java.math.BigInteger.oddModPow line: 1821
java.math.BigInteger.modPow line: 1571
java.math.BigInteger.passesMillerRabin line: 884
java.math.BigInteger.primeToCertainty line: 730
java.math.BitSieve.retrieve line: 188
java.math.BigInteger.largePrime line: 606
java.math.BigInteger.line: 511
org.bouncycastle.crypto.generators.DHParametersHelper.generateSafePrimes line: not available
org.bouncycastle.crypto.generators.DHParametersGenerator.generateParameters line: not available
org.bouncycastle.jce.provider.JDKKeyPairGenerator$DH.generateKeyPair line: not available
com.sun.net.ssl.internal.ssl.DHCrypt.line: 76
com.sun.net.ssl.internal.ssl.ServerHandshaker.setupEphemeralDHKeys line: 797
com.sun.net.ssl.internal.ssl.ServerHandshaker.trySetCipherSuite line: 702
com.sun.net.ssl.internal.ssl.ServerHandshaker.chooseCipherSuite line: 633
com.sun.net.ssl.internal.ssl.ServerHandshaker.clientHello line: 425
com.sun.net.ssl.internal.ssl.ServerHandshaker.processMessage line: 139
com.sun.net.ssl.internal.ssl.Handshaker.processLoop line: 516
com.sun.net.ssl.internal.ssl.Handshaker.process_record line: 454
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord line: 884
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake line: 1112
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake line: 1139
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake line: 1123
org.apache.tomcat.util.net.jsse.JSSESocketFactory.handshake line: 160
org.apache.tomcat.util.net.JIoEndpoint.setSocketOptions line: 639
org.apache.tomcat.util.net.JIoEndpoint$Worker.run line: 454
java.lang.Thread.run line: 619
-Djava.security.egd=file:/dev/./urandom
Rozwiązanie problemów przy używaniu SSL z Firefoksa: cd ~/.grails/1.2.2/projects/ecc/plugins/springws-0.5.0/lib; mv bcprov-jdk14-1.43.jar bcprov-jdk14-1.43.jar--
W wirtualkach faktycznie cienko jest z entropią.
Workaround o zasięgu systemowym: instalujemy pakiet rng-tools i podajemy HRNGDEVICE=/dev/urandom
Rozwiązanie problemów przy używaniu SSL z Firefoksa: cd ~/.grails/1.2.2/projects/ecc/plugins/springws-0.5.0/lib; mv bcprov-jdk14-1.43.jar bcprov-jdk14-1.43.jar--