Skip to content

Commit

Permalink
serve dotjs over local ssl
Browse files Browse the repository at this point in the history
  • Loading branch information
defunkt committed Jan 17, 2013
1 parent fe63c10 commit 130d106
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 4 deletions.
2 changes: 2 additions & 0 deletions README.markdown
Expand Up @@ -68,6 +68,8 @@ the returned JavaScript.
cd dotjs cd dotjs
rake install rake install


Now open https://localhost:3131 in Chrome and enable the SSL.

Then install the Google Chrome extension: Then install the Google Chrome extension:


http://bit.ly/dotjs http://bit.ly/dotjs
Expand Down
4 changes: 2 additions & 2 deletions Rakefile
Expand Up @@ -29,9 +29,9 @@ namespace :install do
end end


task :done do task :done do
if system("curl http://localhost:3131 &> /dev/null") if system("curl -k https://localhost:3131 &> /dev/null")
puts "\e[1m\e[32mdotjs installation worked\e[0m" puts "\e[1m\e[32mdotjs installation worked\e[0m"
puts "drag builds/dotjs.crx to Google Chrome" puts "open https://localhost:3131 in chrome to enable ssl"
puts "then drop files like google.com.js in ~/.js and enjoy hacking the web" puts "then drop files like google.com.js in ~/.js and enjoy hacking the web"
else else
puts "\e[31mdotjs installation failed\e[0m" puts "\e[31mdotjs installation failed\e[0m"
Expand Down
48 changes: 47 additions & 1 deletion bin/djsd
Expand Up @@ -12,6 +12,7 @@ if ARGV.include?('-v')
end end


require 'webrick' require 'webrick'
require 'webrick/https'


dotjs = Class.new(WEBrick::HTTPServlet::AbstractServlet) do dotjs = Class.new(WEBrick::HTTPServlet::AbstractServlet) do
def do_GET(request, response) def do_GET(request, response)
Expand Down Expand Up @@ -55,11 +56,56 @@ dotjs = Class.new(WEBrick::HTTPServlet::AbstractServlet) do
end end
end end


server = WEBrick::HTTPServer.new(:BindAddress => "127.0.0.1", :Port => 3131, :AccessLog => []) ssl_info = DATA.read
ssl_cert = ssl_info.scan(/(-----BEGIN CERTIFICATE-----.+?-----END CERTIFICATE-----)/m)[0][0]
ssl_key = ssl_info.scan(/(-----BEGIN RSA PRIVATE KEY-----.+?-----END RSA PRIVATE KEY-----)/m)[0][0]

server_options = {
:BindAddress => "127.0.0.1",
:Port => 3131,
:AccessLog => [],
:SSLEnable => true,
:SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
:SSLPrivateKey => OpenSSL::PKey::RSA.new(ssl_key),
:SSLCertificate => OpenSSL::X509::Certificate.new(ssl_cert),
:SSLCertName => [["CN", WEBrick::Utils::getservername]],
}

server = WEBrick::HTTPServer.new(server_options)
server.mount('/', dotjs) server.mount('/', dotjs)


%w( INT TERM ).each do |sig| %w( INT TERM ).each do |sig|
trap(sig) { server.shutdown } trap(sig) { server.shutdown }
end end


server.start server.start

__END__
-----BEGIN CERTIFICATE-----
MIIB9TCCAV4CCQCO1/0PIZhK/jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJV
UzETMBEGA1UECBMKQ2FsaWZvcm5pYTELMAkGA1UEBxMCU0YxDjAMBgNVBAoTBWRv
dGpzMB4XDTEzMDExNzE4MDQyNVoXDTE0MDExNzE4MDQyNVowPzELMAkGA1UEBhMC
VVMxEzARBgNVBAgTCkNhbGlmb3JuaWExCzAJBgNVBAcTAlNGMQ4wDAYDVQQKEwVk
b3RqczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzWNyNzpcDXkZMe3kZPHD
9Uk3I/y/Ak3v4yavl7MvIFaLwjOE8lSBxnkhZJQx7/4SxME/dC2qBskAS9H9PCHa
o5Ae8CDxgOrKQthhgQdiO3uSUhg1w8EpMxdzngU0pQdHPZNM0rEKfC6qG6dKeH7N
vPIC4IYPiJqO+g6TIzWkklMCAwEAATANBgkqhkiG9w0BAQUFAAOBgQA5KDuyJmUf
GOzglLQEXueRFEcHF7b+ltom3lZUtluhQk/wWLwJybs+VwHJFGtGOWrQkf4nRkwU
HOQgbx0NCQgin1HPiPSOIRcRR0L4bJdvSt8sVBLhhTWZ0w4sa9lfNsbadGPpJPrr
ywvVjgvlZ/3qa1O7r70Hwb5up4KAG65a2A==
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDNY3I3OlwNeRkx7eRk8cP1STcj/L8CTe/jJq+Xsy8gVovCM4Ty
VIHGeSFklDHv/hLEwT90LaoGyQBL0f08IdqjkB7wIPGA6spC2GGBB2I7e5JSGDXD
wSkzF3OeBTSlB0c9k0zSsQp8Lqobp0p4fs288gLghg+Imo76DpMjNaSSUwIDAQAB
AoGAe2YHRlVC3zllwNDMCzYSZPmzLmT5IdpPiWtBzmPyqXw2BdzMQIgzXFqEjJhZ
FHbTMfFlPVj+MYtsKSGmAw3X/J/ZwM/VOzjuAa9ygeJWW7EJwzxJmb4lG8yQeSbQ
cBNCWPtgRRUflD7v1fCuOJ4DzEd5Bb3kTBfyEKShcVy8QVECQQDn35JjYtDkLF3U
VkaF4QyCWqgOmr3X+pNoSW3Yx2I+jp2HG3qHY5fV0B0PNpdencdpWn/kG5+pMb00
V8InmtV5AkEA4sJlFVxsaIXPB+45CZt2dLSkdyA4jaqv+rYi/jJZyDsXSd174ukM
u0j4jPwiN9S2xAc79tf/q7mEdNh7yB2vKwJAD7AOpW7AF0/xITadGt25DPC5QhOy
GHS5mGqvZeVHflgDzGpNhe91DGBCNw9IenxOS5B16qb7zGSzGmF9n1RYcQJAR0+e
/mK8bPp3qyTNpynOzNDqT9RANL0S7qNMyegHuCJtJnuStD9aE6PVFnFMSYaJm4gy
4WP4MYb8Esrp0nsTVQJAPvvZpLdYoDXPGtOHaMB19i3z7XEMohQpGiUvA+J5wjOa
smJzPv9APXqdZoo6NB+4EOk6dwpkXo5k65SunSpO8Q==
-----END RSA PRIVATE KEY-----
2 changes: 1 addition & 1 deletion ext/dotjs.js
@@ -1,5 +1,5 @@
$.ajax({ $.ajax({
url: 'http://localhost:3131/'+location.hostname.replace(/^www\./,'')+'.js', url: 'https://localhost:3131/'+location.hostname.replace(/^www\./,'')+'.js',
dataType: 'text', dataType: 'text',
success: function(d){ success: function(d){
$(function(){ eval(d) }) $(function(){ eval(d) })
Expand Down

1 comment on commit 130d106

@richo
Copy link

@richo richo commented on 130d106 Jun 7, 2013

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was this to avoid mixed content warnings?

Please sign in to comment.