Geronimo V2.1.5 中的安全提升
2010-07-02 00:00:00 来源:WEB开发网KeyStore 相关工具的改进
KeyStore 是 Java 安全技术中的重要组成部份,用于保存私钥或数字证书,以帮助与应用服务器建立安全的连接。在 Geronimo V2.1.5 中也对应用了 KeyStore 的相关工具也进行了改进,大大增强了使用时的安全性。
使用文件中保存的密码
在以前的版本中,当 Geronimo 的 deploy 工具使用安全的 JMX Connector 连接到服务器时,需要指定 javax.net.ssl.keyStore,javax.net.ssl.keyStorePassword,javax.net.ssl.trustStore 和 javax.net.ssl. trustStorePassword 四个系统属性 (JAVA_OPTS),如清单 6 所示。
清单 6. 采用安全的 JMX Connector 连接到服务器
export JAVA_OPTS="
-Djavax.net.ssl.keyStore=$GERONIMO_HOME/var/security/keystores/geronimo-default
-Djavax.net.ssl.keyStorePassword=secret
-Djavax.net.ssl.trustStore=$GERONIMO_HOME/var/security/keystores/geronimo-default
-Djavax.net.ssl.trustStorePassword=secret"
$GERONIMO_HOME/bin/deploy.sh --secure list-modules
上面这条 deploy 命令通过指定 --secure 选项进行安全的 JMX 连接,但前提是在 JAVA_OPTS 中需要通过明文设置好 keyStorePassword 与 trustStorePassword 的这两个密码——“secrect”,这样其实十分危险,当系统后台有人对进程进行检测时,如运行”ps auxww | grep deployer.jar”,则可以直接看到 keyStore 和 trustStore 的密码。
为了规避这类风险,在 V2.1.5 中,禁止从系统属性中明文设置密码,取而代之的是从文件中读取密码,并且这个密码需要用上一节介绍的”deploy encrypt”命令加密。所采用的方法是,通过定义 -Dorg.apache.geronimo.keyStoreTrustStorePasswordFile 这个系统属性,指定密码文件的位置。如果用户没有编写这个密码文件,Geronimo V2.1.5 会在 config-substitutions.properties 文件中寻找 keyStorePassword 和 trustStorePassword 的两个默认值,如清单 7 所示。
更多精彩
赞助商链接