Node.js метод tlsSocket.getCertificate ()
Метод tlsSocket.getCertificate () - это встроенный интерфейс прикладного программирования класса TLSSocket в модуле tls, который используется для возврата объекта, представляющего локальный сертификат.
Синтаксис:
const tlsSocket.getCertificate ()
Параметры: этот метод не принимает никаких параметров.
Возвращаемое значение: этот метод возвращает объект, представляющий локальный сертификат.
Как сгенерировать закрытый ключ и открытый сертификат?
- Закрытый ключ
Шаг 1: Откройте блокнот и скопируйте и вставьте следующий ключ:----- НАЧАТЬ ЧАСТНЫЙ КЛЮЧ RSA ----- MIICXQIBAAKBgQC38R9wXcUbhOd44FavgmE5R3K4JeYOHLnI7dUq1B8 / Gv7l3SOg JKef / m9gM1KvUx951mapXGtcWgwB08J3vUE2YOZ4tWJArrVZES0BI / RmFAyhQFP5 HcWl3LSM9LRihP98F33oIkKaCxA5LxOrkgpV4HrUzIKTABDYah7RPex1WQIDAQAB AoGBAIXR71xxa9gUfc5L7 + TqBs + EMmrUb6Vusp8CoGXzQvRHMJCMrMFySV0131Nu o0YYRDsAh1nJefYLMNcXd1BjqI + qY8IeRsxaY + 9CB2KKGVVDO2uLdurdC2ZdlWXT Vwr3dDoyR0trnXJMmH2ijTeO6bush8HuXxvxJBjvEllM5QYxAkEA3jwny9JP + RFu 0rkqPBe / wi5pXpPl7PUtdNAGrh6S5958wUoR4f9bvwmTBv1nQzExKWu4EIp + 7vjJ fBeRZhnBvQJBANPjjge8418PS9zAFyKlITq6cxmM4gOWeveQZwXVNvav0NH + OKdQ sZnnDiG26JWmnD / B8Audu97LcxjxcWI8Jc0CQEYA5PhLU229lA9EzI0JXhoozIBC TlcKFDuLm88VSmlHqDyqvF9YNOpEdc / p2rFLuZS2ndB4D + vu6mjwc5iZ3HECQCxy GBHRclQ3Ti9w76lpv + 2kvI4IekRMZWDWnnWfwta + DGxwCgw2pfpleBZkWqdBepb5 JFQbcxQJ0wvRYXo8qaUCQQCgTvWswBj6OTP7LTvBlU1teAN2Lnrk / N5AYHZIXW6m nUG9lYvH7DztWDTioXMrruPF7bdXfZOVJD8t0I4OUzvC ----- КОНЕЦ ЧАСТНОГО КЛЮЧА RSA -----
Шаг 2. Сохраните как private-key.pem
- Публичный сертификат
Шаг 1: Откройте блокнот и скопируйте и вставьте следующий ключ:----- НАЧАТЬ СЕРТИФИКАТ ----- MIICfzCCAegCCQDxxeXw914Y2DANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC SU4xEzARBgNVBAgMCldlc3RiZW5nYWwxEDAOBgNVBAcMB0tvbGthdGExFDASBgNV BAoMC1BhbmNvLCBJbmMuMRUwEwYDVQQDDAxSb2hpdCBQcmFzYWQxIDAeBgkqhkiG 9w0BCQEWEXJvZm9mb2ZAZ21haWwuY29tMB4XDTIwMDkwOTA1NTExN1oXDTIwMTAw OTA1NTExN1owgYMxCzAJBgNVBAYTAklOMRMwEQYDVQQIDApXZXN0YmVuZ2FsMRAw DgYDVQQHDAdLb2xrYXRhMRQwEgYDVQQKDAtQYW5jbywgSW5jLjEVMBMGA1UEAwwM Um9oaXQgUHJhc2FkMSAwHgYJKoZIhvcNAQkBFhFyb2ZvZm9mQGdtYWlsLmNvbTCB nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt / EfcF3FG4TneOBWr4JhOUdyuCXm Dhy5yO3VKtQfPxr + 5d0joCSnn / 5vYDNSr1MfedZmqVxrXFoMAdPCd71BNmDmeLVi QK61WREtASP0ZhQMoUBT + R3Fpdy0jPS0YoT / fBd96CJCmgsQOS8Tq5IKVeB61MyC kwAQ2Goe0T3sdVkCAwEAATANBgkqhkiG9w0BAQsFAAOBgQATe6ixdAjoV7BSHgRX bXM2 + IZLq8kq3s7ck0EZrRVhsivutcaZwDXRCCinB + OlPedbzXwNZGvVX0nwPYHG BfiXwdiuZeVJ88ni6Fm6RhoPtu2QF1UExfBvSXuMBgR + evp + e3QadNpGx6Ppl1aC hWF6W2H9 + MAlU7yvtmCQQuZmfQ == ----- КОНЕЦ СЕРТИФИКАТА -----
Шаг 2. Сохраните как public-cert.pem
Пример 1: Имя файла: index.js
// Node.js program to demonstrate the // tlsSocket.getCertificate() method var tls = require( 'tls' ), fs = require( 'fs' ), // Port and host address for server PORT = 1337, HOST = '127.0.0.1' , value = null ; // Private key and public certificate for access var options = { key: fs.readFileSync( 'private-key.pem' ), cert: fs.readFileSync( 'public-cert.pem' ), rejectUnauthorized: false }; // Creating and initializing server var server = tls.createServer(options, function (socket) { // Print the data that we received socket.on( 'data' , function (data) { console.log( '
Received: %s ' , data.toString().replace(/(
)/gm, "" )); }); // Stopping the server // by using the close() method server.close(() => { console.log( "Server closed successfully" ); }); }); // Start listening on a specific port and address // by using listen() method server.listen(PORT, HOST, function () { console.log( "I'm listening at %s, " + "on port %s" , HOST, PORT); }); // Creating and initializing client var client = tls.connect(PORT, HOST, options, function () { // Getting local certificate by using // tlsSocket.getCertificate() method value = client.getCertificate(); client.write( "Certificate : " + value.serialNumber); client.end(() => { console.log( "Client closed successfully" ); }); }); |
Запустите файл index.js, используя следующую команду:
узел index.js
Выход:
Я слушаю 127.0.0.1, порт 1337 Клиент успешно закрыт Получено: Сертификат: F1C5EF0F75E18D8. Сервер успешно закрыт
Пример 2: Имя файла: index.js
// Node.js program to demonstrate the // tlsSocket.getCertificate() method var tls = require( 'tls' ), fs = require( 'fs' ), // Port and host address for server PORT = 1337, HOST = '127.0.0.1' ; // Private key and public certificate for access var options = { key: fs.readFileSync( 'private-key.pem' ), cert: fs.readFileSync( 'public-cert.pem' ), rejectUnauthorized: false }; // Creating and initializing server var server = tls.createServer(options, function (socket) { // Getting local certificate by using // tlsSocket.getCertificate() method value = socket.getCertificate(); socket.write( "Certificate : " + value.serialNumber); // Stopping the server // by using the close() method server.close(() => { console.log( "Server closed successfully" ) }); }); // Start listening on a specific port // and address by using listen() method server.listen(PORT, HOST, function () { console.log( "I'm listening at %s, " + "on port %s" , HOST, PORT); }); // Creating and initializing client var client = tls.connect(PORT, HOST, options, function () { console.log( "client is connected" ); }); client.on( "data" , function (data) { console.log('Received: %s', data.toString().replace(/(
)/gm, "" )); // Close the connection after // receiving the message client.end(() => { console.log( "client closed successfully" ) }); }); |
Запустите файл index.js, используя следующую команду:
узел index.js
Выход:
Я слушаю 127.0.0.1, порт 1337 клиент подключен Получено: Сертификат: F1C5EF0F75E18D8. клиент успешно закрыт Сервер успешно закрыт
Ссылка: https://nodejs.org/dist/latest-v12.x/docs/api/tls.html#tls_tlssocket_getcertificate