martes, 11 de marzo de 2014

Configurar SSL en Alfresco Community 4.2

Es muy importante tener en cuenta que vamos a utilizar un certificado auto autentificado,
esto me dio muchos problemas cuando quisé por ejemplo:
  • Utilizar la herramienta CMIS-Workbench
  • Exportar documentos desde Ephesoft hacía Alfresco
  • Conectar una aplicación propia con Alfresco; mediante la librería DOTCMIS.
Es por esto que recomiendo en un ambiente de producción, no colocar un certificado auto autentificado.

Paso 1

Nos vamos a la carpeta java (Tomen en cuenta que en mi caso uso una distribución Ubuntu Linux)
cd /opt/bitnami/java/bin/



Paso 2

Ejecutamos el comando:
sudo keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/bitnami/apache-tomcat/conf/keystore -keysize 2048 –validity 1825
Debemos responder algunas preguntas
Enter keystore password: mypassword*
Re-enter new password: mypassword*
What is your first and last name?
[Unknown]: hostname
What is the name of your organizational unit?
[Unknown]:  hostname
What is the name of your organization?
[Unknown]:  mycompany
What is the name of your City or Locality?
[Unknown]:  mycity
What is the name of your State or Province?
[Unknown]:  mycity
What is the two-letter country code for this unit?
[Unknown]:  WW
Nos va a pedir que confirmemos, y luego nos va a pedir
el key para tomcat; en este caso presionamos enter para indicar le
que será la misma que la del certificado.
Enter key password for <tomcat>
(RETURN if same as keystore password):

Paso 3

Modificamos el archivo server.xml, con el siguiente comando
sudo nano /opt/bitnami/apache-tomcat/conf/server.xml
Agregando:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
keystoreFile="/opt/bitnami/apache-tomcat/conf/keystore" keystorePass="Pasword*"
clientAuth="false" sslProtocol="TLS" />

Paso 4

Modificamos el archivo web.xml, con el siguiente comando:
sudo nano  /opt/bitnami/apache-tomcat/conf/web.xml
Agregando:
<!-- ======================== HTTPS Redirection ========================= --> 
<!-- This section has been customized to redirect web resources to HTTPS  -->
<security-constraint>
    <web-resource-collection>
       <web-resource-name>Entire Application</web-resource-name>
            <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

Paso 5

Modificamos el archivo share-config-custom.xml, con el siguiente comando:
sudo nano /opt/bitnami/apache-tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml
Dejando lo de la siguiente manera:
<alfresco-config>
  
   <!-- Repository Library config section -->
   <config evaluator="string-compare" condition="RepositoryLibrary" replace="true">
      <!--
         Whether the link to the Repository Library appears in the header component or not.
      -->
      <visible>true</visible>
   </config>

   <config evaluator="string-compare" condition="Remote">
      <remote>
         <endpoint>
            <id>alfresco-noauth</id>
            <name>Alfresco - unauthenticated access</name>
            <description>Access to Alfresco Repository WebScripts that do not require authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>https://hostname:port/alfresco/s</endpoint-url>
            <identity>none</identity>
         </endpoint>

         <endpoint>
            <id>alfresco</id>
            <name>Alfresco - user access</name>
            <description>Access to Alfresco Repository WebScripts that require user authentication</description>
            <connector-id>alfresco</connector-id>
            <endpoint-url>https://hostname:port/alfresco/s</endpoint-url>
            <identity>user</identity>
         </endpoint>

         <endpoint>
            <id>alfresco-feed</id>
            <name>Alfresco Feed</name>
            <description>Alfresco Feed - supports basic HTTP authentication via the EndPointProxyServlet</description>
            <connector-id>http</connector-id>
            <endpoint-url>https://hostname:port/alfresco/s</endpoint-url>
            <basic-auth>true</basic-auth>
            <identity>user</identity>
         </endpoint>
        
         <endpoint>
            <id>activiti-admin</id>
            <name>Activiti Admin UI - user access</name>
            <description>Access to Activiti Admin UI, that requires user authentication</description>
            <connector-id>activiti-admin-connector</connector-id>
            <endpoint-url>https://hostname:port/alfresco/activiti-admin</endpoint-url>
            <identity>user</identity>
         </endpoint>
      </remote>
   </config>
</alfresco-config>

Paso 6

Accedemos a la carpeta de configuración de Apache Tocamt; con el siguiente comando:
cd /opt/bitnami/apache-tomcat/conf/
Y exportamos el certificado, con el siguiente comando:
sudo /opt/bitnami/java/bin/keytool –export –alias  tomcat –keypass "Pasword*" –storepass "Pasword*" –keystore /opt/bitnami/apache-tomcat/conf/keystore –file server.cert

Paso 7

Modificamos el archivo alfresco-global.properties, con el siguiente comando:
sudo nano /opt/bitnami/apache-tomcat/shared/classes/alfresco-global.properties
Modificando las líneas:
############################### 
## Common Alfresco Properties #
###############################
alfresco.context=alfresco 
alfresco.host=127.0.0.1 
alfresco.port=8443 
alfresco.protocol=https

share.context=share 
share.host=127.0.0.1 
share.port=8443 
share.protocol=https
Listo. Siguiendo los anteriores pasos, deberían poder acceder a Alfresco utilizando HTTPS.

1 comentario:

  1. no me inicia sesion en alfresco share despues de agregar las lineas "security constraint" pero las necesito, me puedes ayudar?

    ResponderEliminar