标签为 "https" 的存档

nodejs HTTPS发起POST请求

准备用nodejs搞一个快速注册163邮箱的东西,需要在某一步的时候post数据到https,node的官方文档实在太简陋了,网上找了个差不多的例子,拿来改了改用。

var util = require('util'),
	https = require('https');

var regUrl = "https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&adapter=%s&reforward=common/reform&targetCmd=register.ctrlTop";
var cookie = 'a=b;c=d;',
mail = 'regUsername', pass = 'password', vcode='abcde';
var _regUrl = util.format(regUrl, 'id123455', 'param2');
 var post_option = url.parse(_regUrl);
 post_option.method = 'POST';
 post_option.port = 443;
 var post_data = querystring.stringify({
     'name' : mail,
     'uid' : mail+'@163.com',
     'confirmPassword' : pass,
     'password' : pass,
     'vcode' : vcode,
     'flow' : 'main',
     'from' : '163mail_right',
     'mobile' : '',
     });
 post_option.headers = {
     'Content-Type' : 'application/x-www-form-urlencoded',
     'Content-Length' : post_data.length,
     Cookie : cookie                                               };
 var post_req = https.request(post_option, function(res){

     res.on('data', function(buffer){
         console.log(buffer.toString());
         });
 post_req.write(post_data);
 post_req.end();

图解HTTPS

HTTPS简介

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

图解HTTPS - 如何进行加密,解密,验证

图解HTTPS - 如何进行加密,解密,验证

Read more…

windows下php_curl获取https内容

在搞一个新浪微博小应用,在本地搞的开发环境,win7 旗舰版 64位。
当使用php_curl curl_init() curl_exec()时候,发现当访问接口文件 https://api.weibo.com/oauth2/access_token 要进行登陆认证时,返回结果为false,没有抓取到内容。但是访问http的内容时是正常的,但是openssl也是打开的啊,应该是可以的。
找了半天问题,后来仔细想了一下,认为可能是打开ssl内容时的证书验证问题,于是, 在curl里加入了如下参数,取消证书检验:

        $ch = curl_init();

        curl_setopt($ch,CURLOPT_TIMEOUT,$second);

        curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($ch,CURLOPT_URL,$url);
       
         //取消证书检验
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
        
        curl_setopt($ch,CURLOPT_POST, 1);

        curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);
        
        $data = curl_exec($ch);

        curl_close($ch);

Read more…