Linux下查询Weblogic应用使用的cacerts及jks密钥库路径方法
1. 查进程JVM启动参数
首先获取Weblogic运行进程ID:ps -ef | grep weblogic.Server | grep -v grep
拿到PID(记为ps -fp <pid> | grep -E 'javax.net.ssl.trustStore|javax.net.ssl.keyStore|weblogic.security.TrustKeyStore'
未在Weblogic控制台登记的应用自定义证书库,很多是通过JVM启动参数指定,不会同步到控制台配置页。
2. 扫描进程已打开的证书文件
如果是应用代码硬编码加载的证书库,启动参数中查不到,可以用lsof命令查看进程当前打开的所有符合特征的文件:lsof -p <pid> | grep -E '\.(jks|jceks|p12|pfx|cacerts|truststore|keystore)$'
该命令可以列出进程正在使用的所有证书/密钥库文件,哪怕是动态加载、未做任何配置登记的文件也能命中,你提到的
/app/domains/prdzap/PRDZAP/security目录下的自定义证书如果正在被使用,会直接出现在结果中。
3. 全Domain扫描潜在证书文件
如果需要提前排查整个Weblogic域下所有可能被用到的证书/密钥库,无需进程运行也可执行扫描:find /app/domains/prdzap -type f \( -iname "*.jks" -o -iname "*.cacerts" -o -iname "*.p12" -o -iname "*.pfx" -o -iname "*truststore*" -o -iname "*keystore*" \) 2>/dev/null
扫描结果可以和前两种方法的运行时结果对照,排查遗漏的证书文件。
内容的提问来源于stack exchange,提问作者Eagertolearn

