- 第一步,生成keystore。在打开cmd,输入: keytool -genkey -alias jboss -keyalg RSA -keystore /Users/azrael/jboss.keystore , 接着根据提示输入相应的提示信息输入相应的设置内容就可以生成keystore证书(一般默认生成在C:\Documents and Settings 当前用户的文件夹下)。需要注意的是在Mac OS下,出现的提示信息是乱码的,需要设置一下才能正确显示中文,可以参考Mac OS 下终端 中文乱码的解决方式 ,设置终端以后就可以了。
- 将生成的keystore证书拷贝到${JBOSS_HOME}/server/default/conf目录下;
- 修改${JBOSS_HOME}/Jbos-4.2.1\server\default\deploy\jboss-web.deployer/server.xml,将下图XML片段的注释去掉,并将keystoreFile的路径指向刚才拷贝过来的keystore证书,即${JBOSS_HOME}/server/default/conf/jboss.keystore,将keystorePass该成在生成keystore证书时你所输入的密码:
- <Connector protocol="HTTP/1.1" SSLEnabled="true"
- port="8443" address="${jboss.bind.address}"
- scheme="https" secure="true" clientAuth="false"
- keystoreFile="${jboss.server.home.dir}/conf/jboss.keystore"
- keystorePass="jbosskeystorePass" sslProtocol = "TLS" />
- 重启JBoss服务器,输入https://localhost:8443,就可以以安全的形式访问JBoss的控制台了。但是我们也同样可以以不加密的方式访问JBoss的控制台;
- 如果要让某些页面只能以安全的形式访问,需要修改WEB应用的web.xml,在下列xml片段中
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>ssiadmin only</web-resource-name>
- <url-pattern>*.shtml</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>ssiadmin</role-name>
- </auth-constraint>
- </security-constraint>
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>ssiadmin only</web-resource-name>
- <url-pattern>*.shtml</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>ssiadmin</role-name>
- </auth-constraint>
- <user-data-constraint>
- <transport-guarantee>CONFIDENTIAL</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
NONE: 对所使用的通信协议不加限制;
CONFIDENTIAL:使用加密的通信协议;
INTEGRAL: 数据必须以一种防止截取它的人阅读它的方式传送。