Search code examples
gemfiregeode

Get geode REST API going with SSL


I've setup gemfire.properties to make the web component require SSL using ssl-enabled-components=web and setting up a keystore. The locator and server are starting ok and GFSH connects to the JMX manager. However, when I try and start the Swagger UI then I am getting ERR_SSL_VERSION_OR_CIPHER_MISMATCH. It happens when the config is that ssl-ciphers= and ssl-protocols= or set to any...

So what's the required REST API cipher for Apache Geode? Thanks


Solution

  • I tested this with a basic cert created with the following:

    keytool -genkeypair -alias self -dname "CN=trusted" \
      -validity 3650 -keypass password -keystore ./trusted.keystore \
      -storepass password -storetype JKS
    

    It failed in the way you describe. I recreated the cert and used a different key algorithm with -keyalg EC and then worked. I'll see if I can give a more detailed explanation at some point.

    UPDATE:

    I'm using Mac OS and my /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/lib/security/java.security file contains the following restriction for certificates:

    jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \
      DSA keySize < 1024, EC keySize < 224
    

    With -keyalg EC, the generated certificate is signed with SHA256withECDSA, but without that option it is signed with SHA1withDSA, so not acceptable.