云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > TLS(SSL)

TLS(SSL)

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 9:57:31

? ?

文档首页 英文版文档

本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。

Node.js v4.2.4 手册 & 文档

索引 | 在单一页面中浏览 | JSON格式

目录

?

TLS (SSL) o 客户端初始化的对缓解攻击的重新协商 o NPN 和 SNI

o o o o o o o o o

tls.getCiphers()

tls.createServer(options, [secureConnectionListener]) tls.connect(options, [callback])

tls.connect(port, [host], [options], [callback]) Class: tls.TLSSocket

new tls.TLSSocket(socket, options) tls.createSecurePair([credentials], [isServer], [rejectUnauthorized])

类: SecurePair ? 事件: 'secure'

类: tls.Server ? 事件: 'secureConnection'

? ? ? ? ? ? ? ? ?

[requestCert],

Event: 'clientError'

事件: 'newSession' 事件: 'resumeSession'

server.listen(port, [host], [callback]) server.close() server.address()

server.addContext(hostname, credentials) server.maxConnections server.connections

o

? o

? ? ? ? ? ? ? ? ? ? ?

类: CryptoStream

cryptoStream.bytesWritten

Class: tls.TLSSocket

事件: 'secureConnect'

tlsSocket.authorized

tlsSocket.authorizationError tlsSocket.getPeerCertificate() tlsSocket.getCipher()

tlsSocket.renegotiate(options, callback) tlsSocket.address()

tlsSocket.remoteAddress tlsSocket.remotePort tlsSocket.localAddress tlsSocket.localPort

TLS (SSL)

#稳定度: 3 - 稳定 使用 require('tls') 来访问此模块。

tls 模块使用 OpenSSL 来提供传输层安全协议(Transport Layer Security)和/或安全套接

层(Secure Socket Layer):加密过的流通讯。

TLS/SSL 是一种公钥/私钥架构。每个客户端和服务器都必有一个私钥。一个私钥使用类似的方式创建:

openssl genrsa -out ryans-key.pem 1024 所有服务器和某些客户端需要具备证书。证书是证书办法机构签发或自签发的公钥。获取证书的第一步是创建一个“证书签发申请”(CSR)文件。使用这条命令完成:

openssl req -new -key ryans-key.pem -out ryans-csr.pem 像这样使用 CSR 创建一个自签名证书:

openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem 又或者你可以将 CSR 发送给一个数字证书认证机构请求签名。

(TODO: 对于创建一个CA文档, 感兴趣的用户暂时只能看Node的源代码test/fixtures/keys/Makefile 像这样创建 .pfx 或 .p12:

openssl pkcs12 -export -in agent5-cert.pem -inkey agent5-key.pem \\ -certfile ca-cert.pem -out agent5.pfx ? ? ?

in: certificate inkey: private key

certfile: all CA certs concatenated in one file like cat ca1-cert.pem ca2-cert.pem > ca-cert.pem

客户端初始化的对缓解攻击的重新协商#

TLS协议会令客户端可以重新协商TLS会话的某些方面。但是,会话的重新协商是需要相应量的服务器端资源的,所以导致其变成一个阻断服务攻击(denial-of-service)的潜在媒介。

为了减低这种情况的发生,重新协商被限制在每10分钟三次。如果超过这个数目,那么在tls.TLSSocket实例上就会分发一个错误。这个限制是可设置的:

? ?

tls.CLIENT_RENEG_LIMIT: 重新协商的次数限制,默认为3。

tls.CLIENT_RENEG_WINDOW: 重新协商窗口的秒数,默认为600(10分钟)。

除非你完全理解整个机制和清楚自己要干什么,否则不要改变这个默认值。

要测试你的服务器的话,用命令 openssl s_client -connect 地址:端口连接上服务器,然后敲击R(字母键R加回车键)几次。

NPN 和 SNI#

NPN (Next Protocol Negotiation,下一个协议的协商)和SNI (Server Name Indication,服务器名称指示)是TLS握手扩展,它们允许你:

? ?

NPN - 同一个TLS服务器使用多种协议 (HTTP, SPDY)

SNI - 同一个TLS服务器使用多个主机名,与其相应的SSL证书。

tls.getCiphers()#

返回一个数组,其中包含了所支持的SSL加密器的名字。

实例:

var ciphers = tls.getCiphers(); console.log(ciphers); // ['AES128-SHA', 'AES256-SHA', ...] tls.createServer(options, [secureConnectionListener])#

新建一个新的 tls.Server. The connectionListener 参数会自动设置为 secureConnection 事件的监听器. 这个options 对象有这些可能性:

? pfx: 一个String 或Buffer包含了私钥, 证书和CA certs, 一般是 PFX 或者

PKCS12 格式. (Mutually exclusive with the key, cert and ca options.)

? ? ? ?

key: 一个字符串或 Buffer对象,其中包含了PEF格式的服务器的私钥。 (必需) passphrase: 私钥或pfx密码的字符串。

cert: 字符串或者 Buffer,包含PEM格式的服务器证书密码。(必选)

ca: An array of strings or Buffers of trusted certificates. If this is omitted several well

known \

搜索更多关于: TLS(SSL) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

? ? 文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可。 Node.js v4.2.4 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 ? TLS (SSL) o 客户端初始化的对缓解攻击的重新协商 o NPN 和 SNI o o o o o o o o o tls.getCiphers() tls.createServer(options, [secureConnectionListener]) tls.connect(options, [callback]) tls.connect(port, [host], [options

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com