服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

解决aix配置tomcat https出现的问题


  下午,qa报告了一个问题,在aix上配置tomcat的https出现问题,具体异常如下:
catalina.start: lifecycleexception:  
null.open:  java.security.nosuchalgorithmexception: class com.ibm.jsse.bq configured for sslcontext not a sslcontext
lifecycleexception:  
null.open:  java.security.nosuchalgorithmexception: class com.ibm.jsse.bq configured for sslcontext not a sslcontext
        at org.apache.catalina.connector.http.httpconnector.initialize(httpconnector.java:1209)
  
于是,查了tomcat中的server.xml的connector配置,如下:
<connector classname="org.apache.catalina.connector.http.httpconnector" port="8544" minprocessors="5" maxprocessors="75" enablelookups="true" acceptcount="10" debug="0" scheme="https" secure="true" allowchunking="false">
    <factory classname="org.apache.catalina.net.sslserversocketfactory" clientauth="false" protocol="tls" keystorefile="/tibco/tra2/tibco/administrator/domain/aix_test_gg/ssl/keystore" keystorepass="123456"/>
</connector>
 
查看了aix上java的信息版本,如下:
java version "1.4.2"
java(tm) 2 runtime environment, standard edition (build 1.4.2)
classic vm (build 1.4.2, j2re 1.4.2 ibm aix build ca1420-20040626 (jit enabled: jitc))
 
这个问题一般是与java.security有关,于是查看了jre/1.4.2/lib/security下的java.security文件配置,主要是securty.provider的配置信息,如下:
security.provider.1=com.ibm.jsse.ibmjsseprovider
security.provider.2=com.ibm.crypto.provider.ibmjce
security.provider.3=com.ibm.security.jgss.ibmjgssprovider
security.provider.4=com.ibm.security.cert.ibmcertpath
 
查了com.ibm.jsse.bq这个class,竟然在ibmjsse和ibmjce这两个provider中都存在,但是classload应该是首先加载ibmjce的,这应该就是问题所在。

于是将securty.provider的配置信息更改为:
security.provider.1=com.ibm.crypto.provider.ibmjce
security.provider.2=com.ibm.jsse.ibmjsseprovider
 
并且重新生成keystore文件,就可以了。

扫描关注微信公众号