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 +4 -4
- data/README.md +15 -0
- data/generators/openssl.cnf +1 -1
- data/lib/tunnelss.rb +1 -0
- data/lib/tunnelss/configure_with_pow.rb +22 -8
- data/lib/tunnelss/version.rb +1 -1
- data/script/run +21 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad55614a31f005b914c96e7be44379152e2307e1
|
4
|
+
data.tar.gz: 5aa6d70d4ec2d399b208938bd4c80497eaba0835
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
data/generators/openssl.cnf
CHANGED
@@ -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 =
|
19
|
+
default_md = sha256 # which md to use.
|
20
20
|
x509_extensions = usr_cert
|
21
21
|
|
22
22
|
[ policy_anything ]
|
data/lib/tunnelss.rb
CHANGED
@@ -30,15 +30,16 @@ module Tunnelss::ConfigureWithPow
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def ca_exists?
|
33
|
-
File.exists?(ca_dir)
|
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
|
41
|
-
|
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
|
53
|
-
|
54
|
-
|
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 .
|
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
|
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
|
data/lib/tunnelss/version.rb
CHANGED
data/script/run
ADDED
@@ -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.
|
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:
|
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.
|
139
|
+
rubygems_version: 2.4.3
|
139
140
|
signing_key:
|
140
141
|
specification_version: 4
|
141
142
|
summary: Pow + SSL, automated
|