[ 
https://issues.apache.org/jira/browse/GEODE-574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Deppe updated GEODE-574:
-----------------------------
    Description: 
When using SSL, I can configure particular ciphers to be used. Usually this is 
done on the server. When a client connects, it will typically present all the 
ciphers it supports and the server will then negotiate the common cipher to 
use. Gfsh also allows a specific set of ciphers to be used. The documentation 
states that the default is "any". However the option {{--ciphers=any}} fails 
the connection whereas without the option a connection is made.

I have a setup where I'm starting a Geode cluster with the following properties:
{noformat}
mcast-port=0
cluster-ssl-enabled=true
server-ssl-enabled=true
jmx-manager-ssl-enabled=true

cluster-ssl-keystore-type=jks
cluster-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
cluster-ssl-keystore-password=changeit
cluster-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
cluster-ssl-truststore-password=changeit
cluster-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
cluster-ssl-protocols=TLSv1.2

server-ssl-keystore-type=jks
server-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
server-ssl-keystore-password=changeit
server-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
server-ssl-truststore-password=changeit
server-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
server-ssl-protocols=TLSv1.2

jmx-manager-ssl-keystore-type=jks
jmx-manager-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
jmx-manager-ssl-keystore-password=changeit
jmx-manager-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
jmx-manager-ssl-truststore-password=changeit
jmx-manager-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
jmx-manager-ssl-protocols=TLSv1.2
{noformat}

The keystore was created with the following command:
{noformat}
keytool -genkey -alias self -keypass changeit -storepass changeit -keystore 
test.jks -keyalg EC -keysize 256 -dname "CN=Trusted"
{noformat}

The start script is as follows:

{noformat}
#!/usr/bin/env bash

set -x
set -e

GFSH=/Users/jdeppe/gemfire/82/bin/gfsh
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

pkill -9 -f ServerLauncher || true
pkill -9 -f LocatorLauncher || true

rm -rf locator1/*
rm -rf server1/*

$GFSH start locator \
  --name=locator1 \
  --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties \
  --port=19991

$GFSH start server \
  --name=server1 \
  --locators=localhost[19991] \
  --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties
{noformat}

If I run gfsh as follows it is able to connect:
{noformat}
$GFSH -e "connect --protocols=TLSv1.2 --locator=localhost[19991] --use-ssl 
--key-store=$PWD/trusted.jks --trust-store=$PWD/trusted.jks 
--key-store-password=changeit --trust-store-password=changeit" -e "list members"
{noformat}

However, if I add the option {{--ciphers=any}} to the command above it is not 
able to connect.

  was:
When using SSL, I can configure particular ciphers to be used. Usually this is 
done on the server. When a client connects, it will typically present all the 
ciphers it supports and the server will then negotiate the common cipher to 
use. Gfsh also allows a specific set of ciphers to be used. The documentation 
states that the default is "any". However the option {{--ciphers=any}} fails 
the connection whereas without the option a connection is made.

I have a setup where I'm starting a Geode cluster with the following properties:
{noformat}
mcast-port=0
cluster-ssl-enabled=true
server-ssl-enabled=true
jmx-manager-ssl-enabled=true

cluster-ssl-keystore-type=jks
cluster-ssl-keystore=/Users/jdeppe/debug/citi-ssl/trusted.jks
cluster-ssl-keystore-password=changeit
cluster-ssl-truststore=/Users/jdeppe/debug/citi-ssl/trusted.jks
cluster-ssl-truststore-password=changeit
cluster-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
cluster-ssl-protocols=TLSv1.2

server-ssl-keystore-type=jks
server-ssl-keystore=/Users/jdeppe/debug/citi-ssl/trusted.jks
server-ssl-keystore-password=changeit
server-ssl-truststore=/Users/jdeppe/debug/citi-ssl/trusted.jks
server-ssl-truststore-password=changeit
server-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
server-ssl-protocols=TLSv1.2

jmx-manager-ssl-keystore-type=jks
jmx-manager-ssl-keystore=/Users/jdeppe/debug/citi-ssl/trusted.jks
jmx-manager-ssl-keystore-password=changeit
jmx-manager-ssl-truststore=/Users/jdeppe/debug/citi-ssl/trusted.jks
jmx-manager-ssl-truststore-password=changeit
jmx-manager-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
jmx-manager-ssl-protocols=TLSv1.2
{noformat}

The keystore was created with the following command:
{noformat}
keytool -genkey -alias self -keypass changeit -storepass changeit -keystore 
test.jks -keyalg EC -keysize 256 -dname "CN=Trusted"
{noformat}

The start script is as follows:

{noformat}
#!/usr/bin/env bash

set -x
set -e

GFSH=/Users/jdeppe/gemfire/82/bin/gfsh
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`

pkill -9 -f ServerLauncher || true
pkill -9 -f LocatorLauncher || true

rm -rf locator1/*
rm -rf server1/*

$GFSH start locator \
  --name=locator1 \
  --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties \
  --port=19991

$GFSH start server \
  --name=server1 \
  --locators=localhost[19991] \
  --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties
{noformat}

If I run gfsh as follows it is able to connect:
{noformat}
$GFSH -e "connect --protocols=TLSv1.2 --locator=localhost[19991] --use-ssl 
--key-store=$PWD/trusted.jks --trust-store=$PWD/trusted.jks 
--key-store-password=changeit --trust-store-password=changeit" -e "list members"
{noformat}

However, if I add the option {{--ciphers=any}} to the command above it is not 
able to connect.


> Gfsh option --ciphers=any does not work the same as without the option
> ----------------------------------------------------------------------
>
>                 Key: GEODE-574
>                 URL: https://issues.apache.org/jira/browse/GEODE-574
>             Project: Geode
>          Issue Type: Bug
>          Components: management
>            Reporter: Jens Deppe
>
> When using SSL, I can configure particular ciphers to be used. Usually this 
> is done on the server. When a client connects, it will typically present all 
> the ciphers it supports and the server will then negotiate the common cipher 
> to use. Gfsh also allows a specific set of ciphers to be used. The 
> documentation states that the default is "any". However the option 
> {{--ciphers=any}} fails the connection whereas without the option a 
> connection is made.
> I have a setup where I'm starting a Geode cluster with the following 
> properties:
> {noformat}
> mcast-port=0
> cluster-ssl-enabled=true
> server-ssl-enabled=true
> jmx-manager-ssl-enabled=true
> cluster-ssl-keystore-type=jks
> cluster-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
> cluster-ssl-keystore-password=changeit
> cluster-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
> cluster-ssl-truststore-password=changeit
> cluster-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
> cluster-ssl-protocols=TLSv1.2
> server-ssl-keystore-type=jks
> server-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
> server-ssl-keystore-password=changeit
> server-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
> server-ssl-truststore-password=changeit
> server-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
> server-ssl-protocols=TLSv1.2
> jmx-manager-ssl-keystore-type=jks
> jmx-manager-ssl-keystore=/Users/jdeppe/debug/ssl/trusted.jks
> jmx-manager-ssl-keystore-password=changeit
> jmx-manager-ssl-truststore=/Users/jdeppe/debug/ssl/trusted.jks
> jmx-manager-ssl-truststore-password=changeit
> jmx-manager-ssl-ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
> jmx-manager-ssl-protocols=TLSv1.2
> {noformat}
> The keystore was created with the following command:
> {noformat}
> keytool -genkey -alias self -keypass changeit -storepass changeit -keystore 
> test.jks -keyalg EC -keysize 256 -dname "CN=Trusted"
> {noformat}
> The start script is as follows:
> {noformat}
> #!/usr/bin/env bash
> set -x
> set -e
> GFSH=/Users/jdeppe/gemfire/82/bin/gfsh
> export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
> pkill -9 -f ServerLauncher || true
> pkill -9 -f LocatorLauncher || true
> rm -rf locator1/*
> rm -rf server1/*
> $GFSH start locator \
>   --name=locator1 \
>   --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties \
>   --port=19991
> $GFSH start server \
>   --name=server1 \
>   --locators=localhost[19991] \
>   --properties-file=/Users/jdeppe/debug/ssl/conf/gemfire.properties
> {noformat}
> If I run gfsh as follows it is able to connect:
> {noformat}
> $GFSH -e "connect --protocols=TLSv1.2 --locator=localhost[19991] --use-ssl 
> --key-store=$PWD/trusted.jks --trust-store=$PWD/trusted.jks 
> --key-store-password=changeit --trust-store-password=changeit" -e "list 
> members"
> {noformat}
> However, if I add the option {{--ciphers=any}} to the command above it is not 
> able to connect.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to