nodejs TLS 只加密,未授权,进一步完善

const tls = require(‘tls‘);
const fs = require(‘fs‘);

const options = {
    key: fs.readFileSync(‘my_key.pem‘),
    cert: fs.readFileSync(‘my_cert.pem‘),

    // This is necessary only if using the client certificate authentication.
    requestCert: false,

    // This is necessary only if the client uses the self-signed certificate.
    ca: [fs.readFileSync(‘user_cert.pem‘)]
};

const server = tls.createServer(options, (socket) => {
    console.log(‘server connected‘,
        socket.authorized ? ‘authorized‘ : ‘unauthorized‘);
    socket.write(‘welcome!\n‘);
    socket.setEncoding(‘utf8‘);
    socket.pipe(socket);
});
server.listen(8000, () => {
    console.log(‘server bound‘);
});

  

const tls = require(‘tls‘);
const fs = require(‘fs‘);

const options = {
    // Necessary only if using the client certificate authentication
    key: fs.readFileSync(‘user_key.pem‘),
    cert: fs.readFileSync(‘user_cert.pem‘),
    rejectUnauthorized: false,
    // Necessary only if the server uses the self-signed certificate
    ca: [fs.readFileSync(‘my_cert.pem‘)]
};

const socket = tls.connect(8000, options, () => {
    console.log(‘client connected‘,
        socket.authorized ? ‘authorized‘ : ‘unauthorized‘);
    process.stdin.pipe(socket);
    process.stdin.resume();
});
socket.setEncoding(‘utf8‘);
socket.on(‘data‘, (data) => {
    console.log(data);
});
socket.on(‘end‘, () => {
    server.close();
});

密钥:摘自nodejs 官方文档

openssl genrsa -out ryans-key.pem 2048;
openssl req -new -sha256 -key ryans-key.pem -out ryans-csr.pem;
openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem
 
时间: 2024-10-17 00:47:53

nodejs TLS 只加密,未授权,进一步完善的相关文章

修补--Redis未授权访问漏洞

--------------------------------阿里云解决方案----------------------------------- 一.漏洞描述 Redis因配置不当可以导致未授权访问,被攻击者恶意利用.当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除.泄露或加密勒索事件发生,严重危害业务正常服务. 二.Redis安全漏洞

Security基础(三):OpenSSL及证书服务、邮件TLS/SSL加密通信

一.OpenSSL及证书服务 目标: 本案例要求熟悉OpenSSL工具的基本使用,完成以下任务操作: 使用OpenSSL加密/解密文件 搭建企业自有的CA服务器,为颁发数字证书提供基础环境 方案: 使用两台RHEL7虚拟机,其中svr7作为CA数字证书服务器,而pc207作为测试用客户机. 步骤: 步骤一:使用OpenSSL加密/解密文件 1)加密文件 创建一个明文的文本文件f1.txt,使用openssl进行加密,选用des3加密算法,输出的加密文件为f1.txt.enc . [[email 

邮件TLS/SSL加密通信

案例1:邮件TLS/SSL加密通信 1 案例1:邮件TLS/SSL加密通信1.1 问题 本案例要求为基于Postfix+Dovecot的邮件服务器提供加密通信支持,主要完成以下任务操作: 为SMTP服务(postfix)添加TLS/SSL加密通信支持 基于dovecot配置POP3s+IMAPS加密通信支持 客户端收发信测试,确保加密的邮件通信可用 1.2 方案 使用两台RHEL7虚拟机,其中svr7作为CA服务器,而mail作为测试用的Postfix+Dovecot邮件服务器.另外可准备一台p

zookeeper的未授权访问漏洞问题

zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务.zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本.另外还有个工具对理解和使用zookeeper服务非常有用,即zk-ui,该工具是zk服务端的可视化工具,可在web界面对服务端进行操作. zookeeper以树状结构保存数据,我们完全可以对比linux文件系统理解zookeeper的文件系统.不同点在于linux下的每个目录名对应一个znode. znode是z

未授权访问总结学习

fastcgi(9000端口): 以下这段话摘自p神 Fastcgi其实是一个通信协议,和HTTP协议一样,都是进行数据交换的一个通道. HTTP协议是浏览器和服务器中间件进行数据交换的协议,浏览器将HTTP头和HTTP体用某个规则组装成数据包,以TCP的方式发送到服务器中间件,服务器中间件按照规则将数据包解码,并按要求拿到用户需要的数据,再以HTTP协议的规则打包返回给服务器. 类比HTTP协议来说,fastcgi协议则是服务器中间件和某个语言后端进行数据交换的协议.Fastcgi协议由多个r

软件加密与授权管理的概念

软件加密的是什么,简单来说就是为软件加密以使软件不被盗版.软件保护是针对软件开发者提出的,而软件授权(License)的概念则是同时考虑了开发者和最终用户两方面的感受而提出的."授权(License)"在名字上弱化了"保护"给最终用户带来的对立情绪,强调了软件的授权许可使用. 软件加密的概念是站在开发者的角度出发的, 它强调的是利用以加密为主的技术手段保护软件不被破解.从理论上说,只要拥有足够的资源和时间,所有的软件保护技术都可以被破解.但是,如果一种保护技术的安全

Redis未授权访问漏洞的利用及防护

Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露在公网上.如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在访问目标服务器时,可以在未授权的情况下访问Redis以及读取Redis的数据.攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行文件的读写等操作.攻击者

SSL/TLS深度解析--测试TLS/SSL加密

项目地址 https://github.com/drwetter/testssl.sh testssl.sh 是一个免费且开源的功能丰富的命令行工具,用于在 Linux/BSD 服务器上检查支持加密,协议和一些加密缺陷的支持 TLS/SSL 加密的服务. testssl git clone --depth 1 --branch 2.9.5 https://github.com/drwetter/testssl.sh.git 错误 Fatal error: Neither "dig",

Wordpress未授权查看私密内容漏洞 分析(CVE-2019-17671)

目录 0x00 前言 0x01 分析 0x02 思考 0x03 总结 0x04 参考 0x00 前言 没有 0x01 分析 这个漏洞被描述为"匿名用户可访问私密page",由此推断是权限判断出了问题.如果想搞懂哪里出问题,必然要先知道wp获取page(页面)/post(文章)的原理,摸清其中权限判断的逻辑,才能知道逻辑哪里会有问题. 这里我们直接从wp的核心处理流程main函数开始看,/wp-includes/class-wp.php:main() public function ma