Alfresco sobre SSL (Apache+Tomcat+SSL+mod_jk)

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-03-2009 07:51 AM
Estoy haciendo pruebas para colocar Alfresco (3.2) en un servidor que atienda peticiones desde Internet. He optado por conectar Tomcat (5.5.28) con Apache (2.2) a través de mod_jk y hacer que Apache atienda estas peticiones a través de conexión segura SSL (puerto 443).
Con esta configuraciĂłn montada y en funcionamiento me surgen algunas cuestiones al respecto:
1.- He montado reglas de cortafuegos para que no se realicen peticiones por el puerto 8080, pero ÂżserĂa posible tambiĂ©n hacer que Tomcat no responda a las peticiones realizadas por este puerto, o lo que es lo mismo, forzarlo a que escuche por el puerto 8009?
2.- Mediante el cliente web no es posible acceder a Alfresco como no sea mediante una conexión segura (Apache sobre SSL y regla de cortafuegos cerrando el 8080), pero resulta que si puedo conectarme mediante CIFS. He anulado esta conexión poniendo a false esta conexión en file-servers.properties, también he inabilitado la autenticación CIFS en alfresco-authentication.properties. Con esto ya no accedo a través de CIFS, pero la pregunta es ¿es necesario adoptar alguna medida adicional, ya sean en la configuración de Alfresco o en la del cortafuegos?.
3.- ÂżSabrĂa alguiĂ©n decirme como habilitar el acceso mediante WebDav sobre SSL teniendo en cuenta que estoy usando mod_jk?
- Labels:
-
Archive
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-11-2009 12:55 PM
Ahi van mis respuestas, espero que te ayuden:
1. A nivel de servidor Tomcat, siempre puedes definir modificar el conf/server.xml, comentar el conector http en el 8080 y activar el conector ajp13 en 8009, de modo que en el mod_jk defines la redirecciĂłn en el workers del apache hacia el 8009. Con esto no serĂan necesarias las reglas de cortafuegos, aunque habrĂa que ver como tira Alfresco (porque es la config al reves de por defecto).
2. PodrĂas securizar el Tomcat en vez del Apache, comentando el conector http en el 8080 y definiendo un conector SSL en el 8443 del Tomcat por ejemplo (y con esto tendrĂas conexiones seguras para webdav en el punto 3). Por otro lado, con respecto al CIFS, creo que no hace falta que modifiques el file-server.properties, con cif.enabled=false en alfresco-authentication.properties vale. De hecho, es mejor que sĂłlo modifiques el alfresco-authentication.properties (modificar solo en el directorio de extensiones).
3. Puedes obviar el apache + mod_jk por delante, securizado el Tomcat, o en una config con un apache delante hacer un proxy http al 8443 seguro. Por otro lado el webdav es al fin y al cabo un servlet y deberĂa funcionar con el ajp13. Nota que uso el condicional.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-11-2009 01:23 PM
Muchas gracias por tu respuesta.
Probé lo de anular el conector al puerto 8080 del Tomcat (server.xml), activando el ajp13. Pero Tomcat no tiraba.
Sobre lo de securizar Tomcat te comento que al final me decidĂ por utilizar Apache en funciĂłn de todos los fors que visitĂ©, ya que dan tanto razones de rendimiento como de seguridad. No obstante me servirán tus indicaciones sobre la anulaciĂłn de la interfaz CIFS, puesto que la habilitaciĂłn de la misma aparece en varios ficheros y me tenĂa confundido.
De nuevo gracias.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-11-2009 02:48 PM
Saludos cesarista.
Muchas gracias por tu respuesta.
Probé lo de anular el conector al puerto 8080 del Tomcat (server.xml), activando el ajp13. Pero Tomcat no tiraba.
De nuevo gracias.
No me queda claro de tu mensaje si el servidor Tomcat del Alfresco no arrancaba al cambiarle los conectores, o es la configuraciĂłn del apache posterior con mod_jk. Es decir, ademas hay que mapear desde el apache con el mod_jk, al 8009 de alfresco. Y conectarse a la url configurada del apache.
Sobre lo de securizar Tomcat te comento que al final me decidà por utilizar Apache en función de todos los fors que visité, ya que dan tanto razones de rendimiento como de seguridad.
Bueno, lo normal es poner un apache delante en una estructura en 3 capas, porque la capa de la aplicaciĂłn no esta expuesta directamente al usuario web. Ademas puedes poner un firewall entre la capa web (la del apache) y el contenedor de servlets/servidor de aplicaciones (capa aplicaciĂłn). Eso si, securizas sĂłlo la conexiĂłn con el apache, no la conexiĂłn desde la capa web a la capa de la aplicaciĂłn. En cuanto a lo del rendimiento, puede ser sobre todo si usas conexiones seguras en un caso en el apache y otro caso en el tomcat, pero poner un apache por delante suele ser mas lento que no ponerlo.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-11-2009 07:49 PM
Previo al cambio de conectores, podĂa acceder a Alfresco tanto a travĂ©s del puerto 80 como del 8080. Al cambiar los conectores no arrancaba Tomcat.
No se si sobre lo de mapear te refieres a la configuraciĂłn necesaria con el archivo workers.properties y las directivas a incluir en el hhtp.conf.
Sobre lo de la estructura en tres capas, es la solución ideal, no obstante para las funciones a desempeñar por el servidor objetivo no utilizaré esta estructura, todos se ejecutará en una misma máquina, intentando securizar la misma mediante enjaulamientos, reglas de cortafuegos en la propia máquina, etc.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-12-2009 10:27 AM
Saludos Cesarista.
Previo al cambio de conectores, podĂa acceder a Alfresco tanto a travĂ©s del puerto 80 como del 8080. Al cambiar los conectores no arrancaba Tomcat.
No se si sobre lo de mapear te refieres a la configuraciĂłn necesaria con el archivo workers.properties y las directivas a incluir en el hhtp.conf.
Si, hay que configurar los saltos en los workers del mod_jk.
Aqui hay una guĂa en inglĂ©s con los archivos de configuraciĂłn:
http://forums.alfresco.com/en/viewtopic.php?f=9&t=20310
Lo puedes hacer con mod_jk o incluso con mod_proxy (con un proxy ajp13).
Por otro lado, si hay partes de Alfresco o scripts donde se hardcodea la url con el puerto 8080 y lo has desactivado en el Tomcat puede que vaya mal sĂłlo por ajp13.
Un saludo.
–C.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-12-2009 11:07 AM
Por otro lado, si hay partes de Alfresco o scripts donde se hardcodea la url con el puerto 8080 y lo has desactivado en el Tomcat puede que vaya mal sĂłlo por ajp13.
En los ficheros de configuraciĂłn de Alfresco (por ejemplo file-server.xml), aparece el puerto 8080, pero el problema no es que vaya mal por ajp13, sino que no arranca.
Pero ahora que me dices esto, probaré a cambiar los puertos en este fichero a ver que pasa.
Y ya que estamos… :wink: , me permito una pregunta en referencia a esto:
Lo puedes hacer con mod_jk o incluso con mod_proxy (con un proxy ajp13).
Yo lo he montado con mod_jk, ÂżQuĂ© ventaja habrĂa en el caso de usar mod_proxy?…
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-12-2009 01:32 PM
En los ficheros de configuraciĂłn de Alfresco (por ejemplo file-server.xml), aparece el puerto 8080, pero el problema no es que vaya mal por ajp13, sino que no arranca.
Pero ahora que me dices esto, probaré a cambiar los puertos en este fichero a ver que pasa.
No me referĂa a eso exactamente, las urls en ese fichero son para el CIFS, pero está claro que si desactivas el conector en el 8080, todo lo que tira del las url al 8080 no va. De hecho no se tiene que levantar el puerto. Prueba a poner de nuevo el conector en el 8080 y seguir el enlace anterior.
Yo lo he montado con mod_jk, ÂżQuĂ© ventaja habrĂa en el caso de usar mod_proxy?…
No demasiadas, con mod_jk defines los puntos de salto entre el apache y el tomcat, y en la url que le llega al apache tienes siempre el contexto de la aplicaciĂłn, en este caso alfresco. Es decir, siempre tienes algo del estilo http://miservidor/alfresco pero con mod_proxy_ajp puedes hacer que sea otro nombre http://miservidor/ecm o incluso que atienda a http://miservidor. De rendimiento, parecidos.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-12-2009 02:08 PM
Una vez lo tenga montado completo, con SSL y certificados, comentaré aquà mismo.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-20-2009 01:04 PM
Hay que realizar los siguientes pasos:
1.- En el archivo server.xml de tomcat:
Comentamos las siguientes lĂneas:
<!– <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> –>‍‍‍‍‍‍
Las lĂneas siguientes deben estar descomentadas si ya nos funcionĂł Alfresco con acceso a travĂ©s de Apache:<!– Define an AJP 1.3 Connector on port 8009 –> <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />‍‍‍
2.- Buscamos los siguientes archivos en la ruta:/usr/local/tomcat/webapps/alfresco/WEB-INF/classes
(YA ya se que aquà no hay que tocar, pero si alguién sabe como sustutir el tocar en esta ruta que lo
apunte en este post) :mrgreen:
En los archivos que menciono a continuaciĂłn buscaremos cualquier lĂnea donde ponga 8080. En principio
serán dos lĂneas por cada archivo, y sustituimos el 8080 por 8009.
Los archivos son:
- repository.properties
- file-servers.xml
Y listo, al arrancar Alfresco no es posible acceder a él a través del 8080, solo a través del 80, y sin
necesidad de habilitar reglas de cortafuegos. No obstante, el cortafuegos siempre es bueno.
