All Projects β†’ Heziode β†’ Simple-TLS-Client-Server-with-Node.js

Heziode / Simple-TLS-Client-Server-with-Node.js

Licence: MIT license
Simple TLS Client/Server with Node.js

Programming Languages

shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Simple-TLS-Client-Server-with-Node.js

Openssl Nodejs
is a package which gives you a possibility to run every OpenSSL command πŸ”’ in Node.js in a handy way. Moreover, parameters like -in, -keyin, -config and etc can be replaced by a raw data (Buffor).
Stars: ✭ 25 (+13.64%)
Mutual labels:  certificate, openssl
Lhttps
Create https for local development environment or localhost.
Stars: ✭ 172 (+681.82%)
Mutual labels:  certificate, openssl
Ssl Checker
Python script that collects SSL/TLS information from hosts
Stars: ✭ 94 (+327.27%)
Mutual labels:  certificate, openssl
cloud-signature-consortium
Cloud Signature Consortium Remote Signature Service Provider in Node.js
Stars: ✭ 19 (-13.64%)
Mutual labels:  certificate, openssl
sscg
Simple Signed Certificate Generator
Stars: ✭ 57 (+159.09%)
Mutual labels:  openssl, certificate-generation
qsslcaudit
test SSL/TLS clients how secure they are
Stars: ✭ 22 (+0%)
Mutual labels:  certificate, openssl
Mutual Tls Ssl
πŸ” Tutorial of setting up Security for your API with one way authentication with TLS/SSL and mutual mutual authentication for a java based web server and a client with both Spring Boot. Different clients are provided such as Apache HttpClient, OkHttp, Spring RestTemplate, Spring WebFlux WebClient Jetty and Netty, the old and the new JDK HttpClient, the old and the new Jersey Client, Google HttpClient, Unirest, Retrofit, Feign, Methanol, vertx, Scala client Finagle, Featherbed, Dispatch Reboot, AsyncHttpClient, Sttp, Akka, Requests Scala, Http4s Blaze, Kotlin client Fuel, http4k, Kohttp and ktor. Also other server examples are available such as jersey with grizzly. Also gRPC examples are included
Stars: ✭ 163 (+640.91%)
Mutual labels:  certificate, openssl
Easycert
EasyCert quickly generates web server TLS certificates that have been self-signed by a private certificate authority that it also creates.
Stars: ✭ 121 (+450%)
Mutual labels:  certificate, openssl
anvil
Tools for distributing ssl certificates
Stars: ✭ 29 (+31.82%)
Mutual labels:  certificate, cert
qiniu-auto-cert
七牛 CDN 证书θ‡ͺεŠ¨εŒ–ε·₯ε…·
Stars: ✭ 20 (-9.09%)
Mutual labels:  certificate, cert
openssl ca
openssl_ca with QT GUI
Stars: ✭ 16 (-27.27%)
Mutual labels:  certificate, openssl
pki-manager
IT Freelancers : Manage small PKI for multiple projects (or clients) with 2 bash scripts
Stars: ✭ 36 (+63.64%)
Mutual labels:  certificate, openssl
Coursera-Certifications
A repository to showcase my completed courses on the Coursera platform.
Stars: ✭ 20 (-9.09%)
Mutual labels:  certificate, cert
openssl-alpine
OpenSSL three tier certificate generator
Stars: ✭ 23 (+4.55%)
Mutual labels:  certificate, openssl
x509sak
X.509 Swiss Army Knife is a toolkit atop OpenSSL to ease generation of CAs and aid white-hat pentesting
Stars: ✭ 23 (+4.55%)
Mutual labels:  certificate, openssl
Check ssl cert
check_ssl_cert is a shell script (that can be used as a Nagios plugin) to check the CA and validity of an X.509 certificate
Stars: ✭ 248 (+1027.27%)
Mutual labels:  certificate, openssl
python-csr
Generate a CSR/Key via Python
Stars: ✭ 39 (+77.27%)
Mutual labels:  certificate, openssl
cryptocli
The ultimate tool for data transfer, manipulation and proxy.
Stars: ✭ 16 (-27.27%)
Mutual labels:  certificate, openssl
PASSY
This project has moved to GitLab.com
Stars: ✭ 14 (-36.36%)
Mutual labels:  openssl
openjs-nodejs-application-developer-study-guide
Resources and notes to help prepare for the Node JS Application Developer (JSNAD) certification exam
Stars: ✭ 64 (+190.91%)
Mutual labels:  cert

