2013-02-26 120 views
1

背景:
我對涉及客戶端(通過客戶端證書)認證自身的一個項目工作。我們正在嘗試啓動第一方認證客戶端證書並啓動應用程序的第三方應用程序。
我們使用Java和SSL hanshake,而我們的客戶端服務器是Weblogic 10.x.客戶端證書是PKCS12格式(不能改變這一點)
這是呈現證書的一段代碼:
使用客戶端證書的Weblogic

System.setProperty("javax.net.ssl.keyStore","MyPath/cert.pfx"); 
System.setProperty("javax.net.ssl.keyStorePassword","MyPwd"); 
System.setProperty("javax.net.ssl.keyStoreType","PKCS12"); 
url.openConnection(); 

現在,這一切都工作得很好,從獨立。當我們把這個放在weblogic上時,問題就開始了。有時會起作用,有時會返回「客戶端證書不存在」(http 403.7)。我嘗試了各種組合(包括在weblogic控制檯上配置custome keystore),但似乎沒有任何工作。任何想法爲什麼weblogic會完全忽略SSL設置(即使將密鑰庫設置爲不存在的文件,它也不會拋出錯誤)?用於SSL的System.setProperty在weblogic上顯得無用!

回答

1

終於找到了解決方案!如果通過Java完成Weblogic的話,Weblogic似乎會覆蓋密鑰庫配置。這對我來說很有用,就是在Web邏輯啓動時在JVM級別上配置SSL設置。
要使其工作,我只是說在啓動腳本這些Java選項的WebLogic:

-Djavax.net.ssl.keyStore=MyPath/cert.pfx 
-Djavax.net.ssl.keyStoreType=MyPwd 
-Djavax.net.ssl.keyStorePassword=PKCS12 

重啓動WebLogic和SSL以來一直致力於大呢:)

1

在WebLogic 12c中你還需要添加參數-DUseSunHttpHandler=true爲了告訴WebLogic Server以使用Sun HTTP處理程序,而不是它自己的。因此,你需要以下Java VM參數:

-Djavax.net.ssl.keyStore=MyPath/cert.pfx 
-Djavax.net.ssl.keyStoreType=PKCS12 
-Djavax.net.ssl.keyStorePassword=MyPwd 
-DUseSunHttpHandler=true