{"id":20739289,"url":"https://github.com/ramy-badr-ahmed/nodejs-tls-server-client","last_synced_at":"2026-04-28T13:37:33.413Z","repository":{"id":248123612,"uuid":"827822292","full_name":"Ramy-Badr-Ahmed/Nodejs-TLS-Server-Client","owner":"Ramy-Badr-Ahmed","description":"TLS Communication with Node.js - https://doi.org/10.5281/zenodo.12808908","archived":false,"fork":false,"pushed_at":"2024-08-12T09:44:39.000Z","size":46,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-11T11:53:02.517Z","etag":null,"topics":["handshake-protocol","iot-","iot-security","nodejs","osi-model","presentation-layer","tls-authentication","tls-client","tls-client-server","tls-encryption","tls-server","tls-session","tls-session-ticket-keys","tls-support","two-way-ssl-authentication","x509-auth","x509v3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ramy-Badr-Ahmed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-12T12:59:01.000Z","updated_at":"2024-08-30T09:18:26.000Z","dependencies_parsed_at":"2024-07-26T22:49:02.310Z","dependency_job_id":"7ed7e3cf-4c6e-42dc-8e60-885634851325","html_url":"https://github.com/Ramy-Badr-Ahmed/Nodejs-TLS-Server-Client","commit_stats":null,"previous_names":["ramy-badr-ahmed/node-tls","ramy-badr-ahmed/nodejs-tls_server-client","ramy-badr-ahmed/nodejs-tls-server-client"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Ramy-Badr-Ahmed/Nodejs-TLS-Server-Client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramy-Badr-Ahmed%2FNodejs-TLS-Server-Client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramy-Badr-Ahmed%2FNodejs-TLS-Server-Client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramy-Badr-Ahmed%2FNodejs-TLS-Server-Client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramy-Badr-Ahmed%2FNodejs-TLS-Server-Client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ramy-Badr-Ahmed","download_url":"https://codeload.github.com/Ramy-Badr-Ahmed/Nodejs-TLS-Server-Client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramy-Badr-Ahmed%2FNodejs-TLS-Server-Client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261186768,"owners_count":23121942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["handshake-protocol","iot-","iot-security","nodejs","osi-model","presentation-layer","tls-authentication","tls-client","tls-client-server","tls-encryption","tls-server","tls-session","tls-session-ticket-keys","tls-support","two-way-ssl-authentication","x509-auth","x509v3"],"created_at":"2024-11-17T06:24:22.637Z","updated_at":"2026-04-28T13:37:33.382Z","avatar_url":"https://github.com/Ramy-Badr-Ahmed.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![NODE.JS](https://img.shields.io/badge/NODE.JS-%2343853D.svg?\u0026style=plastic\u0026logo=node.js\u0026logoColor=white) ![JavaScript](https://img.shields.io/badge/JavaScript-323330?style=plastic\u0026logo=javascript\u0026logoColor=f7df1e) ![GitHub](https://img.shields.io/github/license/Ramy-Badr-Ahmed/nodejs-tls_server-client?color=green\u0026style=plastic)\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12808908.svg)](https://doi.org/10.5281/zenodo.12808908) [![SWH](https://archive.softwareheritage.org/badge/swh:1:dir:8017c373f704257957a1cc9b5044c7347651b899/)](https://archive.softwareheritage.org/swh:1:dir:8017c373f704257957a1cc9b5044c7347651b899;origin=https://github.com/Ramy-Badr-Ahmed/node-tls;visit=swh:1:snp:eec57a10aaa0a231ac22e6c8a476c167a0669b66;anchor=swh:1:rev:0b48c4c274fb30ea4c7913f1d77083f9e2baa888) \n\n# TLS Communication with Node.js\n\nA TLS server and client implementation using Node.js's tls module, operating at the Presentation Layer of the OSI Model. \n\nThis implementation focuses on encrypted and authenticated communication, suitable for secure and trusted networks.\n\nThe TCP variant (@Transport-Layer of the OSI Model) is located here: [Node-TCP](https://github.com/Ramy-Badr-Ahmed/node-tcp)\n\n#### Use Cases:\n\n- Network Security\n\n    \u003e Ensure secure communication between network segments with TLS encryption and certificate-based authentication.\n\n- Secure Embedded Systems Communication\n\n    \u003e Integrate TLS client with embedded devices (e.g., Raspberry Pi, Arduino with Ethernet/Wi-Fi shields) to send data securely to a central server (for monitoring and control).\n\n- Secure Time Synchronization\n\n    \u003e Use the server to provide a timestamp service for devices on a network (ensure synchronized time across various systems with TLS security).\n\n- Secure IoT Applications\n\n    \u003e Use the TLS server as a central hub to collect data from various IoT devices securely.\n    \n    \u003e Set up the TLS client to send sensor data periodically from remote IoT devices to the server for analysis (centralized secure data receiver/logger).\n\n### Quick Start:\n\nPrerequisites:\n\n- Node.js (v14.x or later)\n- OpenSSL (for generating certificates)\n\nServer:\n\nPlace server certificate and key under the `Certs\\server` directory\n\n```shell\nnpm install\nnode tlsServer.js   # Runs Server\n```  \n\nClient:\n\nPlace client certificate and key under the `Certs\\client` directory\n\n```shell\nnpm install\nnode tlsClient.js   # Runs Client\n```  \n\nLogs and Outputs:\n\nThe server and client will log various events and actions, such as connection establishment, data transmission, handshake report, session management, and encountered errors.\n\nReferences\n\n- [TLS (SSL) Module](https://nodejs.org/api/tls.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framy-badr-ahmed%2Fnodejs-tls-server-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framy-badr-ahmed%2Fnodejs-tls-server-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framy-badr-ahmed%2Fnodejs-tls-server-client/lists"}