[JAVA] 禁用HTTPS认证(Disabling Certification validation in HTTPS)
来源:互联网 发布:软件开发工作量统计表 编辑:程序博客网 时间:2024/06/06 18:49
問題:
有一個WCF部署在功能,現要求在Java和C#下分別(http,https)調用wcf 。但是認證是私人簽發的,所以在該兩個平臺上均無法得到確認(validate)。問題就是如何在Java和C#平臺上禁用對於HTTPS的認證確認功能,當然這只能做為測試來用,正確的做法是應該是要安裝好認證的。
注意這裡的要求有點怪:是“禁用”也就是讓原有的認證確認功能不工作。但是實際上這個要求的實現是通過一個Hook:讓所有的認證確認都通過。
C#:
網上一Google就Google到了,沒難度:
直接在post前加入下述Hook,讓他永遠返回true
System.Net.ServicePointManager.ServerCertificateValidationCallbac = delegate { return true; };
Java:
本來以為Java會和C#一樣簡單,最差也不至於很難。事實也證明的確實簡單,但是就是這個簡單的答案,居然Google了一整天,主要是Keyword的使用上犯了一些錯誤。總算找到了。方法就是在程式的最開始加上如下這句話:
System.setProperty("org.apache.axis.components.net.SecureSocketFactory","org.apache.axis.components.net.SunFakeTrustSocketFactory");
作用也很簡單,騙Axis信任所有的認證。
補充說明:
WCF中web.config需要配置 https訪問通道,見下述兩行,紅色差異部份。
<endpoint address="" binding="basicHttpBinding"
bindingNamespace="http://hao123.com/test"
contract="TEST_Service.ITestService"/>
bindingNamespace="http://hao123.com/test"
contract="TEST_Service.ITestService"/>
<endpoint address="" binding="basicHttpsBinding" bindingNamespace="http://hao123.com/test"
contract="TEST_Service.ITestService"/>
contract="TEST_Service.ITestService"/>
0 0
- [JAVA] 禁用HTTPS认证(Disabling Certification validation in HTTPS)
- JAVA实现https单向认证
- Java nginx https 双向认证
- java https双向认证实现
- java实现https双向认证
- https认证
- https认证
- java连接https时禁用证书验证.
- HTTPs in java dev @IBM
- java中实现https双向认证
- Java keytool配置https双向认证
- 基于java的https双向认证(android)
- JAVA调用HTTPS双向认证API
- Java https服务器证书认证问题解决方案
- Java https服务器证书认证问题解决方案
- Java https服务器认证问题的解决方法
- JAVA调用HTTPS双向认证API
- 禁用IOS9 https
- java中的异常(exception)&&try,catch,finally throw&&throws
- Android常用快捷键
- SHA-1值冲突解决方法
- SQL基本语句
- @protocol1127
- [JAVA] 禁用HTTPS认证(Disabling Certification validation in HTTPS)
- android创建文件夹和文件的一些经验教训
- Rapid Object Detection using a Boosted Cascade of Simple Features 部分翻译
- poj 3687 topsort(按顺序放球)
- html5学习笔记
- 括号配对问题
- 去掉字符串两头的空格
- 判断一个单向链表是否形成了环状结构
- oracle启动报错ORA-00845: MEMORY_TARGET not supported on this system解决办法