我为我的一个项目设置了 Weblogic 9.2 的双向 SSL。当浏览器是客户端时,设置一点也不难。
我现在需要将 tomcat 设置为客户端,而不是使用浏览器客户端。在这种情况下,Tomcat 将托管一个 JSP 页面或一个 servlet,并调用托管在 Weblogic 上的 Web 服务。我已经用 Google 搜索过,但没有找到很多关于此设置的文档。任何想法 - 在这种情况下设置 HTTPS 连接器是否有效?
谢谢
最后,我能够通过以下方式对其进行配置。
为 Weblogic 服务器设置 SSL 生成服务器私钥和证书
java utils.CertGen -selfsigned -certfile SelfCA.cer -keyfile SelfKey.key -keyfilepass password -cn "localhost"
创建身份密钥库
java utils.ImportPrivateKey -keystore IdentityStore.jks -storepass password -keypass password -alias trustself -certfile SelfCA.cer.pem -keyfile SelfKey.key.pem -keyfilepass password
将证书导入新的信任密钥库
keytool -import -trustcacerts -alias trustself -keystore truststore.jks -file SelfCA.cer.der -keyalg RSA
当提示“输入密钥库密码”时,输入“keypassword”
登录到 WL 管理控制台 ( http://www.xyz.com:7001/console )(默认用户名=weblogic 和密码=weblogic)。在我的示例中,我启动了“Weblogic 示例服务器”</p>
导航到服务器-> 示例服务器-> 密钥库。
点击“锁定和编辑”</p>
输入以下信息
密钥库下拉菜单:选择“自定义身份和自定义信任”</p>
自定义身份密钥库:[LOCATION]\IdentityStore.jks
自定义身份密钥库类型:JKS
自定义身份密钥库密码:密码
自定义信任密钥库:[LOCATION]\truststore.jks
自定义信任密钥库类型:JKS
自定义信任密钥库密码:keypassword`
导航到 SSL 选项卡。输入以下信息
身份和信任位置:密钥库
私钥别名:trustself
私钥密码:密码
设置 Tomcat 客户端
为 Tomcat 生成证书
keytool -genkey -alias client -keyalg RSA -validity 3650 -keystore client.jks -storepass abcd1234 -keypass abcd1234
keytool -export -alias client -keystore client.jks -storepass abcd1234 -file client.cer
将证书导入上面创建的信任库
keytool -import -trustcacerts -alias trustclient -keystore truststore.jks -file client.cer -keyalg RSA
在文本编辑器中打开 [TOMCAT-INSTALL-LOCATION]\bin\catalina.bat。在第 187 行之后添加以下条目
set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=C:/certs2/truststore.jks -Djavax.net.ssl.trustStorePassword=keypassword -Djavax.net.ssl.keyAlias=trustcleint
set JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.keyStore=C:/certs2/client.jks -Djavax.net.ssl.keyStorePassword=abcd1234
启动tomcat。
测试
构建一个 Web 应用程序并在 Tomcat 中部署。从 Web 应用程序中的 JSP 页面调用https://www.xyz.com:7002/jws_basic_simple/SimpleService
部署在 WebLogic 中的 Web 服务的 sayHello() 方法。