tunnelss 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3adfce3ac04bd3a78819c48b8280cd87c1d23830
4
- data.tar.gz: eb024a7f72d075a06d878b1514db8f5dc78f2055
3
+ metadata.gz: ad55614a31f005b914c96e7be44379152e2307e1
4
+ data.tar.gz: 5aa6d70d4ec2d399b208938bd4c80497eaba0835
5
5
  SHA512:
6
- metadata.gz: 266c106b430d4777050ff1ae29c56969a033365a3b3e307cd4b8554afe803ac49ff084a5e49056ed1b30839be4c5f47861ab170b21fbfb5f60a5a3662fd0decf
7
- data.tar.gz: 12e01834662932fdd9ba7712d72a39b0f5e89f0ff3b556080f2bd49f3e990e02acad389e9bf21a41552422f6851ed6e9289255f3465d2750dd3b85723a408051
6
+ metadata.gz: 42bfa166a8ba25a83583b1bdd63ab71af631ac626a92e55779bf238ce0ae63b80a68cc073395750d60ab034787994b42149c6a9a084216a0ff4d491f398adb6f
7
+ data.tar.gz: 9b2270a1e5e061833f3b56c39f016330e36abd5d6d124e0c8604fb0a72b90d8eabc9b85c6549782a39c4ede7361dbb906e3afca7136c7e63e713c68766bad91d
data/README.md CHANGED
@@ -59,8 +59,23 @@ or
59
59
 
60
60
  $ sudo tunnelss 127.0.0.1:443 127.0.0.1:3000
61
61
 
62
+ ## Contributing
63
+
64
+ Run from the local source code:
65
+
66
+ $ sudo script/run
67
+
68
+ Feel free to submit pull requests. Please document your changes in the description.
69
+
62
70
  ## History
63
71
 
