Wenn der Standard Tomcat in der SSL-Kontrolle schlecht abschneidet, dann muß man anscheinend erst mal das APR dazunehmen und dieses auch noch um einen Aufruf erweitern.

In tomcat-native-1.1.24-src/jni/native/src/sslcontext.c gibg es dazu diese Ergänzung in der Funktion setCipherSuite ab etwa Zeile 278:

sslcontext.c

270a271,278

>
> if (!SSL_CTX_set_options(c->ctx, SSL_OP_CIPHER_SERVER_PREFERENCE)) {
> char err[256];
> ERR_error_string(ERR_get_error(), err);
> tcn_Throw(e, „Unable to configure permitted cipher order (%s)“, err);
> rv = JNI_FALSE;
> }
>

und der passende Aufruf im server.xml dazu lautet auszugsweise:

<Listener className=“org.apache.catalina.core.AprLifecycleListener“ SSLEngine=“on“ />

<Connector port=“443″ protocol=“HTTP/1.1″ SSLEnabled=“true“
SSLCertificateFile=“${catalina.base}/conf/ssl/ssl.crt“
SSLCertificateKeyFile=“${catalina.base}/conf/ssl/ssl.key“
SSLCACertificateFile=“${catalina.base}/conf/ssl/ca.pem“
SSLCertificateChainFile=“${catalina.base}/conf/ssl/sub.class1.server.ca.pem“
maxThreads=“150″ scheme=“https“ secure=“true“
SSLCipherSuite=“RC4-SHA:HIGH:!ADH“
clientAuth=“false“ sslProtocol=“TLS“ />

Damit kriege ich nun die gleiche gute Punktzahl (A85) wie ein normaler Apache für PHP und das alles.

Läuft unter debian mit Tomcat 7 und Java 7 nun problemlos.