private void generateSSL() throws SAXException {
    DistributedSystemConfig config = system.getConfig();

    boolean sslEnabled = config.isSSLEnabled();
    if (!sslEnabled) {
      return;
    }

    AttributesImpl atts = new AttributesImpl();
    atts.addAttribute("", "", AUTHENTICATION_REQUIRED, "",
        String.valueOf(config.isSSLAuthenticationRequired()));

    handler.startElement("", SSL, SSL, atts);

    String protocols = config.getSSLProtocols();
    if (protocols != null) {
      handler.startElement("", PROTOCOLS, PROTOCOLS, EMPTY);
      handler.characters(protocols.toCharArray(), 0, protocols.length());
      handler.endElement("", PROTOCOLS, PROTOCOLS);
    }

    String ciphers = config.getSSLCiphers();
    if (ciphers != null) {
      handler.startElement("", CIPHERS, CIPHERS, EMPTY);
      handler.characters(ciphers.toCharArray(), 0, ciphers.length());
      handler.endElement("", CIPHERS, CIPHERS);
    }

    Properties sslProps = config.getSSLProperties();
    for (final Map.Entry<Object, Object> objectObjectEntry : sslProps.entrySet()) {
      Map.Entry entry = (Map.Entry) objectObjectEntry;
      String key = (String) entry.getKey();
      String value = (String) entry.getValue();

      handler.startElement("", PROPERTY, PROPERTY, EMPTY);

      handler.startElement("", KEY, KEY, EMPTY);
      handler.characters(key.toCharArray(), 0, key.length());
      handler.endElement("", KEY, KEY);

      handler.startElement("", VALUE, VALUE, EMPTY);
      handler.characters(value.toCharArray(), 0, value.length());
      handler.endElement("", VALUE, VALUE);

      handler.endElement("", PROPERTY, PROPERTY);
    }

    handler.endElement("", SSL, SSL);
  }
Generates XML for the SSL configuration of the distributed system.
geode-core/src/main/java/org/apache/geode/admin/internal/ManagedEntityConfigXmlGenerator.java