ovpn-key 0.6 → 0.7
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 +6 -3
- data/bin/ovpn-key +20 -7
- data/defaults/ovpn-key.yml +1 -1
- 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: 75b4b86d88cbfbac55deafa5ab94d8f306efa10c001e2107bfdb04ac29515969
|
4
|
+
data.tar.gz: bab07249832317c9281f055772f0f33ffeb8474be7200bf477b78e3481dea06b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b28955c734a4f52a445fd278a9de148c64ffc2ed67584364d9466d62ce110981779a8a43d90d3de4d573dd03f2d85a23972d289bcdd2093d2dfb89ac342b1eb9
|
7
|
+
data.tar.gz: a15d392159908b1d8f2a7a9a95e395ea3ebe875a3ca1df255ec0e622d42aa5e6cf6bef73bdd52ce2cfeac3b566ec1eded257e212a1ee1071d095d012515acb81
|
data/README.md
CHANGED
@@ -12,6 +12,8 @@ It supports encrypting `.key` files with a passphrase (there is an option to dis
|
|
12
12
|
|
13
13
|
It can be used with a non-self signed CA, just place your `ca.key` and `ca.crt` in the keys directory and skip the `--ca` step.
|
14
14
|
|
15
|
+
It can be used to manage a non-OpenVPN CA, in that case `--zip` step will be useless, but all others will work.
|
16
|
+
|
15
17
|
For now it should be considered experimental and rather undocumented.
|
16
18
|
If you're brave, [let me know](https://github.com/chillum/ovpn-key/issues), where the problems are.
|
17
19
|
|
@@ -25,10 +27,11 @@ If you're brave, [let me know](https://github.com/chillum/ovpn-key/issues), wher
|
|
25
27
|
1. `ovpn-key --init`
|
26
28
|
2. edit `ovpn-key.yml` and `openssl.ini`
|
27
29
|
3. `ovpn-key --ca --dh --server --nopass`
|
28
|
-
4.
|
30
|
+
4. `ovpn-key --client somebody`
|
31
|
+
5. `ovpn-key --revoke somebody`
|
32
|
+
6. add a file with `.ovpn` extension to the directory
|
29
33
|
it should contain every setting except for `cert` and `key`
|
30
|
-
|
31
|
-
6. `ovpn-key --revoke somebody`
|
34
|
+
7. `ovpn-key --zip somebody-else`
|
32
35
|
|
33
36
|
### Configuration
|
34
37
|
|
data/bin/ovpn-key
CHANGED
@@ -34,11 +34,16 @@ OptionParser.new do |opts|
|
|
34
34
|
end
|
35
35
|
check_crt(options[:generate_server])
|
36
36
|
end
|
37
|
-
opts.on("--client [name]", "Generate a client key and
|
37
|
+
opts.on("--client [name]", "Generate a client key and sign it") do |v|
|
38
38
|
abort "Error: client should have an alphanumeric name" unless v
|
39
39
|
check_crt(v)
|
40
40
|
options[:generate_client] = v
|
41
41
|
end
|
42
|
+
opts.on("--zip [name]", "Ditto plus pack it to ZIP with OpenVPN config") do |v|
|
43
|
+
abort "Error: client should have an alphanumeric name" unless v
|
44
|
+
check_crt(v)
|
45
|
+
options[:generate_zip] = v
|
46
|
+
end
|
42
47
|
opts.on("--revoke [name]", "Revoke a certificate (using crl.pem) and delete it") do |v|
|
43
48
|
abort "Please specify what certificate to revoke" unless v
|
44
49
|
options[:revoke] = v
|
@@ -50,10 +55,14 @@ end.parse!
|
|
50
55
|
if ARGV.length > 0
|
51
56
|
abort "Error: invalid args: #{ARGV.join ' '}\nSee `#{File.basename $0} -h` for help"
|
52
57
|
end
|
53
|
-
unless options[:init] || options[:generate_ca] || options[:generate_dh] \
|
54
|
-
|| options[:
|
58
|
+
unless options[:init] || options[:generate_ca] || options[:generate_dh] || options[:generate_server] \
|
59
|
+
|| options[:generate_client] || options[:generate_zip] || options[:revoke]
|
55
60
|
abort "See `#{File.basename $0} -h` for usage"
|
56
61
|
end
|
62
|
+
if options[:generate_client] and options[:generate_zip]
|
63
|
+
# I assume that user likely wants one of them and is confused with usage
|
64
|
+
abort "There can be only one: --client or --zip"
|
65
|
+
end
|
57
66
|
File.umask 0077
|
58
67
|
|
59
68
|
if options[:init]
|
@@ -101,6 +110,10 @@ if options[:generate_server]
|
|
101
110
|
req('server', options[:generate_server], options[:generate_server])
|
102
111
|
end
|
103
112
|
if options[:generate_client]
|
113
|
+
genrsa('client', options[:generate_client], options[:no_password])
|
114
|
+
req('client', options[:generate_client], options[:generate_client])
|
115
|
+
end
|
116
|
+
if options[:generate_zip]
|
104
117
|
ovpn_files = Dir['*.ovpn']
|
105
118
|
case ovpn_files.length
|
106
119
|
when 1
|
@@ -111,17 +124,17 @@ if options[:generate_client]
|
|
111
124
|
abort "More than one .ovpn files in current directory, aborting"
|
112
125
|
end
|
113
126
|
|
114
|
-
genrsa('client', options[:
|
115
|
-
req('client', options[:
|
127
|
+
genrsa('client', options[:generate_zip], options[:no_password])
|
128
|
+
req('client', options[:generate_zip], options[:generate_zip])
|
116
129
|
|
117
130
|
zip_file = File.join(File.expand_path(ZIP_DIR), "#{File.basename ovpn_file, '.ovpn'}.tblk.zip")
|
118
131
|
File.delete(zip_file) if File.exist?(zip_file)
|
119
132
|
Zip::File.open(zip_file, Zip::File::CREATE) do |zip|
|
120
133
|
zip.get_output_stream(ovpn_file) {|f|
|
121
134
|
File.open(ovpn_file).each {|line| f.write line}
|
122
|
-
f.write "cert #{options[:
|
135
|
+
f.write "cert #{options[:generate_zip]}.crt\nkey #{options[:generate_zip]}.key\n"
|
123
136
|
}
|
124
|
-
[ 'ca.crt', "#{options[:
|
137
|
+
[ 'ca.crt', "#{options[:generate_zip]}.crt", "#{options[:generate_zip]}.key"].each {|i|
|
125
138
|
zip.add(i, i)
|
126
139
|
}
|
127
140
|
end
|
data/defaults/ovpn-key.yml
CHANGED
data/lib/version.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
::Version = '0.
|
1
|
+
::Version = '0.7'
|