72
+ ### 0.1.3
73
+
74
+ - Updated README
75
+ - Added script/run to run from local source
76
+ - Support multiple POW suffixes (https://github.com/rchampourlier/tunnelss/pull/2)
77
+ - Using SHA256 (https://github.com/rchampourlier/tunnelss/pull/3)
78
+
64
79
  ### 0.1.2
65
80
 
66
81
  - Fix in README
@@ -16,7 +16,7 @@ private_key = $dir/key.pem
16
16
  RANDFILE = $dir/.rand
17
17
  default_days = 365 # how long to certify for
18
18
  default_crl_days = 30 # how long before next CRL
19
- default_md = sha1 # which md to use.
19
+ default_md = sha256 # which md to use.
20
20
  x509_extensions = usr_cert
21
21
 
22
22
  [ policy_anything ]
@@ -1,6 +1,7 @@
1
1
  require "tunnelss/version"
2
2
  require "tunnelss/configure_with_pow"
3
3
  require "eventmachine"
4
+ require 'fileutils'
4
5
 
5
6
  # [Tunnels](http://github.com/rchampourlier/tunnelss)
6
7
  #
@@ -30,15 +30,16 @@ module Tunnelss::ConfigureWithPow
30
30
  end
31
31
 
32
32
  def ca_exists?
33
- File.exists?(ca_dir) and File.exists?("#{ca_dir}/key.pem") and File.exists?("#{ca_dir}/cert.pem")
33
+ File.exists?(ca_dir) && File.exists?("#{ca_dir}/key.pem") && File.exists?("#{ca_dir}/cert.pem")
34
34
  end
35
35
 
36
36
  def build_ca
37
37
  FileUtils.rm_rf(ca_dir) if File.exists?(ca_dir)
38
38
  Dir.mkdir(ca_dir)
39
39
 
40
- puts "Creating SSL keypair for signing *.dev certificate"
41
- system "openssl req -newkey rsa:2048 -batch -x509 -nodes -subj \"/C=US/O=Developer Certificate/CN=*.dev Domain CA\" -keyout #{ca_dir}/key.pem -out #{ca_dir}/cert.pem -days 9999 &> /dev/null"
40
+ puts "Creating SSL keypair for signing #{pow_domain_extensions.join(',')}certificate"
41
+ multi_domain_certificate_param = pow_domain_extensions.map { |e| "CN=*.#{e} Domain CA" }.join('/')
42
+ system "openssl req -newkey rsa:2048 -batch -x509 -sha256 -nodes -subj \"/C=US/O=Developer Certificate/#{multi_domain_certificate_param}\" -keyout #{ca_dir}/key.pem -out #{ca_dir}/cert.pem -days 9999 &> /dev/null"
42
43
  puts "Adding certificate to login keychain as trusted."
43
44
  system "security add-trusted-cert -d -r trustRoot -k #{ENV['HOME']}/Library/Keychains/login.keychain #{ca_dir}/cert.pem"
44
45
  puts "================================================================================"
@@ -49,9 +50,10 @@ module Tunnelss::ConfigureWithPow
49
50
  def build_certificate
50
51
  prepare_openssl_config
51
52
 
52
- puts "Generating new *.dev certificate"
53
- system "openssl req -newkey rsa:2048 -batch -nodes -subj \"/C=US/O=Developer Certificate/CN=*.dev\" -keyout #{dir}/key.pem -out #{dir}/csr.pem -days 9999 &> /dev/null"
54
- puts "Signing *.dev certificate"
53
+ puts "Generating new *.#{pow_domain_extensions.join(',')} certificate"
54
+ multi_domain_certificate_param = pow_domain_extensions.map { |e| "CN=*.#{e}" }.join('/')
55
+ system "openssl req -newkey rsa:2048 -sha256 -batch -nodes -subj \"/C=US/O=Developer Certificate/#{multi_domain_certificate_param}\" -keyout #{dir}/key.pem -out #{dir}/csr.pem -days 9999 &> /dev/null"
56
+ puts "Signing *.#{pow_domain_extensions.join(',')} certificate"
55
57
  system "openssl ca -config #{ca_dir}/openssl.cnf -policy policy_anything -batch -days 9999 -out #{dir}/cert.pem -infiles #{dir}/csr.pem &> /dev/null"
56
58
 
57
59
  # Build cert chain
@@ -60,7 +62,7 @@ module Tunnelss::ConfigureWithPow
60
62
 
61
63
  write_pow_domains_to_cache
62
64
 
63
- puts "Generated certificate for your Pow .dev domains."
65
+ puts "Generated certificate for your Pow #{pow_domain_extensions.join(',')} domains."
64
66
  true
65
67
  end
66
68
 
@@ -107,8 +109,20 @@ module Tunnelss::ConfigureWithPow
107
109
  @pow_domains ||= Dir["#{pow_dir}/*"].collect {|f| File.basename(f)}
108
110
  end
109
111
 
112
+ def pow_domain_extensions
113
+ @pow_domain_extensions ||= begin
114
+ domains = `source #{ENV['HOME']}/.powconfig 2> /dev/null && echo $POW_DOMAINS`.chomp.split(',')
115
+ domains = ['dev'] if domains.empty?
116
+ domains
117
+ end
118
+ end
119
+
110
120
  def pow_domains_str
111
- pow_domains.map {|d| "DNS:#{d}.dev,DNS:*.#{d}.dev"}.join(',')
121
+ pow_domains.map do |d|
122
+ pow_domain_extensions.map do |e|
123
+ "DNS:#{d}.#{e},DNS:*.#{d}.#{e}"
124
+ end
125
+ end.flatten.join(',')
112
126
  end
113
127
 
114
128
  def pow_dir
@@ -1,3 +1,3 @@
1
1
  module Tunnelss
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ project_dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
4
+ $LOAD_PATH.unshift File.join(project_dir, 'lib')
5
+
6
+ require 'tunnelss'
7
+
8
+ unless ARGV.size == 0 || ARGV.size == 2
9
+ puts <<-D
10
+ Usage:
11
+ tunnelss [from to]
12
+
13
+ Examples:
14
+ tunnelss 443 3000
15
+ tunnelss localhost:443 localhost:3000
16
+
17
+ D
18
+ exit!
19
+ end
20
+
21
+ Tunnelss.run!(*ARGV)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tunnelss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - rchampourlier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-14 00:00:00.000000000 Z
11
+ date: 2015-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -113,6 +113,7 @@ files:
113
113
  - lib/tunnelss/version.rb
114
114
  - readme-screenshot.png
115
115
  - script/console
116
+ - script/run
116
117
  - spec/spec_helper.rb
117
118
  - spec/tunnelss_spec.rb
118
119
  - tunnelss.gemspec
@@ -135,7 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
136
  version: '0'
136
137
  requirements: []
137
138
  rubyforge_project: tunnelss
138
- rubygems_version: 2.2.2
139
+ rubygems_version: 2.4.3
139
140
  signing_key:
140
141
  specification_version: 4
141
142
  summary: Pow + SSL, automated