nodejs创建TLS服务

nodejs创建TLS服务

by 伍雪颖

server.js

var tls = require('tls');
var fs = require('fs');

var options = {
     key: fs.readFileSync('./keys/server.key'),
     cert: fs.readFileSync('./keys/server.crt'),
     requestCert: true,
     ca: [ fs.readFileSync('./keys/ca.crt')]
};

var server = tls.createServer(options,function(stream) {
     console.log('server connected',stream.authorized?'authorized':'unauthorized');
     stream.write("welcome!\n");
     stream.setEncoding('utf8');
     stream.pipe(stream);
});
server.listen(8000,function() {
     console.log('server bound');
});

client.js

var tls = require('tls');
var fs = require('fs');

var options = {
     key: fs.readFileSync('./keys/client.key'),
     cert: fs.readFileSync('./keys/client.crt'),
     ca: [ fs.readFileSync('./keys/ca.crt')]
};

var stream = tls.connect(8000,options,function() {
     console.log('client connected',stream.authorized?'authorized':'unauthorized');
     process.stdin.pipe(stream);
});

stream.setEncoding('utf8');
stream.on('data',function(data) {
     console.log(data);
});

stream.on('end',function() {
     server.close();
});

证书生成:

server.key,client.key

openssl genrsa -out server.key 1024

openssl genrsa -out client.key 1024

ca.crt

openssl genrsa -out ca.key 1024

openssl req -new -key ca.key -out ca.csr

openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

server.crt

openssl req -new -key server.key -out server.csr

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

client.crt

openssl req -new -key client.key -out client.csr

openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -out client.crt

时间: 2024-12-30 00:04:58

nodejs创建TLS服务的相关文章

nodejs创建https服务

nodejs创建https服务 by 伍雪颖 serverr.js var https = require('https'); var fs = require('fs'); var options = { key: fs.readFileSync('./keys/server.key'), cert: fs.readFileSync('./keys/server.crt'), }; https.createServer(options,function(req,res) { res.write

Nodejs 创建web服务

1 // 加载http服务包 2 var http = require("http"); 3 4 // 创建服务 5 var server = http.createServer(requestListener); 6 7 // 监听端口 8 server.listen(7798); 9 10 // 请求监听处理方法 11 function requestListener (req, res) { 12 console.info(req.url); // 控制台输出信息 13 res.

Nodejs创建HTTPS服务器

Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Javascript引擎.chrome浏览器就基于V8,同时打开20-30个网页都很流畅.Nodejs标准的web开发框架Express,可以帮助我们迅速建立web站点,比起PHP的开发效率更高,而且学习曲线更低.非常适合小型网站,个性化网站,我们自己的Geek网站!! 关于作者 张丹(Conan), 程

使用electron开发一个h5的客户端应用创建http服务模拟后台接口mock

使用electron开发一个h5的客户端应用创建http服务模拟后端接口mock 在上一篇<electron快速开始>里讲述了如何快速的开始一个electron的应用程序,既然electron是可以直接使用node环境编写程序的,那么我们就可以有很多可以处理的事,比如我们可以做个可视化的前端构建工具,或者我们可以建一个后台的管理系统.基于这两天,我简单的做了一个模拟后端接口的http服务. 它可以完成如下功能: 它可以创建http本地服务 它可以模拟后端的多种请求方式,如get.post.pu

创建TLS证书和秘钥

创建TLS证书和秘钥 前言 执行下列步骤前建议你先阅读以下内容: 管理集群中的TLS:教您如何创建TLS证书 kubelet的认证授权:向您描述如何通过认证授权来访问 kubelet 的 HTTPS 端点. TLS bootstrap:介绍如何为 kubelet 设置 TLS 客户端证书引导(bootstrap). **注意:**这一步是在安装配置kubernetes的所有步骤中最容易出错也最难于排查问题的一步,而这却刚好是第一步,万事开头难,不要因为这点困难就望而却步. 如果您足够有信心在完全

基于Socket创建Web服务

基于Socket创建Web服务 为什么要使用Socket呢,我们来看下图 Socket原理图回顾: -------------------编写SocketService,完成字母小写转大写功能----------------------------- ServerSocket服务器端代码如下: public static void main(String[] args) throws IOException { // 1:建立服务器端的tcp socket服务,必须监听一个端口 ServerSo

Topshelf创建Windows服务

使用Topshelf创建Windows服务 概述 Topshelf是创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的介绍使用使用Topshelf创建Windows 服务.Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 引用安装 1.官网:http://topshelf-project.c

Nodejs创建TCP服务器

Nodejs创建TCP服务器 1.Nodejs提供了net模块给我们,所以我们创建TCP服务器很简单: 1 require('net').createServer(function(socket) { 2 // new connection 3 socket.on('data', function(data) { 4 // got data 5 }); 6 socket.on('end', function(data) { 7 // connection closed 8 }); 9 socke

C#创建Window服务图解

一.首先打开VS2013,创建Windows服务项目 二.创建完成后对"Service1.cs"重命名位"ServiceDemo":然后切换到代码视图,写个服务运行日志. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.IO; using Syst