@SuppressWarnings("rawtypes") public void InstalarCerAF(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Inicio de instalacion"); short idmensaje = -1; String mensaje = ""; idmensaje = 0; mensaje = JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 1); // "El certificado se instaló con exito"; try { JAdmVariablesSet var = new JAdmVariablesSet(null); var.ConCat(true); var.m_Where = "ID_Variable = 'TOMCAT'"; var.Open(); if (var.getAbsRow(0).getVAlfanumerico().equals("NC")) { idmensaje = 1; mensaje = JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR", 4); // "PRECAUCION: La variable TOMCAT (ruta de instalacion de tomcat) no está // definida... No se puede instalar el certificado"; getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response); return; } boolean cs = false; SAXBuilder builder = new SAXBuilder(); String xml_path = var.getAbsRow(0).getVAlfanumerico() + "/conf/server.xml"; Document XMLServer = builder.build(xml_path); // System.out.println(xml_path + "\narchivo: " + request.getParameter("id") + "\npassword: "******"password")); Element Server = XMLServer.getRootElement(); Element Service = Server.getChild("Service"); List lConnectors = Service.getChildren("Connector"); Iterator iter = lConnectors.iterator(); while (iter.hasNext()) { Element Connector = (Element) iter.next(); String port = Connector.getAttributeValue("port"); if (port != null && (port.equals("8443") || port.equals("443"))) { Connector.setAttribute( "keystoreFile", "/usr/local/forseti/bin/" + request.getParameter("id")); Connector.setAttribute("keystorePass", request.getParameter("password")); Connector.setAttribute("port", request.getParameter("puerto")); cs = true; } if (port != null && (port.equals("8080") || port.equals("80"))) { if (request.getParameter("puerto").equals("8443")) Connector.setAttribute("port", "8080"); if (request.getParameter("puerto").equals("443")) Connector.setAttribute("port", "80"); Connector.setAttribute("redirectPort", request.getParameter("puerto")); } } if (!cs) { Element Connector = new Element("Connector"); Connector.setAttribute("protocol", "HTTP/1.1"); Connector.setAttribute("port", request.getParameter("puerto")); Connector.setAttribute("maxThreads", "200"); Connector.setAttribute("scheme", "https"); Connector.setAttribute("secure", "true"); Connector.setAttribute("SSLEnabled", "true"); Connector.setAttribute( "keystoreFile", "/usr/local/forseti/bin/" + request.getParameter("id")); Connector.setAttribute("keystorePass", request.getParameter("password")); Connector.setAttribute("clientAuth", "false"); Connector.setAttribute("sslProtocol", "TLS"); Service.addContent(Connector); cs = true; } if (cs) { System.out.println("Prettyformat"); Format format = Format.getPrettyFormat(); format.setEncoding("utf-8"); format.setTextMode(TextMode.NORMALIZE); XMLOutputter xmlOutputter = new XMLOutputter(format); FileWriter writer = new FileWriter(xml_path); xmlOutputter.output(XMLServer, writer); writer.close(); // System.out.println("PrettyformatWrite"); mensaje += "<br>" + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 2) + " " + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 3) + " " + JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCOK", 4); // "<br>El archivo server.xml ha quedado modificado con los datos de este // certificado. Nota: Si la contraseña esta mal, ya no se podra reiniciar el // servidor de una manera segura, por lo tanto, deberas cambiar el archivo // server.xml de manera manual para corregir la contraseña. Si no estas // seguro que esta bien la contraseña, consulta este mismo certificado para // ver si es correcta, de lo contrario vuelve a instalar inmediatamente este // certificado con la contraseña correcta antes de reiniciar el servidor"; } else { idmensaje = 3; mensaje = JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR2", 2); // "ERROR: No se modifico el archivo server.xml debido a errores desconocidos"; } } catch (JDOMException e) { idmensaje = 3; mensaje = "ERROR de JDOMException en archivo XML: " + e.getMessage(); } catch (IOException e) { idmensaje = 3; mensaje = "ERROR de IOException en archivo XML: " + e.getMessage(); } catch (Exception e) { idmensaje = 3; mensaje = "ERROR de Exception en archivo XML: " + e.getMessage(); } RDP( "SAF", getSesion(request).getConBD(), (idmensaje == 1 ? "OK" : "ER"), getSesion(request).getID_Usuario(), "ADMIN_SSL_MANEJO", "ASSL|" + p(request.getParameter("id")) + "|||", p(mensaje)); getSesion(request).setID_Mensaje(idmensaje, mensaje); irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response); return; }
public void AgregarAjssecacerts(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { short idmensaje = -1; StringBuffer sb_mensaje = new StringBuffer(); String host = "localhost:" + request.getParameter("puerto"); JAdmVariablesSet var = new JAdmVariablesSet(null); var.ConCat(true); var.m_Where = "ID_Variable = 'TOMCAT'"; var.Open(); if (var.getAbsRow(0).getVAlfanumerico().equals("NC")) { idmensaje = 1; sb_mensaje.append( JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR", 4)); // "PRECAUCION: La variable TOMCAT (ruta de instalacion de tomcat) no está // definida... No se puede instalar el certificado"); getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString()); irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response); return; } JAdmVariablesSet var2 = new JAdmVariablesSet(null); var2.ConCat(true); var2.m_Where = "ID_Variable = 'JVM'"; var2.Open(); if (var2.getAbsRow(0).getVAlfanumerico().equals("NC")) { idmensaje = 1; sb_mensaje.append( JUtil.Msj( "SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR", 5)); // "PRECAUCION: La variable JVM (ruta de instalacion del OpenJDK o Java JDK) no // está definida... No se puede generar"); getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString()); irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response); return; } try { idmensaje = InstallCert(host, request.getParameter("password"), sb_mensaje); if (idmensaje == 0) { JFsiScript sc = new JFsiScript(); sc.setVerbose(true); String CONTENT = "sudo cp /usr/local/forseti/bin/jssecacerts " + var2.getAbsRow(0).getVAlfanumerico() + "/jre/lib/security"; sc.setContent(CONTENT); System.out.println(CONTENT); String RES = sc.executeCommand(); if (!sc.getError().equals("") || !RES.equals("")) { idmensaje = 3; sb_mensaje.append( "<br>" + JUtil.Msj("SAF", "ADMIN_SSL", "DLG", "MSJ-PROCERR2", 1) + " " + RES + " " + sc .getError()); // "<br>Se han producido errores al copiar el certificado a // jssecacerts del jvm actual: " + RES + " " + sc.getError()); } } } catch (Exception e) { idmensaje = 3; sb_mensaje.append("ERROR Exception JSSECASERTS: " + e.getMessage()); } RDP( "SAF", getSesion(request).getConBD(), (idmensaje == 1 ? "OK" : "ER"), getSesion(request).getID_Usuario(), "ADMIN_SSL_MANEJO", "ASSL|jssecacerts|||", p(sb_mensaje.toString())); getSesion(request).setID_Mensaje(idmensaje, sb_mensaje.toString()); irApag("/forsetiadmin/administracion/adm_ssl_dlg_passport.jsp", request, response); return; }