.Net程序通过TLS1.2访问HTTPS网站的问题

一.介绍

这个问题还是挺少见的,因为触发的条件是.Net编写的程序访问的HTTPS网站开启了TLS1.2 Only,这就禁止了客户端和服务端协商后降级的情况,因而最终导致了无法访问。

二.进一步分析

列举一下条件

1. 程序使用.Net语言开发
2. 目标.Net框架版本为4.0以下
3. 目标客户端未安装微软的可选补丁
4. 使用 HttpClient 或者 WebClient 来访问接口(网站)
5. 接口使用HTTPS且强制TLS1.2

在如上情况下,会无法访问接口

微软官方补丁如下
* KB3154518 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
* KB3154519 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
* KB3154520 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
* KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10. 阅读全文→

Centos 6更新glibc——编译或RPM,任君选择

很多软件写着只支持Centos7而不支持Centos6,很大的原因就是因为要求的glibc版本大于2.12(Centos6内置的最高版本),所以这就很尴尬。其实如果解决了glibc的版本问题,很多情况下这些Centos7 Only的程序都是能够正常跑在Centos6上的。

那么,很多人就觉得,既然yum没有高版本的,那我就自己编译呗,我曾经也这么想过……然后,结果比较蛋疼,我成功的陷入了僵局,旧版本的glibc没了,新版本的还不能用,然后整个系统没几个命令可以用,连关机重启都不行,想恢复旧版本的glibc又没办法,只能重装系统。

所以我在这儿给两个办法,一个是rpm的,不过只是2.14版本,大部分情况下够用。还有一个是编译的方法, 不过是借鉴了别人的,考虑的略为全面点,能在失败的情况下救回来。

首先,我们可以用下面几种办法来查看当前glibc版本

阅读全文→

Proxmox 4 LXC无法启动——Server refused to allocate pty问题

一.事情经过

Proxmox 4采用LXC作为OpenVZ的替代品,不过我用的系统模板还是OpenVZ的,毕竟比较好找,之前也一直没问题,今天重启了一下一个容器,然后就坏事了……且让我细细道来

二.人间惨剧

我用Proxmox开小鸡来搭建Hadoop集群,采用LXC而不是KVM的主要原因还是前者性能损耗更小,一直以来都挺正常的,今天跑了几个脚本之后就顺手重启了下,结果发现重启后连不上了!!!!!这特么要出事啊,数据全在上面,怎么办?

先找好应急处理办法,直接mount后导出数据,但是我不服啊,然后我就开始找问题

①SSH无法登陆,卡在连接那儿,说明已经连上机器了,但无法进行后续步骤,先在母鸡上连接测试,也是这个情况,说明不是网络问题

②关闭容器后用命令行方式启动,发现没有报错,那么容器状况也是正常的

③使用ssh的-vv参数,发现有server refused to allocate pty的错误提示,无法分配PTY?

没错了,连接建立后因为无法分配PTY所以无法完成后续步骤,那么到底是因为什么导致的这个原因呢?

三.罪恶根源

我继续研究,输入lxc使用tab补全,我发现了lxc-attach命令,嘿嘿,就是它了,lxc-attach --name ID可以让我们直接进入容器中,然后我们tail -f /var/log/secure,果然有问题

这两行错误映入眼帘,就是你了,那么怎么解决?一波谷歌,发现了不少解决方案,基本是如下 阅读全文→

Linode(XEN/KVM)更换为自定义内核

一.请原谅我作死

说起昨天把我的Linode老日本机房从AMH换Plesk的过程,其中还有个东西需要额外记录下,就是换内核,这玩意我发现是真的有坑啊
因为Plesk Onyx自带Docker(这点简直Nice),所以我打算把常用的Centos6换成7,毕竟一方面内核低,第二方面Centos6的Docker版本很久很久很久没更新了,很多功能都有缺失,实在是没法用。那么说干就干,换系统真的方便,直接面板Rebuild一下就行了,但是!!!内核的话我也真是怕了,最近一堆漏洞,我选择用最新的,考虑到BBR的问题我选择4.9版本的,4.10说实在话不太敢用。
因为Linode默认启动的内核并不是硬盘上的,而是类似DO选择了网络加载内核,这就必须得切换成加载硬盘的内核才行,但是但是!!!必须先对系统进行一番配置,不然直接切换了妥妥的进不去系统

二.怎么解救

对于Centos6来说,这个很方便

至于Centos7,则有所不同

/dev/xvda是XEN的默认系统分区,如果是KVM的话就是/dev/vda

获取vmlinuz-*文件的绝对路径的办法 ls -l /boot/vmlinuz* 阅读全文→

Plesk Onyx升级MariaDB数据库

被某人安利了Plesk,所以打算把博客的AMH换掉,这也是今天为啥博客挂了大半天的原因,本来以为挺快就能搞定的,但是……上手后发现这货功能实在太鸡儿多了,所以花了不少时间来摸索,由于Plesk Onyx无论是17.0还是17.5版本都默认带MariaDB 5.5而我的博客原数据库是Mysql 5.7的,所以为了“兼容”(强迫症),想把MariaDB从5.5升级到10.1,这个版本和Mysql 5.7基本同级,但是……我找了好半天重装了数次系统还是没找到怎么直接换数据库版本,头大,只能谷歌。结果……发现这个的数据库其实依赖不是很强,直接随便找个方法换掉就好_(:з」∠)_,心累,试了两次后终于搞定了,记录一下防止后面有人也被坑到。

首先还是要做好备份的

这样就把原始数据备份了两份,出问题了总能东山再起,接着就是添加MariaDB的repo了,一般能直接用repo后yum安装的请务必不要用rpm来直接安装,不方便后续的更新

创建/etc/yum.repos.d/MariaDB.repo ,内容如下

阅读全文→