Skip to content
This repository has been archived by the owner on Mar 27, 2018. It is now read-only.

Commit

Permalink
Adding required files for testing out ssl in development
Browse files Browse the repository at this point in the history
  • Loading branch information
miksago committed Aug 26, 2010
1 parent dee4b4c commit 48197d9
Show file tree
Hide file tree
Showing 3 changed files with 140 additions and 0 deletions.
15 changes: 15 additions & 0 deletions examples/ssl/cert.key
@@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDJtZNMsy2rH8B1DC7trfDVQ2L3HDTqHn1QIRdCseBUiTNpqqPm
UPBJ1VfygrGZn/gczfd8iii9agiio1GlHEjKVUnf5oZN/3Hb86IlHrOqyn+tlD6k
lxHSoi0a8vKwJg8gIAR9d/+UvlVjXR2Dxq0PKCP4tTG3lXl6pjtiO5xngQIDAQAB
AoGAXjFYk9yoWtz89qu1znAHos9RC6w0WY/bXOvW/OIrq85WH+X7m7X4P8JMy4aU
gPTe3DSieZna5Hj7h1dU7RGEO4OilrW2inlnBWSWXXisEBjhJy5r3AmUcFaN2LBZ
cc4UCfwbI/Sp0FwRmpTOk7AqRBMMgzDEUjgZPr5spt9dMfECQQDtPq41aFGtRec2
bxakE1SO026yhQuTJNvXC8tKyc8NFZ+z710h+LzzXCrh9HmapCNntQ+B0tOO7gWL
GUNGnu8rAkEA2ae7ee6BOSoxVnrxtjSF+OB5xjqqInhoblQCR5xUo0gQf5SBvSJ4
2h1Em1a909os/LBwkVzs0mtHZyARrGHOAwJAIXTHaGyvp/nFo12DGdxH/mQ+phox
Ca0W+3qETqWq9zNndB57ScEkFEWZHog1ZeNjwso7x5kNkIhsa7NCU4EyRQJAQiqW
eJvD1u/3rbWUU3KmI6GCA3wECpSWEqwhQUnKBRU8RryLsEaRfKUXHS4CaSvTL0Io
Bli8eb85JqV+GexlpwJAIpbqzTdQXrNF9AgKAV9FarE400/KMZX5bYSCrU1AbI+t
I2DIk0SItWfVGkBFYd5X+JK/IwdCzFIZ4ifmx8Kp3Q==
-----END RSA PRIVATE KEY-----
22 changes: 22 additions & 0 deletions examples/ssl/cert.pem
@@ -0,0 +1,22 @@
-----BEGIN CERTIFICATE-----
MIIDuDCCAyGgAwIBAgIJAI8+1nULngRFMA0GCSqGSIb3DQEBBQUAMIGaMQswCQYD
VQQGEwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZMZWV0b24xFDASBgNVBAoT
C0JyYW5kZWRDb2RlMS4wLAYDVQQDEyVNaWNoZWlsIFNtaXRoIC8gTm9kZS13ZWJz
b2NrZXQtc2VydmVyMSYwJAYJKoZIhvcNAQkBFhdtaWNoZWlsQGJyYW5kZWRjb2Rl
LmNvbTAeFw0xMDA4MjUxNjQxMDlaFw0xMTA4MjUxNjQxMDlaMIGaMQswCQYDVQQG
EwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZMZWV0b24xFDASBgNVBAoTC0Jy
YW5kZWRDb2RlMS4wLAYDVQQDEyVNaWNoZWlsIFNtaXRoIC8gTm9kZS13ZWJzb2Nr
ZXQtc2VydmVyMSYwJAYJKoZIhvcNAQkBFhdtaWNoZWlsQGJyYW5kZWRjb2RlLmNv
bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAybWTTLMtqx/AdQwu7a3w1UNi
9xw06h59UCEXQrHgVIkzaaqj5lDwSdVX8oKxmZ/4HM33fIoovWoIoqNRpRxIylVJ
3+aGTf9x2/OiJR6zqsp/rZQ+pJcR0qItGvLysCYPICAEfXf/lL5VY10dg8atDygj
+LUxt5V5eqY7YjucZ4ECAwEAAaOCAQIwgf8wHQYDVR0OBBYEFEYrvzkTYSwCqlOc
F9u+1GZZPiL3MIHPBgNVHSMEgccwgcSAFEYrvzkTYSwCqlOcF9u+1GZZPiL3oYGg
pIGdMIGaMQswCQYDVQQGEwJBVTEMMAoGA1UECBMDTlNXMQ8wDQYDVQQHEwZMZWV0
b24xFDASBgNVBAoTC0JyYW5kZWRDb2RlMS4wLAYDVQQDEyVNaWNoZWlsIFNtaXRo
IC8gTm9kZS13ZWJzb2NrZXQtc2VydmVyMSYwJAYJKoZIhvcNAQkBFhdtaWNoZWls
QGJyYW5kZWRjb2RlLmNvbYIJAI8+1nULngRFMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQEFBQADgYEAXE1dN7pt5f1+Yzyr6SDsAJwQiYr3v9irq5WihN0hoqXfIECX
w8cL710RKFvYPM9p1lEzYanAcQMs+Jygx5XCjYCNREqx7ymg5XZY9NQxu6RVbD6N
BTyooToiX8UnkbDH6lnc7I4L+YtaImBfZ+B29+W5lTKTr9a+anXAqkj2r4g=
-----END CERTIFICATE-----
103 changes: 103 additions & 0 deletions examples/test-https-upgrade.js
@@ -0,0 +1,103 @@
assert = require('assert');
var path = require("path");

