Recientemente (el 16 de agosto de 2012) caducó el certificado SSL que Alfresco Enterprise 4.x y Alfresco Community 4.0.x utiliza para la intercomunicación con Solr. Esto provoca el fallo en ciertas funcionalidades y la visualización continua en el log de Tomcat (catalina.out) del siguiente error:
Caused by: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:289) at sun.security.validator.PKIXValidator.doValidate(PKIXValidator.java:263) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:173) at sun.security.validator.Validator.validate(Validator.java:218) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1185)
Para generar un nuevo certificado podemos hacerlo de forma sencilla descargando el script generate_keystores.sh (Unix) desde el repositorio SVN de Alfresco. Una vez descargado, hay que asegurarse de modificar la variable que indica la ruta de instalación de alfresco:
ALFRESCO_HOME=/opt/alfresco-4.1
Una vez modificada la variable ejecutamos el script, esperamos un rato y se habrá generado un nuevo certificado con validez de un año:
# /root/generate_keystores.sh Using CATALINA_BASE: /web/alfresco/tomcat Using CATALINA_HOME: /web/alfresco/tomcat Using CATALINA_TMPDIR: /web/alfresco/tomcat/temp Using JRE_HOME: /web/alfresco/java Using CLASSPATH: /web/alfresco/tomcat/bin/bootstrap.jar /web/alfresco/tomcat/scripts/ctl.sh : tomcat stopped /web/alfresco/postgresql/scripts/ctl.sh : postgresql stopped Certificate stored in file Certificate stored in file Certificate was added to keystore Certificate was added to keystore Certificate was added to keystore Certificate update complete Please ensure that you set dir.keystore=/web/alfresco/alf_data/keystore in alfresco-global.properties
Finalmente revisamos que la variable «dir.keystore» está bien declarada en alfresco-global.properties y reiniciamos Alfresco. Automáticamente haremos uso del nuevo certificado: