tomcat ACS 7.4的Alfresco密钥库故障

egmofgnx  于 8个月前  发布在  其他
关注(0)|答案(1)|浏览(64)

有没有人设法获得ACS 7+的工作密钥库,* 用于社区zip发行版 *?
我已经让mTLS与Solr一起工作,但问题是Alfresco日志正在抱怨它自己的加密密钥库:

org.alfresco.error.AlfrescoRuntimeException: 08280000 Keystores are invalid
...
Caused by: org.alfresco.encryption.InvalidKeystoreException: The key with alias metadata has been changed, re-instate the previous keystore

我使用的是alfresco-content-services-community-distribution-7.4.0.zip的默认密钥库。这是两个文件:

-rw-r--r-- 1 foo foo 645 May  3 20:59 keystore
-rw-r--r-- 1 foo foo 359 May  3 20:59 keystore-passwords.properties

其中“keystore”是“Java JCE KeyStore”。这两个文件被复制到目录/opt/tomcat/updated/shared/classes/alfresco/extension/keystore/metadata-keystore/中的服务器,并且:

# shared/classes/alfresco-global.properties
dir.keystore=/opt/tomcat/updated/shared/classes/alfresco/extension/keystore

# bin/catalina.sh
export JAVA_TOOL_OPTIONS="\                                                                                                                                                                             
 -Dencryption.keystore.type=JCEKS \                                                                                                                                                                     
 -Dencryption.cipherAlgorithm=DESede/CBC/PKCS5Padding \                                                                                                                                                 
 -Dencryption.keyAlgorithm=DESede \                                                                                                                                                                     
 -Dencryption.keystore.location=/opt/tomcat/updated/shared/classes/alfresco/extension/keystore/metadata-keystore/keystore \                                                                             
 -Dmetadata-keystore.password=mp6yc0UD9e \                                                                                                                                                              
 -Dmetadata-keystore.aliases=metadata \                                                                                                                                                                 
 -Dmetadata-keystore.metadata.password=oKIWzVdEdA \                                                                                                                                                     
 -Dmetadata-keystore.metadata.algorithm=DESede"

换句话说,JAVA_TOOL_OPTIONS指向实际的JCE密钥库,而dir.keystore指向该密钥库之上的两个目录。这不起作用,给出上面的错误。在JAVA_TOOL_OPTIONSdir.keystore应该指向的网络上有很多变化(即。JCEKeyStore,或者元数据目录,或者元数据目录上面的keystore目录),我想我已经尝试了几乎所有这些。我也试过:
1.在alf_data中定位密钥库目录,但我认为这现在已经过时了
1.使用keytool生成一个新的密钥库(即从此处和here开始的“手动密钥库生成”)
1.删除密钥库,并使用org.alfresco.encryption.GenerateSecretKeykeystore-passwords.properties中添加新的KeyData(即,'自动生成密钥库')
这些都不起作用,产生“Keymetadata is missing from keystore”或“The key with alias metadata has been changed,re-instate the previous keystore”。有什么想法吗?

idv4meu8

idv4meu81#

错误消息或多或少是不言自明的:

Caused by: org.alfresco.encryption.InvalidKeystoreException: The key with alias metadata has been changed, re-instate the previous keystore

您使用或生成了一个新的元数据加密密钥,但不应该对现有的存储库这样做,除非您知道自己在做什么以及为什么这样做。在这种情况下,您需要将先前的密钥配置为encryption.keystore.backup.location,否则alfresco无法解密加密的属性。不幸的是,Alfresco加密了一个属性来存储Alfresco版本,如果元数据密钥不再可用,您将无法再次启动存储库。
希望你仍然有旧的元数据键的地方,所以你可以配置旧的作为后备。
例如:

# backup location is used for migration - if decrypting from encryption.keystore doesn't work
# alfresco tries encryption.keystore.backup which is normally empty
encryption.keystore.backup.location=${dir.keystore}/../backup-keystore/metadata.keystore
encryption.keystore.backup.provider=
encryption.keystore.backup.type=JCEKS
encryption.keystore.backup.keyMetaData.location=${dir.keystore}/../backup-keystore/metadata-keystore-passwords.properties

如果无法使用当前配置的元数据密钥解密,Alfresco将回退到备份位置中找到的密钥。
Alfresco必须生成新的密钥库,因为SSL不再支持DES/3DES密钥,但这并不一定意味着您必须替换元数据密钥。
请在Alfresco的文档中检查Mutual TLS
将来,您可能更喜欢Shared Secret Communication Mode for Repository and SOLR而不是Mutual TLS来保护Alfresco Repository和Solr之间的通信,但如前所述,元数据密钥与密钥库无关,以保护与Solr的通信。

相关问题