苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

楼主: twangel

[HttpHelper] post到https未能创建 SSL/TLS 安全通道

[复制链接]
发表于 2017-12-11 17:16:09 | 显示全部楼层
应该是不需要的,就是证书,和那几行代码,你确定加了代码贴一下我看是怎么加的。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2017-12-11 17:17:05 | 显示全部楼层
在本地测试是一下不加ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;是否可行,如果不行,那说明是服务器没有安装Tls12;
发表于 2017-12-11 17:19:19 | 显示全部楼层
启用方法参加下面,百度上找的,基本都是这样

首先在这个网站上测试一下自己的服务器究竟处于什么水平。
测试结果显示是支持SSL3.0的并且不支持TLS 1.2。证书使用SHA1签名算法不够强。这点比较容易接受,因为Windows服务器默认并没有开启TLS1.2。
要提高服务器的评级,有3点需要做。
使用SHA256签名算法的证书。
禁用SSL3.0,启用TLS1.2
禁用一些弱加密算法。
由于目前服务器使用的证书是近3年前购买的,正好需要重新购买,顺便就可以使用SHA256签名算法来买新的证书就可以了。在生产环境部署之前,先用测试机测试一下。
根据这篇文章中的3条命令把证书颁发机构的签名算法升级上去。测试环境是Windows2012 R2,默认的签名算法是SHA1
UpgradeCertification Authority to SHA256
http://blogs.technet.com/b/pki/archive/2013/09/19/upgrade-certification-authority-to-sha256.aspx
certutil -setreg ca\csp\CNGHashAlgorithm SHA256
net stop certsvc
net start certsvc
然后,在服务器中添加注册表键值并重启已启用TLS1.2和禁用SSL3.0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS1.2\Server\Enabled REG_DWORD类型设置为1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Server Enabled REG_DWORD类型设置为0.
重新启动服务器,是设置生效。
由于测试机没有公网地址,所以去下载个测试工具,方便测试。
可以下载到EXE或者JAVA版本的测试工具,方便的在内网测试服务器支持的加密方式。
测试了一下,发现TLS1.2没有启用。

 楼主| 发表于 2017-12-11 17:22:58 | 显示全部楼层