net = require("net");
http = require("http");
url = require("url");
qs = require("querystring");
var fs = require('fs');
var sys = require('sys');

var have_openssl;
try {
var crypto = require('crypto');
var dummy_server = http.createServer(function(){});
dummy_server.setSecure();
have_openssl=true;
} catch (e) {
have_openssl=false;
console.log("Not compiled with OPENSSL support.");
process.exit();
}

var request_number = 0;
var requests_sent = 0;
var server_response = "";
var client_got_eof = false;
var caPem = fs.readFileSync( path.normalize(path.join(__dirname, "test_ca.pem")), 'ascii');
var certPem = fs.readFileSync(path.normalize(path.join(__dirname, "test_cert.pem")), 'ascii');
var keyPem = fs.readFileSync(path.normalize(path.join(__dirname, "test_key.pem")), 'ascii');

var credentials = crypto.createCredentials({key:keyPem, cert:certPem, ca:caPem});

var https_server = http.createServer(function (req, res) {
request_number++;
res.writeHead(204, {"Content-Type": "text/plain"});

res.end();
});

https_server.on("upgrade", function(req, socket, upgradeHead){
console.log("upgrade!");

request_number++;

socket.write("hello");

socket.on("data", function(d){
console.log("server recv", d)
socket.write("die");
})

socket.on("end", function(){
socket.end();
socket.destroy();
});
})

https_server.setSecure(credentials);
https_server.listen(123456);

https_server.addListener("listening", function() {
var c = net.createConnection(123456);

c.setEncoding("utf8");

c.addListener("connect", function () {
console.log("c.connect")
c.setSecure(credentials);
});

c.addListener("secure", function () {
c.write("GET / HTTP/1.1\r\n\r\n");
requests_sent++;
c.write("GET / HTTP/1.1\r\nUpgrade: WebSocket\r\nConnection: Upgrade\r\n\r\n");
requests_sent++;
});

c.addListener("data", function (chunk) {
console.log("<< c: '", chunk, "'");
if(chunk != "hello"){
c.end();
} else {
c.write(chunk);
console.log(">> c:", chunk)
}
});

c.addListener("end", function () {
console.log("c.end")
c.destroy();
});

c.addListener("close", function () {
console.log("c.close");
console.dir(https_server);
https_server.close();
});
});

process.addListener("exit", function () {
assert.equal(2, request_number);
assert.equal(2, requests_sent);
});

0 comments on commit 48197d9

Please sign in to comment.