加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

Node的一个使用TLS来加密的TCP服务器

发布时间:2022-10-15 08:31:04 所属栏目:安全 来源:未知
导读: Node的加密模块,tls,使用了OpenSSL安全传输层套接字(TLS/SSL)。这是一个公开密钥系统,其中每一个客户端和服务器都有一个私钥。服务器使公钥可用,以便客户端可以加密,只有该服务器可

Node的加密模块,tls,使用了OpenSSL安全传输层套接字(TLS/SSL)。这是一个公开密钥系统,其中每一个客户端和服务器都有一个私钥。服务器使公钥可用,以便客户端可以加密,只有该服务器可以再次解密方式后续通信。tls模块被用作https模块的基础模块——它允许http服务端和客户端通过TLS/SSL通信。不幸的是,TLS/SSL是一个充满坑的世界。Node可能支持基于不同版本OpenSSl的cyphers。你可以指定你想与tls.createServer创建服务器时使用什么cyphers,但建议使用默认值,除非你有这方面的专门知识。TLS能够被用来使用net.createServer加密服务端。这个技术展示了如何创建一个必要的证书,然后开启一个客户端和一个服务端。你想要通过TCP连接来加密发送和接收通信。使用tls模块开启一个客户端和一个服务端。使用OpenSSL创立一个所需要的证书文件。

使用加密工作的主要事情是,无论是不是web服务器、邮件服务器,或者任何基于TCP协议的,是如何正确地设置密钥和证书文件。公钥加密依赖于公钥-私钥对——客户端和服务端需要一对。但是一个附加文件也是需要的:证书验证公钥(CA)。在TLS握手后创建一个TLS客户端和服务端。报告这种状态时,双方已经验证对方身份。当使用web服务端证书工作,你的CA将会被公职的组织颁发。但是对于测试目的的,你能够为自己的CA签署证书。这也易于自己的系统之间的安全通信不需要公开验证的证书。这就意味着在运行任意Node示例前,将会需要证书。这就需要OpenSSL命令行工具。openssl工具接受命令作为第一个参数,然后选择随后的参数。例如,openssl req用于X.509证书签名请求(CSR)的管理。为了让你通过一个控制中心签署的证书服务器加密方式,则需要发出以下命令:

genrsa——生成一个RSA证书;这是我们的私钥。

req——创建一个CSR

x509——使用CSR产生一个公钥签署私钥

当过程像这样分解,就很容易理解:证书要求一个权威且必须签名,我们需要一个公钥和一个私钥。过程很类似于创建签署商业认证机构,如果你想购买证书,公共web服务器使用公钥和私钥时你会怎么做。创建一个公钥和私钥完整的命令如下:

使用1024比特创建服务器的私钥。创建CSR,这里要输入主机名。签发服务器的私钥。创建客户端的私钥。为客户端创建CSR,记住这里也要输入主机名。签发客户端的私钥,然后输出一个公钥。创建一个私钥,你将要创建一个CSR。当提示“Common Name”,输入你的计算机的主机名,可以通过在Unix系统终端输入hostname找到。这一点很重要,因为当你的代码发送或接收证书,它会对证传递给tls.connect方法servername属性的名称值。读取服务器的密钥和使用tls.createServer启动服务器运行

网络代码与net.createServer方法是相似的——那是因为tls模块继承自它。代码的其余部分是有关管理证书的,不幸的是这个过程是留给我们处理,而且往往是程序员会错的地方,这可能会危及安全的原因。首先,加载了私人和公共组合键,将它们传递给tls.createServer。我们还加载客户端的公钥证书颁发机构——在使用获得的证书时,这个阶段通常不要求。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!