我是直接加了4个SecurityProtocolType,这个怎么确定服务器上有没有装,我.net应该是4,7的那个
[C#] 纯文本查看 复制代码
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
        ServicePointManager.Expect100Continue = false;
        HttpHelper h = new HttpHelper();
        HttpItem item = new HttpItem()
        {
            URL = "https://123.138.37.154:8443/sxsjcjxm/services/query",//URL     必需项

            Encoding = Encoding.GetEncoding("utf-8"),//,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
            Method = "POST",//URL     可选项 默认为Get
            Timeout = 100000,//连接超时时间     可选项默认为100000
            ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
            IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
            Cookie = "",//字符串Cookie     可选项
            UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
            Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
            ContentType = "text/json",//返回类型    可选项有默认值
            Allowautoredirect = true,//是否根据301跳转     可选项
            Connectionlimit = 1024,//最大连接数     可选项 默认为1024
            ProtocolVersion = HttpVersion.Version11,
            Postdata = "{\"YHYZ\":[{\"GCXM\":\"4028814946d612b20146d63490506ead\"}]}",//Post数据     可选项GET时不需要写
            ResultType = ResultType.String,//返回数据类型,是Byte还是String
            CookieCollection = new CookieCollection(),//可以直接传一个Cookie集合进来
            CerPath = "e:\\1.cer"
        };
        item.Header.Add("ACNT", "yp_jl");
        item.Header.Add("PSWD", "123");
        //得到HTML代码
        HttpResult result = h.GetHtml(item);
        //取出返回的Cookie
        string cookie = result.Cookie;
        //返回的Html内容
        string html = result.Html;
        lb.Text = html;


发表于 2017-12-11 17:25:49 | 显示全部楼层
看上面帖子,不需要确定,直接安装启用就行了。
发表于 2017-12-11 17:26:58 | 显示全部楼层
这个是检查是否开启的https://www.ssllabs.com/ssltest/index.html
 楼主| 发表于 2017-12-11 17:27:20 | 显示全部楼层
站长苏飞 发表于 2017-12-11 17:17
在本地测试是一下不加ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;是否可行,如果 ...

本机不加也是可以正常获取数据,对方的服务器不知道是什么情况,挺怪的
 楼主| 发表于 2017-12-11 17:45:56 | 显示全部楼层
站长苏飞 发表于 2017-12-11 17:26
这个是检查是否开启的https://www.ssllabs.com/ssltest/index.html

对方只给了一个webservices的ip,其他就没了,然后我用test那个工具查了下他们的那个ip,有个返回的结果
Connection: 123.138.37.154:8443
SNI: 123.138.37.154
  TLSv1.0:
     server selection: uses client preferences
     1-- (key:  RSA)  RSA_EXPORT_WITH_RC4_40_MD5
     3-- (key:  RSA)  RSA_WITH_RC4_128_MD5
     3-- (key:  RSA)  RSA_WITH_RC4_128_SHA
     1-- (key:  RSA)  RSA_EXPORT_WITH_DES40_CBC_SHA
     2-- (key:  RSA)  RSA_WITH_DES_CBC_SHA
     3-- (key:  RSA)  RSA_WITH_3DES_EDE_CBC_SHA
     1f- (key:  RSA)  DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
     2f- (key:  RSA)  DHE_RSA_WITH_DES_CBC_SHA
     3f- (key:  RSA)  DHE_RSA_WITH_3DES_EDE_CBC_SHA
     3-- (key:  RSA)  RSA_WITH_AES_128_CBC_SHA
     3f- (key:  RSA)  DHE_RSA_WITH_AES_128_CBC_SHA
=========================================
+++++ SSLv3/TLS: 1 certificate chain(s)
+++ chain: length=1
names match:        yes
includes root:      yes
signature hash(es):
+ certificate order: 0
thumprint:  4FC043184CA40DB90DFA59003DD74357CF91E672
serial:     594B1306
subject:    CN=publicstar,OU=publicstar,O=publicstar,L=xian,ST=shannxi,C=zh
issuer:     CN=publicstar,OU=publicstar,O=publicstar,L=xian,ST=shannxi,C=zh
valid from: 2017-06-22 00:44:54 UTC
valid to:   2018-06-22 00:44:54 UTC
key type:   RSA
key size:   1024
sign hash:  SHA-1
(self-issued)
server names:
   publicstar
=========================================
Server compression support: no
Server time: 2017-12-11 09:43:48 UTC (offset: -16127 ms)
Secure renegotiation support: no
Encrypt-then-MAC support (RFC 7366): no
SSLv2 ClientHello format (for SSLv3+): yes
Minimum DH size: 512
DH parameter reuse:  no
=========================================
WARN[CS002]: Server supports very weak cipher suites (40 bits).
WARN[CS003]: Server supports weak cipher suites (56 bits).
WARN[CS005]: Server supports RC4.
WARN[CS006]: Server supports cipher suites with no forward secrecy.
WARN[RN001]: Server does not support secure renegotiation.
WARN[SK002]: Server uses DH parameters smaller than 2048 bits.
发表于 2017-12-12 09:02:26 | 显示全部楼层
SSLv3/TLS: 1
安我楼上写的方法启用了吗
 楼主| 发表于 2017-12-12 09:16:46 | 显示全部楼层
站长苏飞 发表于 2017-12-12 09:02
SSLv3/TLS: 1
安我楼上写的方法启用了吗

已经在注册表里添加了那些键值,重启了问题依旧,会不会和.net有关
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 16:04

© 2014-2021

快速回复 返回顶部 返回列表