| 
									
										
										
										
											2019-07-11 16:52:31 -04:00
										 |  |  | var fs = require('fs'); | 
					
						
							|  |  |  | var tls = require('tls'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var server1Key = fs.readFileSync(__dirname + '/server1-key.pem'); | 
					
						
							|  |  |  | var server1Cert = fs.readFileSync(__dirname + '/server1-cert.pem'); | 
					
						
							|  |  |  | var clientKey = fs.readFileSync(__dirname + '/client-key.pem'); | 
					
						
							|  |  |  | var clientCert = fs.readFileSync(__dirname + '/client-cert.pem'); | 
					
						
							|  |  |  | var ca1Cert = fs.readFileSync(__dirname + '/ca1-cert.pem'); | 
					
						
							|  |  |  | var ca3Cert = fs.readFileSync(__dirname + '/ca3-cert.pem'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | var server = tls.createServer({ | 
					
						
							|  |  |  |   key: server1Key, | 
					
						
							|  |  |  |   cert: server1Cert, | 
					
						
							|  |  |  |   ca: [ca3Cert], | 
					
						
							|  |  |  |   requestCert: true, | 
					
						
							|  |  |  |   rejectUnauthorized: true, | 
					
						
							|  |  |  | }, function(s) { | 
					
						
							|  |  |  |   console.log('connected on server'); | 
					
						
							|  |  |  |   s.on('data', function(chunk) { | 
					
						
							|  |  |  |     console.log('S:' + chunk); | 
					
						
							|  |  |  |     s.write(chunk); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |   s.setEncoding('utf8'); | 
					
						
							|  |  |  | }).listen(3000, function() { | 
					
						
							|  |  |  |   var c = tls.connect({ | 
					
						
							|  |  |  |     host: 'localhost', | 
					
						
							|  |  |  |     port: 3000, | 
					
						
							|  |  |  |     key: clientKey, | 
					
						
							|  |  |  |     cert: clientCert, | 
					
						
							|  |  |  |     ca: [ca1Cert], | 
					
						
							|  |  |  |     rejectUnauthorized: true | 
					
						
							|  |  |  |   }, function() { | 
					
						
							|  |  |  |     console.log('connected on client'); | 
					
						
							|  |  |  |     c.on('data', function(chunk) { | 
					
						
							|  |  |  |       console.log('C:' + chunk); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     c.setEncoding('utf8'); | 
					
						
							|  |  |  |     c.write('Hello'); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  |   c.on('error', function(err) { | 
					
						
							|  |  |  |     console.log(err); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |