zoukankan      html  css  js  c++  java
  • node.js搭建https服务器

    HTTPS简介

      HTTPS:(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。另外在https的站点中是不允许请求http的接口的。

    HTTPS和HTTP的区别

    • https协议需要到ca申请证书,一般免费证书很少,需要交费。

    • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    openssl生成证书文件

      只要安装了git客户端就会有openssl

      检测openssl是否安装

    openssl version -a

        接下来开始生成证书:

    #1、生成私钥key文件:
    openssl genrsa -out privatekey.pem 1024
    
    #2、通过私钥生成CSR证书签名  (需要填一些信息、可直接回车)
    openssl req -new -key privatekey.pem -out certrequest.csr
    
    #3、通过私钥和证书签名生成证书文件 
    openssl x509 -req -in certrequest.csr -signkey privatekey.pem -out certificate.pem

    执行完第三条命令会看到:

      Signature ok

    表示生成成功,最终看到如下三个文件

    • privatekey.pem: 私钥

    • certrequest.csr: CSR证书签名

    • certificate.pem: 证书文件

    Node.js修改启动文件:app.js

    ~ vi app.js
    
    //最下面
    var https = require('https')
        ,fs = require("fs");
    
    var options = {
        key: fs.readFileSync('./privatekey.pem'),
        cert: fs.readFileSync('./certificate.pem')
    };
    
    https.createServer(options, app).listen(3011, function () {
        console.log('Https server listening on port ' + 3011);
    });

    启动服务器:

      Express server listening on port 3000

      Https server listening on port 3011

    常见问题:

    1、Failed to load resource: net::ERR_INSECURE_RESPONSE

       这个是因为你用的证书不正规,让浏览器给拦截掉了,打开你的控制台并点击里面的URL。它将带你进入API页面,然后在页面中接受SSL证书,返回你的应用页面并重新加载。

     
  • 相关阅读:
    数据库基础
    oracle高级查询之Over();
    Java Web Servlet开发流程图(页面提交方法、Servlet跳转几种方法)
    Servlet——HttpServletRequest对象详解
    spring <context:annotation-config> 跟 <context:component-scan>诠释及区别
    Spring+SpringMVC +MyBatis整合配置文件案例66666
    eclipse新工作空间集成maven并构建新web项目
    第二章:第一个Netty程序
    第一章:Netty介绍
    eclipse 创建maven web示例
  • 原文地址:https://www.cnblogs.com/xbblogs/p/9367764.html
Copyright © 2011-2022 走看看