Alfresco solr/search在安装记录管理后停止工作
我正在使用alfresco 5.2.3 enterprise和solr6搜索服务。 当我在alfresco平台jar和alfresco共享jar中部署应用程序自定义代码时,一切正常。 现在,当我安装alfresco记录管理amp文件时,搜索停止工作。我甚至无法搜索单个文档或文件夹。 RM amp版本:alfresco-RM-enterprise-repo-2.7.0.amp和alfresco-RM-enterprise-share-2.7.0.amp 有三个不同的实例:repo(alfresco.war所在)、share(share.war和ADF所在)和index server(维护索引所在) 我在repo上安装了alfresco-rm-enterprise-repo-2.7.0.amp,在share上安装了alfresco-rm-enterprise-share-2.7.0.amp。然后重新启动服务器。RM安装成功,没有任何错误。但在此之后,搜索根本不起作用 是否可能在RM安装后,某些索引已损坏,我们需要重新编制索引?这能解决这个问题吗 注意:根据alfresco文档链接,alfresco和RM的版本已经在支持的堆栈中:Alfresco solr/search在安装记录管理后停止工作,search,solr,alfresco,record,Search,Solr,Alfresco,Record,我正在使用alfresco 5.2.3 enterprise和solr6搜索服务。 当我在alfresco平台jar和alfresco共享jar中部署应用程序自定义代码时,一切正常。 现在,当我安装alfresco记录管理amp文件时,搜索停止工作。我甚至无法搜索单个文档或文件夹。 RM amp版本:alfresco-RM-enterprise-repo-2.7.0.amp和alfresco-RM-enterprise-share-2.7.0.amp 有三个不同的实例:repo(alfresco
任何帮助都将不胜感激。最后,问题解决了。 密钥库、信任库证书文件是罪魁祸首。 由于ACS和索引服务器之间的通信未发生,导致日志中出现GetModelsDiff 403错误,因此需要生成新的密钥库、信任库文件。 此外,我们确保在ACS和索引服务器文件中设置了以下设置:
ACS alfresco-global.properties:
Solr配置: solr.in.sh文件: alfresco core>solrcore.properties和archive core>solrcore.properties 无需触摸此位置下的文件: /opt/alfresco搜索服务/solrhome/templates/rerank/conf 最后是最重要的部分: 最新/更新的证书文件位于:
/opt/alfresco-search-services/solrhome/keystore
/opt/alfresco-search-services/solrhome/alfresco/conf
以及放置在以下目录下的相同证书文件:
/opt/alfresco-search-services/solrhome/keystore
/opt/alfresco-search-services/solrhome/alfresco/conf
及
在ACS服务器上:
/opt/alfresco-content-services/alf_data/keystore
此外,如果问题仍未得到解决,您可以尝试以下操作:
- 在alf global中设置solr.secureComms=none,在archive core和alfresco core中设置alfresco.secureComms=none,然后重新启动这两个实体,查看正常HTTP连接是否在没有SSL或HTTPS的情况下工作
- 使用infra/netwk团队验证是否安装了正确的证书
- 尝试直接将alfresco和solr的IP地址指向对方,而不是主机名,因为它可能通过LB
- 从alfresco repo服务器尝试Telnet solr主机,反之亦然
- 将-Djavax.net.debug=all放在alfresco>tomcat/scripts/ctl.sh下,看看是否有任何有用的信息
- 不要只查看alfresco.log、solr.log,如果可以找到404或200个状态响应,请参阅访问日志。或在solr计算机上根据本地主机访问日志中记录的URL进行卷曲
- 使用root用户启动/停止solr–理想情况下,应该是solr的另一个专用用户
- 理想情况下,证书应该从alfresco(alf_数据/密钥库)复制到solr服务器,而不是从solr复制到alfresco服务器。但如果不起作用,你可以尝试另一种方法
- alf global中的alfresco.host、share.host、alfresco.port、share.port应与solrhome/alfresco/conf/solrcore.properties+solrhome/archive/conf/solrcore.properties中的属性匹配
- 尝试将调试器置于alfresco repo端和solr端的调试语句之上,以捕获任何未知或隐藏的异常/错误
- 您还可以从浏览器中查看solr管理控制台页面,并从中查看日志
javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException ,
unable to find valid certification path to requested target ,
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
我检查了配置(证书)是否在AWS端正确导入。AWS侧未施加任何限制。
但是,最终我能够通过以下组合解决问题:
露天侧
Server.xml:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true" maxThreads="150" scheme="https"
keystoreFile="/app/tomcat/keystores/ssl.keystore"
keystorePass="pwd" keystoreType="JCEKS"
secure="true" connectionTimeout="240000"
truststoreFile="/app/tomcat/keystores/ssl.truststore"
truststorePass="pwd" truststoreType="JCEKS"
clientAuth="false" sslProtocol="TLS" />
单侧
solr.in.sh
SOLR_SOLR_HOST=domainname
SOLR_ALFRESCO_HOST=domainname
SOLR_SSL_CUSTOM="-Dsolr.ssl.checkPeerName=false -Dsolr.allow.unsafe.resourceloading=true"
SOLR_OPTS="$SOLR_SSL_CUSTOM"
SOLR_PORT=8984
SOLR_HOST=domainname
SOLR_SSL_KEY_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.keystore
SOLR_SSL_KEY_STORE_PASSWORD=pwd
SOLR_SSL_KEY_STORE_TYPE=JCEKS
SOLR_SSL_TRUST_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.truststore
SOLR_SSL_TRUST_STORE_PASSWORD=pwd
SOLR_SSL_TRUST_STORE_TYPE=JCEKS
SOLR_SSL_NEED_CLIENT_AUTH=false
SOLR_SSL_WANT_CLIENT_AUTH=true
solrcore.properties(两个核心)
solrcore.properties(在rerank/conf下)
alfresco密钥库文件(alfresco使用/指向)位于/app/tomcat/keystores下。
和solr密钥库文件(solr使用/指向)位于/app/alfresco insight engine/solrhome/keystore下
注意:我们还将solr密钥库文件复制到以下位置:/app/alfresco insight engine/solrhome/alfresco/conf、/app/alfresco insight engine/solrhome/archive/conf、/app/alfresco insight engine/solrhome/templates/rerank/conf
注意:如果只是一个未添加到truststore cacerts的证书,则可以使用以下链接将该证书添加到cacerts:
如果上述操作不起作用,则可以检查的其他点:
- 检查java版本是否是受支持的版本(在受支持的堆栈中),以及证书是否正确添加到信任库中
- 从alfresco的管理摘要页面检查java版本,并验证是否将证书添加到正确的java中
- 检查solr主机、端口和ssl端口是否正确拾取。验证此位置-http://domainname/alfresco/s/enterprise/admin/admin-searchservice ,因为可能从此处拾取的端口可能和alfresco-global.properties文件中的端口不匹配。如果alf global和admin searchservice URL之间的属性不匹配,当alfresco尝试连接到solr时,您可能会在alfresco日志中收到“连接被拒绝”错误
- 如果JKS类型的证书已成为obsol
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" maxThreads="150" scheme="https" keystoreFile="/app/tomcat/keystores/ssl.keystore" keystorePass="pwd" keystoreType="JCEKS" secure="true" connectionTimeout="240000" truststoreFile="/app/tomcat/keystores/ssl.truststore" truststorePass="pwd" truststoreType="JCEKS" clientAuth="false" sslProtocol="TLS" />
index.subsystem.name=solr6 solr.secureComms=https solr.port=8984 solr.port.ssl=8984 solr.host=domainname alfresco.context=alfresco alfresco.host=host alfresco.port=8443 alfresco.protocol=https # share.context=share share.host=host share.port=8443 share.protocol=https #ssl encryption encryption.ssl.keystore.location=/app/tomcat/keystores/ssl.keystore encryption.ssl.keystore.type=JCEKS encryption.ssl.keystore.keyMetaData.location=/app/tomcat/keystores/ssl-keystore-passwords.properties encryption.ssl.truststore.location=/app/tomcat/keystores/ssl.truststore encryption.ssl.truststore.type=JCEKS encryption.ssl.truststore.keyMetaData.location=/app/tomcat/keystores/ssl-truststore-passwords.properties
SOLR_SOLR_HOST=domainname SOLR_ALFRESCO_HOST=domainname SOLR_SSL_CUSTOM="-Dsolr.ssl.checkPeerName=false -Dsolr.allow.unsafe.resourceloading=true" SOLR_OPTS="$SOLR_SSL_CUSTOM" SOLR_PORT=8984 SOLR_HOST=domainname SOLR_SSL_KEY_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.keystore SOLR_SSL_KEY_STORE_PASSWORD=pwd SOLR_SSL_KEY_STORE_TYPE=JCEKS SOLR_SSL_TRUST_STORE=/app/alfresco-insight-engine/solrhome/keystore/ssl.repo.client.truststore SOLR_SSL_TRUST_STORE_PASSWORD=pwd SOLR_SSL_TRUST_STORE_TYPE=JCEKS SOLR_SSL_NEED_CLIENT_AUTH=false SOLR_SSL_WANT_CLIENT_AUTH=true
alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.truststore.type=JCEKS alfresco.host=ip-10-233-4-126.ap-east-1.compute.internal alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore alfresco.encryption.ssl.truststore.provider= alfresco.port.ssl=8443 alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties alfresco.port=8080 alfresco.encryption.ssl.keystore.type=JCEKS alfresco.secureComms=https alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties
alfresco.host=domainname alfresco.port=8080 alfresco.port.ssl=8443 alfresco.secureComms=https alfresco.encryption.ssl.keystore.type=JCEKS alfresco.encryption.ssl.keystore.provider= alfresco.encryption.ssl.keystore.location=ssl.repo.client.keystore alfresco.encryption.ssl.keystore.passwordFileLocation=ssl-keystore-passwords.properties alfresco.encryption.ssl.truststore.type=JCEKS alfresco.encryption.ssl.truststore.provider= alfresco.encryption.ssl.truststore.location=ssl.repo.client.truststore alfresco.encryption.ssl.truststore.passwordFileLocation=ssl-truststore-passwords.properties