zoukankan      html  css  js  c++  java
  • NodeJS学习笔记 (9)网络服务-https(ok)

    模块概览

    这个模块的重要性,基本不用强调了。在网络安全问题日益严峻的今天,网站采用HTTPS是个必然的趋势。

    在nodejs中,提供了 https 这个模块来完成 HTTPS 相关功能。从官方文档来看,跟 http 模块用法非常相似。

    本文主要包含两部分:

    1. 通过客户端、服务端的例子,对https模块进行入门讲解。
    2. 如何访问安全证书不受信任的网站。(以 12306 为例子)

    篇幅所限,本文无法对 HTTPS协议 及 相关技术体系 做过多讲解,有问题欢迎留言交流。

    客户端例子

    跟http模块的用法非常像,只不过请求的地址是https协议的而已,代码如下:

    var https = require('https');
    
    https.get('https://www.baidu.com', function(res){
        console.log('status code: ' + res.statusCode);
        console.log('headers: ' + res.headers);
    
        res.on('data', function(data){
            process.stdout.write(data);
        });
    }).on('error', function(err){
        console.error(err);
    });


    服务端例子

    对外提供HTTPS服务,需要有HTTPS证书。如果你已经有了HTTPS证书,那么可以跳过证书生成的环节。如果没有,可以参考如下步骤

    生成证书

    1、创建个目录存放证书。

    mkdir cert
    cd cert

    2、生成私钥。

    openssl genrsa -out chyingp-key.pem 2048
    

    3、生成证书签名请求(csr是 Certificate Signing Request的意思)。

    openssl req -new 
      -sha256
      -key chyingp-key.key.pem 
      -out chyingp-csr.pem 
      -subj "/C=CN/ST=Guandong/L=Shenzhen/O=YH Inc/CN=www.chyingp.com"
    

    4、生成证书。

    openssl x509 
      -req -in chyingp-csr.pem 
      -signkey chyingp-key.pem 
      -out chyingp-cert.pem
    

    HTTPS服务端

    代码如下:

    var https = require('https');
    var fs = require('fs');
    
    var options = {
        key: fs.readFileSync('./cert/chyingp-key.pem'), // 私钥
        cert: fs.readFileSync('./cert/chyingp-cert.pem') // 证书
    };
    
    var server = 

  • 相关阅读:
    Qt表格导出图片
    QItemDelegate edit某个控件后把数据写回model
    qt json操作
    qt在tableview中绘制图片
    qt tableview里面添加控件
    qt QAbstractItemModel一些方法介绍
    ecahrt表格内容自适应
    qt tableview列头背景颜色设置
    qt对plot柱状图颜色设置
    qtdebug和release加载不同的文件配置
  • 原文地址:https://www.cnblogs.com/eret9616/p/9187933.html
Copyright © 2011-2022 走看看