ovpn-key 0.7 → 0.7.1
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/bin/ovpn-key +11 -22
- data/lib/functions.rb +12 -2
- data/lib/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da769c59267c3c1bc605a2da314d55b0599e56de6e48dc25ef17ea56ed1af960
|
4
|
+
data.tar.gz: eb106210d91f8e5ba367d20d94e72e74f27e1a53a8abd3cf58cf61fc7580f0fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44b34a49e1730f3c9bff11022fa63e8cf1426c85a6f737c84b68cafa50be8c4e05110202d40dc1e1bfbfda36d29df02003b6ebd07c489fa21a76dcd8afea8d94
|
7
|
+
data.tar.gz: c4370cde04518bc151c64f2fb329718d68eed360080987807ed201103d55f999a84b0fcfd4d96634bc1124e96f419956b2c497046ab9bf957e55590e2882724c
|
data/bin/ovpn-key
CHANGED
@@ -13,35 +13,26 @@ options = {}
|
|
13
13
|
OptionParser.new do |opts|
|
14
14
|
opts.banner = "Usage: #{File.basename $0} <options> [--nopass]"
|
15
15
|
opts.on("--init [directory]", "Init a CA directory (defaults to current)") do |v|
|
16
|
-
|
17
|
-
options[:init] = v
|
18
|
-
else
|
19
|
-
options[:init] = "."
|
20
|
-
end
|
16
|
+
options[:init] = v ? v : "."
|
21
17
|
end
|
22
18
|
opts.on("--ca", "Generate a CA (ca.crt)") do |v|
|
23
19
|
check_crt('ca')
|
24
20
|
options[:generate_ca] = v
|
25
21
|
end
|
26
22
|
opts.on("--dh", "Generate a DH keyfile (dh.pem)") do |v|
|
23
|
+
# it's safe to rewrite this file
|
27
24
|
options[:generate_dh] = v
|
28
25
|
end
|
29
26
|
opts.on("--server [name]", "Generate a server key (defaults to 'server')") do |v|
|
30
|
-
|
31
|
-
options[:generate_server] = v
|
32
|
-
else
|
33
|
-
options[:generate_server] = "server"
|
34
|
-
end
|
27
|
+
options[:generate_server] = v ? v : "server"
|
35
28
|
check_crt(options[:generate_server])
|
36
29
|
end
|
37
30
|
opts.on("--client [name]", "Generate a client key and sign it") do |v|
|
38
|
-
|
39
|
-
check_crt(v)
|
31
|
+
check_client(v)
|
40
32
|
options[:generate_client] = v
|
41
33
|
end
|
42
34
|
opts.on("--zip [name]", "Ditto plus pack it to ZIP with OpenVPN config") do |v|
|
43
|
-
|
44
|
-
check_crt(v)
|
35
|
+
check_client(v)
|
45
36
|
options[:generate_zip] = v
|
46
37
|
end
|
47
38
|
opts.on("--revoke [name]", "Revoke a certificate (using crl.pem) and delete it") do |v|
|
@@ -81,6 +72,7 @@ elsif !File.exist? 'ovpn-key.yml'
|
|
81
72
|
begin
|
82
73
|
rc = YAML.load_file(File.expand_path '~/.ovpn-key.yml')
|
83
74
|
rescue Errno::ENOENT
|
75
|
+
# no configuration file in home directory is not an error
|
84
76
|
end
|
85
77
|
Dir.chdir File.expand_path(rc['cd']) if rc && rc['cd']
|
86
78
|
end
|
@@ -98,20 +90,18 @@ CN_CA = settings['ca_name'] || 'Certification Authority'
|
|
98
90
|
REQ = settings['details']
|
99
91
|
|
100
92
|
if options[:generate_ca]
|
101
|
-
|
102
|
-
|
93
|
+
gen_key('ca', 'ca', options[:no_password])
|
94
|
+
sign_key('ca', 'ca', CN_CA)
|
103
95
|
gen_crl
|
104
96
|
end
|
105
97
|
if options[:generate_dh]
|
106
98
|
exe "#{OPENSSL} dhparam -out dh.pem #{KEY_SIZE}"
|
107
99
|
end
|
108
100
|
if options[:generate_server]
|
109
|
-
|
110
|
-
req('server', options[:generate_server], options[:generate_server])
|
101
|
+
gen_and_sign('server', options[:generate_server], options[:no_password])
|
111
102
|
end
|
112
103
|
if options[:generate_client]
|
113
|
-
|
114
|
-
req('client', options[:generate_client], options[:generate_client])
|
104
|
+
gen_and_sign('client', options[:generate_client], options[:no_password])
|
115
105
|
end
|
116
106
|
if options[:generate_zip]
|
117
107
|
ovpn_files = Dir['*.ovpn']
|
@@ -124,8 +114,7 @@ if options[:generate_zip]
|
|
124
114
|
abort "More than one .ovpn files in current directory, aborting"
|
125
115
|
end
|
126
116
|
|
127
|
-
|
128
|
-
req('client', options[:generate_zip], options[:generate_zip])
|
117
|
+
gen_and_sign('client', options[:generate_zip], options[:no_password])
|
129
118
|
|
130
119
|
zip_file = File.join(File.expand_path(ZIP_DIR), "#{File.basename ovpn_file, '.ovpn'}.tblk.zip")
|
131
120
|
File.delete(zip_file) if File.exist?(zip_file)
|
data/lib/functions.rb
CHANGED
@@ -4,11 +4,21 @@ def check_crt filename
|
|
4
4
|
}
|
5
5
|
end
|
6
6
|
|
7
|
+
def check_client name
|
8
|
+
abort "Error: client should have an alphanumeric name" unless name
|
9
|
+
check_crt(name)
|
10
|
+
end
|
11
|
+
|
7
12
|
def exe cmd
|
8
13
|
system(cmd) or abort "error executing: #{cmd}"
|
9
14
|
end
|
10
15
|
|
11
|
-
def
|
16
|
+
def gen_and_sign type, certname, no_password
|
17
|
+
gen_key(type, certname, no_password)
|
18
|
+
sign_key(type, certname, certname)
|
19
|
+
end
|
20
|
+
|
21
|
+
def gen_key type, certname, no_password
|
12
22
|
if no_password
|
13
23
|
exe "#{OPENSSL} genrsa -out '#{certname}.key' #{KEY_SIZE} -config #{SSL_CONF} -extensions ext.#{type}"
|
14
24
|
else
|
@@ -16,7 +26,7 @@ def genrsa type, certname, no_password
|
|
16
26
|
end
|
17
27
|
end
|
18
28
|
|
19
|
-
def
|
29
|
+
def sign_key type, certname, cn
|
20
30
|
if certname == 'ca'
|
21
31
|
exe "#{OPENSSL} req -new -x509 -key '#{certname}.key' -out '#{certname}.crt' -config #{SSL_CONF} -subj '/CN=#{cn}#{REQ}' -extensions ext.#{type}"
|
22
32
|
else
|
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
::Version = '0.7'
|
1
|
+
::Version = '0.7.1'
|