配置p12 SSL证书后Apache Solr无法启动的问题求助
Apache Solr配置自定义P12证书后无法启动的排查与解决
问题背景
通过OpenSSL生成P12证书并配置Solr SSL参数后,服务重启失败且无明确SSL错误日志,禁用SSL配置后服务恢复正常,目标是实现Solr HTTPS启动。
排查与解决步骤
1. 验证P12证书有效性
执行以下命令检查证书是否完整且无损坏:
openssl pkcs12 -info -in /home/debian/ssl/mydomain.p12 -passin pass:mypassword
确认输出包含完整证书链(根证书、中间证书)和私钥,无任何报错。若证书链缺失,会导致Solr启动时静默失败。
2. 修复文件权限问题
Solr通常以solr用户运行,需确保该用户对证书文件有读取权限:
sudo chown solr:solr /home/debian/ssl/mydomain.p12 sudo chmod 600 /home/debian/ssl/mydomain.p12
严格的权限设置可避免证书泄露,同时确保Solr能正常读取文件。
3. 分离密钥库与信任库
将同一P12文件同时用作密钥库和信任库可能引发兼容性问题,建议单独创建信任库:
- 从P12中提取证书链:
openssl pkcs12 -in /home/debian/ssl/mydomain.p12 -nokeys -out truststore.pem -passin pass:mypassword - 用keytool创建JKS格式信任库(Solr对JKS兼容性更稳定):
keytool -importcert -file truststore.pem -keystore mydomain.truststore.jks -storepass mypassword -noprompt - 更新solr.in.sh中的信任库配置:
SOLR_SSL_TRUST_STORE=/home/debian/ssl/mydomain.truststore.jks SOLR_SSL_TRUST_STORE_PASSWORD=mypassword
4. 启用SSL调试日志
添加JVM参数获取详细SSL日志,定位静默失败原因:
在solr.in.sh中追加:
SOLR_OPTS="$SOLR_OPTS -Djavax.net.debug=ssl,handshake"
重启Solr后查看日志(默认路径为/var/log/solr/或Solr安装目录下的logs文件夹),日志会输出完整的SSL握手流程,帮助定位问题点。
5. 检查端口与防火墙
- 确认HTTPS端口(默认8983)未被占用:
sudo lsof -i :8983 - 允许防火墙放行该端口:
sudo ufw allow 8983/tcp
6. 验证JDK兼容性
确保Solr使用的JDK版本支持证书的加密算法,老旧JDK可能不支持SHA-256及以上签名算法,需升级JDK或更换兼容算法的证书。
内容的提问来源于stack exchange,提问作者danjfoley
相关产品推荐
相关产品推荐

