tlsSocket.getPeerCertificate([detailed])
添加於:v0.11.4
參數
返回表示對等方證書的對象。如果對等方不提供證書,則會返回一個空對象。如果套接字已被銷毀,將返回null
。
如果請求了完整的證書鏈,每個證書將包含一個 issuerCertificate
屬性,其中包含一個表示其頒發者證書的對象。
證書對象#
曆史
版本 | 變化 |
---|---|
v17.2.0、v16.14.0 | 添加指紋512。 |
v11.4.0 | 支持橢圓曲線公鑰信息。 |
證書對象具有對應於證書字段的屬性。
raw
<Buffer> DER 編碼的 X.509 證書數據。subject
<Object> 證書主題,按國家 (C
)、州或省 (ST
)、地區 (L
)、組織 (O
)、OrganizationalUnit (OU
) 進行說明和CommonName (CN
)。 CommonName 通常是帶有 TLS 證書的 DNS 名稱。示例:{C: 'UK', ST: 'BC', L: 'Metro', O: 'Node Fans', OU: 'Docs', CN: 'example.com'}
。issuer
<Object> 證書頒發者,用與subject
相同的術語說明。valid_from
<string> 證書有效的日期時間。valid_to
<string> 證書有效的日期時間。serialNumber
<string> 證書序列號,為十六進製字符串。示例:'B9B0D332A1AA5635'
。fingerprint
<string> DER 編碼證書的 SHA-1 摘要。它以:
分隔的十六進製字符串形式返回。示例:'2A:7A:C2:DD:...'
。fingerprint256
<string> DER 編碼證書的 SHA-256 摘要。它以:
分隔的十六進製字符串形式返回。示例:'2A:7A:C2:DD:...'
。fingerprint512
<string> DER 編碼證書的 SHA-512 摘要。它以:
分隔的十六進製字符串形式返回。示例:'2A:7A:C2:DD:...'
。ext_key_usage
<Array> (可選)擴展 key 用法,一組 OID。subjectaltname
<string> (可選)包含主題的串聯名稱的字符串,是subject
名稱的替代方案。infoAccess
<Array> (可選)說明 AuthorityInfoAccess 的數組,與 OCSP 一起使用。issuerCertificate
<Object> (可選)頒發者證書對象。對於self-signed 證書,這可能是循環引用。
證書可能包含有關公鑰的信息,具體取決於 key 類型。
對於 RSA key ,可以定義以下屬性:
bits
<number> RSA 位大小。示例:1024
。exponent
<string> RSA index ,作為十六進製數字表示法的字符串。示例:'0x010001'
。modulus
<string> RSA 模數,作為十六進製字符串。示例:'B56CE45CB7...'
。pubkey
<Buffer> 公鑰。
對於 EC key ,可以定義以下屬性:
pubkey
<Buffer> 公鑰。bits
<number> key 大小(以位為單位)。示例:256
。asn1Curve
<string> (可選)橢圓曲線 OID 的 ASN.1 名稱。眾所周知的曲線由 OID 標識。雖然不尋常,但曲線可能是通過其數學屬性來識別的,在這種情況下,它不會有 OID。示例:'prime256v1'
。nistCurve
<string> (可選)橢圓曲線的 NIST 名稱(如果有的話)(並非所有知名曲線都已由 NIST 指定名稱)。示例:'P-256'
。
示例證書:
{ subject:
{ OU: [ 'Domain Control Validated', 'PositiveSSL Wildcard' ],
CN: '*.nodejs.org' },
issuer:
{ C: 'GB',
ST: 'Greater Manchester',
L: 'Salford',
O: 'COMODO CA Limited',
CN: 'COMODO RSA Domain Validation Secure Server CA' },
subjectaltname: 'DNS:*.nodejs.org, DNS:nodejs.org',
infoAccess:
{ 'CA Issuers - URI':
[ 'http://crt.comodoca.com/COMODORSADomainValidationSecureServerCA.crt' ],
'OCSP - URI': [ 'http://ocsp.comodoca.com' ] },
modulus: 'B56CE45CB740B09A13F64AC543B712FF9EE8E4C284B542A1708A27E82A8D151CA178153E12E6DDA15BF70FFD96CB8A88618641BDFCCA03527E665B70D779C8A349A6F88FD4EF6557180BD4C98192872BCFE3AF56E863C09DDD8BC1EC58DF9D94F914F0369102B2870BECFA1348A0838C9C49BD1C20124B442477572347047506B1FCD658A80D0C44BCC16BC5C5496CFE6E4A8428EF654CD3D8972BF6E5BFAD59C93006830B5EB1056BBB38B53D1464FA6E02BFDF2FF66CD949486F0775EC43034EC2602AEFBF1703AD221DAA2A88353C3B6A688EFE8387811F645CEED7B3FE46E1F8B9F59FAD028F349B9BC14211D5830994D055EEA3D547911E07A0ADDEB8A82B9188E58720D95CD478EEC9AF1F17BE8141BE80906F1A339445A7EB5B285F68039B0F294598A7D1C0005FC22B5271B0752F58CCDEF8C8FD856FB7AE21C80B8A2CE983AE94046E53EDE4CB89F42502D31B5360771C01C80155918637490550E3F555E2EE75CC8C636DDE3633CFEDD62E91BF0F7688273694EEEBA20C2FC9F14A2A435517BC1D7373922463409AB603295CEB0BB53787A334C9CA3CA8B30005C5A62FC0715083462E00719A8FA3ED0A9828C3871360A73F8B04A4FC1E71302844E9BB9940B77E745C9D91F226D71AFCAD4B113AAF68D92B24DDB4A2136B55A1CD1ADF39605B63CB639038ED0F4C987689866743A68769CC55847E4A06D6E2E3F1',
exponent: '0x10001',
pubkey: <Buffer ... >,
valid_from: 'Aug 14 00:00:00 2017 GMT',
valid_to: 'Nov 20 23:59:59 2019 GMT',
fingerprint: '01:02:59:D9:C3:D2:0D:08:F7:82:4E:44:A4:B4:53:C5:E2:3A:87:4D',
fingerprint256: '69:AE:1A:6A:D4:3D:C6:C1:1B:EA:C6:23:DE:BA:2A:14:62:62:93:5C:7A:EA:06:41:9B:0B:BC:87:CE:48:4E:02',
fingerprint512: '19:2B:3E:C3:B3:5B:32:E8:AE:BB:78:97:27:E4:BA:6C:39:C9:92:79:4F:31:46:39:E2:70:E5:5F:89:42:17:C9:E8:64:CA:FF:BB:72:56:73:6E:28:8A:92:7E:A3:2A:15:8B:C2:E0:45:CA:C3:BC:EA:40:52:EC:CA:A2:68:CB:32',
ext_key_usage: [ '1.3.6.1.5.5.7.3.1', '1.3.6.1.5.5.7.3.2' ],
serialNumber: '66593D57F20CBC573E433381B5FEC280',
raw: <Buffer ... > }
相關用法
- Node.js tls.TLSSocket.exportKeyingMaterial(length, label[, context])用法及代碼示例
- Node.js tls.DEFAULT_MAX_VERSION用法及代碼示例
- Node.js tls.DEFAULT_ECDH_CURVE用法及代碼示例
- Node.js tls.getCiphers()用法及代碼示例
- Node.js tls.connect(options[, callback])用法及代碼示例
- Node.js tls.connect()用法及代碼示例
- Node.js tls.createServer([options][, secureConnectionListener])用法及代碼示例
- Node.js tls.DEFAULT_MIN_VERSION用法及代碼示例
- Node.js tls.createServer()用法及代碼示例
- Node.js tls.createSecurePair([context][, isServer][, requestCert][, rejectUnauthorized][, options])用法及代碼示例
- Node.js tls.rootCertificates()用法及代碼示例
- Node.js tlsSocket.authorized用法及代碼示例
- Node.js tlsSocket.disableRenegotiation()用法及代碼示例
- Node.js tlsSocket.address()用法及代碼示例
- Node.js tlsSocket.remoteAddress用法及代碼示例
- Node.js tlsSocket.setMaxSendFragment()用法及代碼示例
- Node.js tlsSocket.getProtocol()用法及代碼示例
- Node.js tlsSocket.exportKeyingMaterial()用法及代碼示例
- Node.js tlsSocket.getPeerFinished()用法及代碼示例
- Node.js tlsSocket.getFinished()用法及代碼示例
- Node.js tlsSocket.authorizationError用法及代碼示例
- Node.js tlsSocket.getPeerCertificate()用法及代碼示例
- Node.js tlsSocket.localAddress用法及代碼示例
- Node.js tlsSocket.getSession()用法及代碼示例
- Node.js tlsSocket.remoteFamily用法及代碼示例
注:本文由純淨天空篩選整理自nodejs.org大神的英文原創作品 tls.TLSSocket.getPeerCertificate([detailed])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。