ACS 7.4 的 Alfresco 密钥库失败

问题描述 投票:0回答:1

有人设法获得 ACS 7+ 的工作密钥库,用于社区 zip 分发版

我已经在 Solr 中使用了 mTLS,但问题是 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_OPTIONS
dir.keystore
应该指向的内容(即 JCE KeyStore,或元数据目录,或元数据目录上方的密钥库目录),网络上有很多变体,我想我已经尝试过几乎所有这些。我也尝试过:

  1. alf_data
    中找到密钥库目录,但我认为这现在已经过时了
  2. 使用
    keytool
    生成新的密钥库(即从此处此处“手动生成密钥库”)
  3. 删除密钥库,并使用
    KeyData
    keystore-passwords.properties
    中添加新的
    org.alfresco.encryption.GenerateSecretKey
    (即“自动密钥库生成”)

这些都不起作用,会产生“密钥库中缺少密钥元数据”或“具有别名元数据的密钥已更改,请重新恢复以前的密钥库”。有什么想法吗?

tomcat alfresco
1个回答
0
投票

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

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 将回退在 backup.location 中找到的密钥。

Alfresco 必须生成新的密钥库,因为 SSL 不再支持 DES/3DES 密钥,但这并不一定意味着您必须替换元数据密钥。

请检查 Alfresco 文档中的 Mutual TLS

将来您可能更喜欢存储库和 SOLR 的共享秘密通信模式而不是相互 TLS 来保护 Alfresco Repository 和 Solr 之间的通信,但如前所述,元数据密钥与确保与 Solr 通信安全的密钥库无关。

© www.soinside.com 2019 - 2024. All rights reserved.