You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Tomcat部署Alfresco时密钥库验证错误排查

部署Alfresco Content Services Community 23.2.1时的密钥库错误排查与解决

问题场景

在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

配置详情

1. alfresco-global.properties配置

#Set this property unless you have explicitly chosen to expose some repository APIs without authentication
#solr.secureComms=https
# Custom content and index data location
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
# Sample database connection properties
db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/alfresco?useSSL=false&serverTimezone=UTC
db.username=alfresco_user
db.password=****
# URL Generation Parameters (The ${localname} token is replaced by the local server name)
alfresco.context=/alfresco
alfresco.host=localhost
alfresco.port=8080
alfresco.protocol=http
share.context=/share
share.host=localhost
share.port=8080
share.protocol=http
transform.service.enabled=false
local.transform.service.enabled=false
legacy.transform.service.enabled=false
encryption.keystore.path=D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore/keystore.p12
encryption.keystore.type=pkcs12
encryption.key.alias=metadata
encryption.keystore.password=alfresco
encryption.cipherAlgorithm=AES/CBC/PKCS5Padding
encryption.keyAlgorithm=AES
encryption.mac.algorithm=HmacSHA1

2. 密钥库创建命令

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 

已执行的排查步骤

  • 验证密钥库路径与权限
  • 使用不同参数重新创建密钥库(及信任库)
  • 检查Tomcat日志与配置

成因分析

错误核心是Unable to get secret key: no key information is provided,根源在于:

  1. 密钥算法不匹配:配置中指定encryption.keyAlgorithm=AES(对称加密算法),但创建密钥库时用的是-keyalg RSA(非对称加密算法),Alfresco无法从RSA密钥对中提取AES类型的密钥。
  2. 密钥库用途不符:Alfresco的元数据加密要求使用对称密钥,而RSA生成的是非对称密钥对,无法满足AES加密的密钥需求。

解决方法

步骤1:重新创建符合要求的密钥库

使用AES算法生成对称密钥,替换原有密钥库:

keytool -genseckey -alias metadata -keyalg AES -keysize 256 -keystore D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore/keystore.p12 -storetype pkcs12 -storepass alfresco -keypass alfresco

注意:若JDK版本低于1.8u151,需修改Java安全策略文件以支持256位AES密钥,或把-keysize改为128。

步骤2:验证密钥库

用以下命令检查密钥库中的密钥信息,确认密钥类型为AES:

keytool -list -v -keystore D:/tomcat/apache-tomcat-10.1.28/alfresco/keystore/keystore.p12 -storetype pkcs12 -storepass alfresco

在输出中查找Entry type: SecretKeyEntry,确认密钥算法为AES。

步骤3:重启Tomcat服务

删除Tomcat的work和temp目录下的缓存文件,重启Tomcat后观察启动日志,确认密钥库相关错误不再出现。


内容的提问来源于stack exchange,提问作者Richa Manchanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 18:08:12