tunnelss 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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