情景:

1、使用Java开发的Web项目,部署在服务器Tomcat中

2、项目使用HTTPS,使用阿里云的PFX证书

阿里云推荐Tomcat配置如下

<Connector port="8443"
protocol="HTTP/1.1"
SSLEnabled="true"
scheme="https"
secure="true"
keystoreFile="cert/214181506600131.pfx"
keystoreType="PKCS12"
keystorePass="证书密码"
clientAuth="false"
SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

我的Tomcat的server.xml配置如下

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
  keystoreFile="C:/xxx.pfx"
keyStoreType="PKCS12"
keystorePass="xxx"
        ciphers="TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256"/>

3、c#下的访问HTTPS代码如下

string Address = "https://www.myweb.com/customers";
string Parameters = "{\"pagesize\":\"2\",\"pageno\":\"2\",\"conditions\":{\"searchtext\":\"\",\"orderby\":\"\"}}";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Address);
request.Method = "POST";
request.Headers.Add("X-Requested-With", "XMLHttpRequest");
request.ContentType = "application/json";
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
byte[] bytes = Encoding.UTF8.GetBytes(Parameters);
request.ContentLength = bytes.Length;
Stream poststream = request.GetRequestStream();
poststream.Write(bytes, , bytes.Length);
poststream.Close();
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
reader.Close();
response.Close();
return content

4、以上代码,在XP系统外的系统运行正常;在XP系统中出现连接超时的情况。

解决方案:

参考文档原文:https://stackoverflow.com/questions/26506432/how-to-make-tls-requests-in-net-4-on-windows-xp-to-servers-with-ssl3-disabled

这篇文章中说明了,XP系统和Tomcat之间连接不上,是因为一个加解密的东西不对应。

解决方案是Tomcat配置文件中的ciphers配置项中加入TLS_RSA_WITH_3DES_EDE_CBC_SHA这项配置

<Connector port="" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="" scheme="https" secure="true"
clientAuth="false" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"
  keystoreFile="C:/xxx.pfx"
keyStoreType="PKCS12"
keystorePass="xxx"
        ciphers="...这里是之前设置的一堆项目...,TLS_RSA_WITH_3DES_EDE_CBC_SHA"/>

然后,XP系统就能正常和Tomcat连接了

最新文章

  1. 关于iOS和OS X废弃的API你需要知道的一切
  2. Aoite 系列(04) - 强劲的 CommandModel 开发模式(上篇)
  3. 清除MAC OS X上的流氓软件 - advance mac cleaner
  4. Latex 笔记
  5. Solaris 10下Qt编译Oracle 10g驱动
  6. Domion OA 日记
  7. 继刚接触play framework后,一些心得
  8. IOS中使用像素位图(CGImageRef)对图片进行处理
  9. Myeclipse8.5开发-安装一:Myeclipse8.5注册码生成程序
  10. nopCommerce 3.9 大波浪系列 之 引擎 NopEngine
  11. cookie 和session 的区别(转)
  12. Python文件学习
  13. 一篇面经(BAT面试)(转)
  14. 7.Django|分页器
  15. django项目创建启动 ORM操作
  16. eclipse + maven + com.sun.jersey 创建 restful api
  17. 【WIN10】移植opencc到WIN10-UWP,實現自己的繁簡轉換工具
  18. [转载]ASP.NET伪静态页面的实现和伪静态在IIS7.0中的配置
  19. darktrace 亮点是使用的无监督学习(贝叶斯网络、聚类、递归贝叶斯估计)发现未知威胁——使用无人监督 机器学习反而允许系统发现罕见的和以前看不见的威胁,这些威胁本身并不依赖 不完善的训练数据集。 学习正常数据,发现异常!
  20. ffemp语音转码

热门文章

  1. Outlets
  2. Radical and array
  3. HashMap的底层原理 cr:csdn:zhangshixi
  4. CSS基础知识复习
  5. 01 【零基础入门】html学习笔记(1)
  6. mysql联合查询sql优化
  7. 小程序setdata json数据的方法
  8. 113、TensorFlow变量集合
  9. 解决让刷新页面时不提示 &quot;重试或取消”对话框
  10. java知识点拾遗:)