Alfresco: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed

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:

Alfresco SSL Certificate