public static void readSSLProperties(Map<String, String> env, boolean ignoreGemFirePropsFile) {
    Properties props = new Properties();
    DistributionConfigImpl.loadGemFireProperties(props, ignoreGemFirePropsFile);
    for (Map.Entry<Object, Object> ent : props.entrySet()) {
      String key = (String) ent.getKey();
      // if the value of ssl props is empty, read them from console
      if (key.startsWith(DistributionConfig.SSL_SYSTEM_PROPS_NAME)
          || key.startsWith(DistributionConfig.SYS_PROP_NAME)) {
        if (key.startsWith(DistributionConfig.SYS_PROP_NAME)) {
          key = key.substring(DistributionConfig.SYS_PROP_NAME.length());
        }
        final String value = (String) ent.getValue();
        if (value == null || value.trim().equals("")) {
          Console console = System.console();
          if (console == null) {
            throw new GemFireConfigException(
                "SSL properties are empty, but a console is not available");
          }
          String val = console.readLine("Please enter " + key + ": ");
          env.put(key, val);
        }
      }
    }
  }
Used to read the properties from console. AgentLauncher calls this method directly & ignores
gemfire.properties. SystemAdmin calls this through {@link #readSSLProperties(Map)} and does
NOT ignore gemfire.properties.

@param env Map in which the properties are to be read from console.
@param ignoreGemFirePropsFile if <code>false</code> existing gemfire.properties file is read,
       if <code>true</code>, properties from gemfire.properties file are ignored.
geode-core/src/main/java/org/apache/geode/internal/net/SocketCreator.java