我在 Windows 中的 Tomcat 10.1.28 上部署 Alfresco Content Services Community Edition(版本 23.2.1)时遇到问题。设置密钥库并配置 alfresco-global.properties 后,我收到以下错误:
SEVERE: Exception sending context initialized event to listener instance of class [org.alfresco.web.app.servlet.CORSContextListener] org.alfresco.error.AlfrescoRuntimeException: 08030002 Keystores are invalid ... Caused by: org.alfresco.error.AlfrescoRuntimeException: 08030000 Unable to get secret key: no key information is provided
配置详情:
alfresco-global.properties:
设置此属性,除非您已明确选择在不进行身份验证的情况下公开某些存储库 API
#solr.secureComms=https
# 自定义内容和索引数据位置
dir.root=D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore
dir.keystore=D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore
dir.contentstore=D:/tomcat/apache-tomcat-10.1.28/alfresco/contentstore
dir.contentstore.deleted=D:/tomcat/apache-tomcat-10.1.28/alfresco/contentstore.deleted
# 示例数据库连接属性
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/alfresco?useSSL=false&serverTimezone=UTC
db.username=alfresco_user
db.密码=***
# URL 生成参数(${localname} 标记替换为本地服务器名称)
alfresco.context=/alfresco
alfresco.host=localhost
露天.端口=8080
alfresco.protocol=http
share.context=/分享
share.host=localhost
共享端口=8080
share.protocol=http
transform.service.enabled=false
local.transform.service.enabled=false
legacy.transform.service.enabled=false
加密.keystore.path=D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore/keystore.p12
加密.keystore.type=pkcs12
加密.key.alias=元数据
加密.keystore.密码=露天
加密.cipherAlgorithm=AES/CBC/PKCS5Padding
加密.key算法=AES
加密.mac.algorithm=HmacSHA1
密钥库创建命令:
keytool -genkeypair -alias metadata -keyalg RSA -keysize 2048 -keystore D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore/keystore.p12 -storetype pkcs12 -storepass alfresco -keypass alfresco
采取的故障排除步骤:
1.验证密钥库路径和权限。
使用不同的参数重新创建密钥库(也是信任库)。
3.检查Tomcat日志和配置。
问题:什么可能导致此问题,如何解决?
预先警告:如果您不知道自己在做什么,则永远不要重新生成元数据加密密钥。您可能会进入一个损坏的存储库。
您似乎不匹配元数据加密的一些参数。
例如在 alfresco-global.properties 中定义位置和类型(元数据加密 keystore.type 预计为 JCEKS):
encryption.keystore.location=${dir.keystore}/keystore
encryption.keystore.provider=
encryption.keystore.type=JCEKS
encryption.keystore.keyMetaData.location=${dir.keystore}/keystore-passwords.properties
在配置的
keyMetaData.location
文件中存储的属性