Apache2.0.63+Weblogic 8.1.4 2-way SSL

起因:

客户反馈Weblogic 8.1.4配置了全球服务器证书(双向SSL)后性能急剧下降,而不配置SSL时性能不错。

【系统运行慢时,weblogic并发资源被耗尽,查询显示,并发大部分在占用“SSL连接”】

 

这种问题可不太好处理,不管是不是Weblogic的问题,都要参考厂商的资料,但一般我们是很难获得这种国外公司的支持的。周末就要出差了,我得准备一个保底方案。考虑Apache上运行SSL的性能是可以信任的,我准备的保底方案是Apache(run 2-way SSL)->Weblogic(HTTP),这样应用双向SSL时把SSL的压力扔给Apache而不影响Weblogic,我想肯定是可行的。

 

本来打算使用Apache 2.2.x+Weblogic 9.1.0进行测试,但一来在Weblogic 9.1.0安装目录中找不到mod_wl_20.so,二来在网上搜索到mod_wl_20.so在Apache 2.2.x运行不了的先例,而且还没找到解答。而我现在最重要的是解决客户的问题,没必要第一个吃螃蟹。

 

由于BEA被Oracle收购,Weblogic的早期版本从官网上都找不到下载链接了。花了些功夫,找到链接http://download2.bea.com/pub/platform/81/server814_win32.exe

 

配置Apache2.0.63+Weblogic 8.1.4 2的方法是:

1、复制D:/bea/weblogic81/server/bin/mod_wl_20.so到C:/Program Files/Apache Group/Apache2/modules

2、编辑httpd.conf,增加:

loadmodule weblogic_module modules/mod_wl_20.so
<IfModule mod_weblogic.c>
  WebLogicHost localhost
  WebLogicPort 7001
</IfModule>
<Location /CertLogonWebDemo>
  SetHandler weblogic-handler
</Location>
这样配置访问http://localhost/CertLogonWebDemohttp://localhost:7001/CertLogonWebDemo就可以看到完全一样的内容了。

 

配置apache的双向SSL对我来说简直轻车熟路,时间不早,不再赘述。

 

但是最重要的问题出现了,在java代码里使用request.getAttribute("javax.servlet.request.X509Certificate")返回值为null。也就是说Apache并没有把client certificate传递给Weblogic,因此运行于Weblogic上的web application无法认证客户端的证书,这是完全不能接受的。

 

我先认为应该是Weblogic Apache HTTP Server Plug-In(就是mod_wl_20.so的配置)的问题,花了很大精力却始终不能解决。相关文档地址如下:

http://edocs.bea.com/wls/docs81/plugins/apache.html

 

费劲心思终于找到https://support.bea.com/application_content/product_portlets/support_patterns/wls/SSLAndPlug-inPattern.html#ERROR_3_%96_Client_cert_not_exported_to

大概是要配置apache支持SSLExportClientCertificates选项,但是把该选项添加到Apache 2.0.63时,Apache启动又报错了,原来SSLExportClientCertificates是Apache 1的配置选项。

再查到http://phpeye.com/apachemanual/ssl/ssl_compat.html,根据文档在ssl.conf中增加

SSLOptions +ExportCertData

刷新https://localhost/CertLogonWebDemo,终于搞定。

 

唉,现在又到2:14 am了。洗澡!睡觉!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值