Simple TLS Client/Server with Node.js

This project it's just a simple example of client/server app with Node.js

How to use

Initialisation

Just clone this repo and run genkey.sh (sorry for Windows users) for create all certificates and keys. It take only one parameter that should be the location where you want to store keys and certs. (for this repo example, just run with '.')

Example: ./genkey.sh .

should show something like that:

###############################################################################
#     _____      _  __        _____ _                      _                  #
#    /  ___|    | |/ _|      /  ___(_)                    | |                 #
#    \ `--.  ___| | |_ ______\ `--. _  __ _ _ __   ___  __| |                 #
#     `--. \/ _ \ |  _|______|`--. \ |/ _` | '_ \ / _ \/ _` |                 #
#    /\__/ /  __/ | |        /\__/ / | (_| | | | |  __/ (_| |                 #
#    \____/ \___|_|_|        \____/|_|\__, |_| |_|\___|\__,_|                 #
#                                      __/ |                                  #
#                                     |___/                                   #
#   _____           _         _____                           _               #
#  /  __ \         | |       |  __ \                         | |              #
#  | /  \/ ___ _ __| |_ ___  | |  \/ ___ _ __   ___ _ __ __ _| |_ ___  _ __   #
#  | |    / _ \ '__| __/ __| | | __ / _ \ '_ \ / _ \ '__/ _` | __/ _ \| '__|  #
#  | \__/\  __/ |  | |_\__ \ | |_\ \  __/ | | |  __/ | | (_| | || (_) | |     #
#   \____/\___|_|   \__|___/  \____/\___|_| |_|\___|_|  \__,_|\__\___/|_|     #
#                                                                             #
###############################################################################

###############
# Global conf #
###############

RSA bit length [4096]:
Expire days [365]:
Password for certs []:
Password length cannot be lower than 4 chars
Password for certs []:

################
# OpenSSL conf #
################

(C) Country Name (2 letter code) [FR]:
(ST) State or Province Name (full name) []:
(L) Locality Name (eg, city) []:
(O) Organization Name (eg, company) [ACME Signing Authority Inc]:
(OU) Organizational Unit Name (eg, section) []:
(CN) Common Name (eg, your name or your server's hostname) []:localhost
(emailAddress) Email Address []:[email protected]

Please enter the following 'extra' attributes
to be sent with your certificate request
(unstructuredName) An optional company name []:

Add other field [y/N] ? y
Field name: subjectAltName
Field value: DNS:localhost,DNS:www.localhost.com      
Add other field [y/N] ? 

##################
# Generate certs #
##################

# CA

Generating RSA private key, 4096 bit long modulus (2 primes)
.............................................................................................................................................................................................++++
................................................++++
e is 65537 (0x010001)

# Server

Generating RSA private key, 4096 bit long modulus (2 primes)
...............................................++++
.....................................................................................................................................................................................++++
e is 65537 (0x010001)
Signature ok
subject=C = FR, ST = ., L = ., O = ACME Signing Authority Inc, OU = ., CN = localhost, emailAddress = [email protected], subjectAltName = "DNS:localhost,DNS:www.localhost.com"
Getting CA Private Key

# Client

Generating RSA private key, 4096 bit long modulus (2 primes)
.....................++++
..........................................................................................................................................................................................................................++++
e is 65537 (0x010001)
Signature ok
subject=C = FR, ST = ., L = ., O = ACME Signing Authority Inc, OU = ., CN = CLIENT, emailAddress = [email protected], subjectAltName = "DNS:localhost,DNS:www.localhost.com"
Getting CA Private Key

Done !

How does it work ?

Execute node tls-server to run the server.

And then run (in another terminal) the client with node tls-client.

Traceback

Server side, the terminal should displays :

server listening on port 8000

insecure connection
secure connection; client authorized:  true

And on the client side :

client connected authorized
End connection

Credits

Thanks ceejbot, the script for key and certs generation it's based on the topic Using client certs in node.js

Licence

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].