zoukankan      html  css  js  c++  java
  • NodeJS搭建HTTPS服务器

    NodeJS搭建HTTPS服务器

    1、创建服务端证书。

    openssl genrsa -out server-key.pem 1024
    openssl req -new -key server-key.pem -config openssl.cnf -out server-csr.pem
    openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in server-csr.pem -out server-cert.pem -extensions v3_req -extfile openssl.cnf

      服务器代码:

    var https = require('https');
    var fs = require('fs');
    
    var options = {
        key: fs.readFileSync('./keys/server-key.pem'),
        ca: [fs.readFileSync('./keys/ca-cert.pem')],
        cert: fs.readFileSync('./keys/server-cert.pem')
    };
    
    https.createServer(options,function(req,res){
        res.writeHead(200);
        res.end('hello world
    ');
    }).listen(3000,'127.0.0.1');

    2、创建客户端证书。

    openssl genrsa -out client-key.pem
    openssl req -new -key client-key.pem -out client-csr.pem
    openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in client-csr.pem -out client-cert.pem

      客户端代码:

    var https = require('https');
    var fs = require('fs');
    
    var options = {
        hostname:'127.0.0.1',
        port:3000,
        path:'/',
        method:'GET',
        key:fs.readFileSync('./keys/client-key.pem'),
        cert:fs.readFileSync('./keys/client-cert.pem'),
        ca: [fs.readFileSync('./keys/ca-cert.pem')],
        agent:false
    };
    
    options.agent = new https.Agent(options);
    var req = https.request(options,function(res){
    console.log("statusCode: ", res.statusCode);
      console.log("headers: ", res.headers);
        res.setEncoding('utf-8');
        res.on('data',function(d){
            console.log(d);
        })
    });
    
    req.end();
    
    req.on('error',function(e){
        console.log(e);
    })

    参考:

    1、http://cnodejs.org/topic/54745ac22804a0997d38b32d

  • 相关阅读:
    75分以下是文盲
    罗永浩最近怎么了
    北京奥运会赛事项目竞赛日程表
    从今天开始我的blog增加计数器
    07工作总结
    五道脑筋测试题,全答对的是天才
    转:国家名字的含义
    我的新装备双狂
    上海海鲜自助:喜多屋vs古象大酒店
    因为有了爱
  • 原文地址:https://www.cnblogs.com/tekkaman/p/6245947.html
Copyright © 2011-2022 走看看