终极解决:iOS 与 Java 服务器之间 SSL 握手失败的解决:Cipher Suites

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: iOS 与 Java 服务器之间 SSL 握手失败的解决:Cipher Suites太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商业用途-保持一致”创作公用协议转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

iOS 与 Java 服务器之间 SSL 握手失败的解决:Cipher Suites

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


终极解决:

------------------

iOS 与 Java 服务器通讯建立 SSL 通道过程中,Java 服务器先报异常,然后把异常最后捕获点,返回给 iOS 客户端,但 Java 服务器端确有一个掩盖的事实异常,那就是找不到 Cipher Suites,由此字面意思,就清楚地知道,是 Java 服务器没有找到可用于 iOS 客户端要求的加密套件。


之前解决,其实也是误解,实际上是那台服务器上具有完整的加密套件而已。


这要追溯到 JDK 的安全机制包:local_policy.jar、US_export_policy.jar

Mac 下,10.10.2 默认未安装或禁用了升级前版本的 JDK,故从 Oracle 官网下载安装 JDK 1.8 后的位置:

/Library/Java/JavaVirtualMachines/1.6.0_65-b14-462.jdk/Contents/Home/lib/security

Windows 64 位 JDK 下的位置:

C:\Program Files\Java\jdk1.6.0_45\jre\lib\security

Windows 64 位 JRE 下的位置:

C:\Program Files\Java\jre6\lib\security


在 Oracle 官网搜 JCE (Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy),就会找到最新版本 JDK1.7 和 JDK1.8 对应的包,解压出来,就包含了 local_policy.jar、US_export_policy.jar 两个包,替换上面对应版本 JDK 该包位置下的文件即可。


有时会不好用,需要重启电脑,清空 Eclipse 工作空间等等,但一定会好用。


JDK 1.6 版对应的 JCE 在 CSDN 下载频道,可以搜到,目前 Oracle 官网能下载到 JDK 1.7、1.8 对应的 JCE,在 JDK 下载页下方仔细找 Java Cryptography Extension


------------------

好久没填坑了,不过这回这个感觉非常有必要填一填,因为我的猜测,终于验证了,虽然不是我印证的,那更需要好好记一记,这个Cipher Suites 后面的事情,太不可思议了。


不可思议,这牵扯到美国对华软件出口限制。。。。。。类似的情况


http://www.brieftools.info/article/62392

http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html


-------------------

先挖个坑,有机会填,没机会填也属正常,毕竟地球表面也布满了坑,只不过我们叫盆地或高山而已。


Cipher Suites :加密套件?也许这么翻译也不准确,不过 SSL 官方有说明,一组 RSA、3DES 或 MD5,也或者其它对称或非对称加密算法的组合。


SSL 拨手开篇即道:HelloClient,同时带着相关设置,其中就包含着这个 Cipher Suites 的名字。

iOS 和 Java 所支持的加密套件并不完全一样,可能有个交集,但实际获得到的 Java 的套件,在 iOS 上虽然都有,不过并不是都可用,可能有些是 Mac 的吧。

所以当 iOS 向 Java 服务器请求 SSL 通道建立时,HelloClient 发出后,带着的设置中,就有加密套件名称,Java 服务端通过该名称查找其支持的套件中是否存在,如果不存在,那么就报错了 not found cipher suites in common。


这句英文一直没搞清是干啥的,不过一直知道是服务端报的异常,而网上把国内国外都翻了个底儿朝天,也没人就此问题有一个很好的解答。


那么,看到这里基本应该明白了。


后续有时间,把过程整理出来,最好是带图的,格式化得很好的,俺自个儿也稀汗有美感的文章,不过时间总是那么着急,回头再说吧。




目录
相关文章
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
68 9
|
1月前
|
Java 网络安全 Maven
Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
【10月更文挑战第26天】Exception in thread "main" java.lang.NoSuchMethodError: okhttp3.OkHttpClient$Builder.sslSocketFactory(Ljavax/net/ssl/SSLSocketFactory;Ljavax/net/ssl/X509TrustManager;)Lokhttp3/OkHttpClient$Builder; 问题处理
43 2
|
2月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
66 1
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
大数据-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece
88 4
|
2月前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
128 4
|
2月前
|
弹性计算 应用服务中间件 网络安全
ECS服务器使用:SSL证书安装、配置和问题定位指南
本文简要介绍了SSL证书的生成与部署方法,包括使用OpenSSL生成自签名证书和从CA获取证书的步骤,以及在Apache和Nginx服务器上的配置方法。此外,还提供了测试证书是否生效的方法和常见问题的解决策略,帮助确保证书正确安装并解决调试过程中可能遇到的问题。
197 0
|
2月前
|
域名解析 安全 网络安全
阿里云服务器WordPress环境上安装SSL证书
阿里云服务器WordPress环境上安装SSL证书
|
23天前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
70 6
|
3天前
|
存储 监控 安全
告别手动续签烦恼:一键实现免费SSL证书自动更新
告别手动续签烦恼,一键实现免费SSL证书自动更新。通过自动化续签过程,减少人为错误,提高安全性,节省时间,确保网站始终提供安全、可信的服务。选择支持自动续签的证书颁发机构,并配置相应的工具,轻松管理SSL证书。
|
4天前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
下一篇
DataWorks