Как указать предпочитаемый сервером порядок наборов шифров SSL для Java?


Я использую Java 1.6 и netty 3.8 для HTTP / HTTPS сервера. Я сделал тест SSL по ssllab.com (https://www.ssllabs.com/ssltest/analyze.html ), и я получил результат для наборов шифров, как показано ниже.

Наборы шифров (сортируются по силе; сервер не имеет предпочтений )

Но, результат для google.com это что-то другое. https://www.ssllabs.com/ssltest/analyze.html?d=www.google.com&s=74.125.227.148

Наборы Шифров (протокол SSL 3+ Suites в сервер-предпочтительный порядок, то SSL 2 люкса, где используется)

Как установить порядок предпочтений на стороне сервера для наборов шифров? Есть ли у JSSE какое-либо свойство или API по этому поводу?

Заранее благодарю.

1 4

1 ответ:

Вы можете попробовать вызвать setEnabledCipherSuites() с массивом в желаемом порядке, но в документации JSSE нет ничего, что указывало бы, что он будет использовать этот порядок в качестве желаемого порядка, и нет ничего в TLS RFC 2246, что говорит, что сервер обязан подчиняться любому конкретному порядку при выборе среди наборов шифров, предложенных клиентом.

EDIT Возможно, вам лучше поставить обратный прокси-сервер Apache HTTPD перед вашим сервером и завершить SSL там. Apache HTTPD использует OpenSSL, который позволяет вам делать именно то, что вы ищете. Это также лучше для ситуаций, когда некоторые веб-приложения нуждаются в клиентских сертификатах, а другие нет, если вы, конечно, пишете веб-приложения.