fluent-plugin-secure-forward 0.3.3dev2 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -0
- data/example/cert_c.conf +17 -0
- data/example/cert_i.conf +18 -0
- data/example/certs/cert-with-intermediate.pem +80 -0
- data/example/certs/key-for-with-intermediate.key +30 -0
- data/example/certs/root.pem +23 -0
- data/example/certs/testing-intermediate.pem +31 -0
- data/example/certs/testing-server.pem +27 -0
- data/example/client_proxy.conf +26 -0
- data/fluent-plugin-secure-forward.gemspec +2 -1
- data/lib/fluent/plugin/in_secure_forward.rb +16 -6
- data/lib/fluent/plugin/out_secure_forward.rb +6 -3
- data/lib/fluent/plugin/output_node.rb +12 -2
- data/lib/fluent/plugin/secure_forward/cert_util.rb +8 -0
- metadata +27 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95abed3f7c511ce154782072f6b4ab38dd067e6b
|
4
|
+
data.tar.gz: 49ec93a55ebdb11829cbf3b7afbb0c8802f05ea2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfa064b8e5872a565a22f1cec9af4fe27f83a4b7b34d56254c03979d7781f71caae25c540cb5682007aef8d71cdde2304a968011b4eba2eb63832cc6f775908f
|
7
|
+
data.tar.gz: 93af7276b30cf49cf9a4a58dfcd550379e5bc918032bb7c42a0d8596cf49416591164f9ee92f69179814201f12277bc650068e0f6e2c44d01d7e975d35837c1f
|
data/README.md
CHANGED
@@ -378,6 +378,26 @@ To specify keepalive timeouts, use `keepalive` configuration with seconds. SSL c
|
|
378
378
|
</match>
|
379
379
|
```
|
380
380
|
|
381
|
+
|
382
|
+
If you connect via Proxy,
|
383
|
+
set for `proxy_uri` in `<server>` section:
|
384
|
+
```apache
|
385
|
+
<match secret.data.**>
|
386
|
+
type secure_forward
|
387
|
+
shared_key secret_string
|
388
|
+
self_hostname client.fqdn.local
|
389
|
+
|
390
|
+
secure yes
|
391
|
+
# and configurations for certs/verification
|
392
|
+
|
393
|
+
<server>
|
394
|
+
host server.fqdn.local # or IP
|
395
|
+
# port 24284
|
396
|
+
proxy_uri http://foo.bar.local:3128
|
397
|
+
</server>
|
398
|
+
</match>
|
399
|
+
```
|
400
|
+
|
381
401
|
## Senario (developer document)
|
382
402
|
|
383
403
|
* server
|
data/example/cert_c.conf
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
<source>
|
2
|
+
type forward
|
3
|
+
</source>
|
4
|
+
|
5
|
+
<match test.**>
|
6
|
+
type secure_forward
|
7
|
+
secure yes
|
8
|
+
enable_strict_verification yes
|
9
|
+
self_hostname client
|
10
|
+
shared_key norikra2
|
11
|
+
ca_cert_path /Users/tagomoris/github/fluent-plugin-secure-forward/root.pem
|
12
|
+
<server>
|
13
|
+
host 127.0.0.1
|
14
|
+
hostlabel testing.fluentd.org
|
15
|
+
</server>
|
16
|
+
flush_interval 1s
|
17
|
+
</match>
|
data/example/cert_i.conf
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
|
2
|
+
# To check SSL certificate informations
|
3
|
+
# openssl s_client -connect testing.fluentd.org:24284 -showcerts
|
4
|
+
|
5
|
+
<source>
|
6
|
+
type secure_forward
|
7
|
+
secure yes
|
8
|
+
self_hostname testing.fluentd.org
|
9
|
+
shared_key norikra2
|
10
|
+
cert_path /Users/tagomoris/github/fluent-plugin-secure-forward/example/certs/cert-with-intermediate.pem
|
11
|
+
private_key_path /Users/tagomoris/github/fluent-plugin-secure-forward/example/certs/key-for-with-intermediate.key
|
12
|
+
private_key_passphrase norikra2
|
13
|
+
authentication no
|
14
|
+
</source>
|
15
|
+
|
16
|
+
<match test.**>
|
17
|
+
type stdout
|
18
|
+
</match>
|
@@ -0,0 +1,80 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFRTCCBC2gAwIBAgIQVMhYFMdnctqh7wAXLx1HjzANBgkqhkiG9w0BAQsFADCBvDELMAkGA1UE
|
3
|
+
BhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQ
|
4
|
+
dXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0
|
5
|
+
dHBzOi8vd3d3LnN5bWF1dGguY29tL2Nwcy90ZXN0Y2ExIDAeBgNVBAMTF1RyaWFsIFNTTCBKYXBh
|
6
|
+
biBDQSAtIEcyMB4XDTE1MTEyNDAwMDAwMFoXDTE1MTIwODIzNTk1OVowgdAxCzAJBgNVBAYTAkpQ
|
7
|
+
MQ4wDAYDVQQIDAVUb2t5bzETMBEGA1UEBwwKQ2hpeW9kYS1LdTEcMBoGA1UECgwTVHJlYXN1cmUg
|
8
|
+
RGF0YSwgSy5LLjEYMBYGA1UECwwPT3BlblNvdXJjZSBUZWFtMSwwKgYDVQQLDCNodHRwczovL3d3
|
9
|
+
dy5zeW1hbnRlYy5jb20vY3BzL3Rlc3RjYTEYMBYGA1UECwwPcjQ1MDExNTExNTE4MzgyMRwwGgYD
|
10
|
+
VQQDDBN0ZXN0aW5nLmZsdWVudGQub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
11
|
+
pz2pcz/cGXSvEYMCXZLyLj8BXQvPRPfQIITPzCWpr+jbr5oVI2D3FqysJLedLRZHWY3wAmp/AHqS
|
12
|
+
WIHfaGUr6TmLVaKM2weFfxjKtwHboVYSHrhL5bth6fm8gMzJrB6UbFyfUXRPlZw6z/WxcMezIoHp
|
13
|
+
6KSS8Ao9ixeql1AFKF4Yc8H6xUH0fLLNOBLP7UxIbg7xZNxqcjlULOgKcMojK2YioI98Yq9nJ5To
|
14
|
+
VopopIgtPEqXzN7W9EdrtaHelky9fsXLY3YnZ599ujEmHMMOzKbrTg7OMOyKwyhFdyERsGfNOHJ1
|
15
|
+
/WdgCZZXRlfc0s2SxEWttaJ8v9D18Va1w4cR8wIDAQABo4IBKzCCAScwCQYDVR0TBAIwADAOBgNV
|
16
|
+
HQ8BAf8EBAMCBaAwXgYDVR0fBFcwVTBToFGgT4ZNaHR0cDovL29uc2l0ZWNybC5zeW1hdXRoLmpw
|
17
|
+
L1N5bWFudGVjSmFwYW5JbmNUcmlhbFNTTEphcGFuQ0FzaGEyL0xhdGVzdENSTC5jcmwwHgYDVR0R
|
18
|
+
BBcwFYITdGVzdGluZy5mbHVlbnRkLm9yZzBKBgNVHSAEQzBBMD8GCmCGSAGG+EUBBxUwMTAvBggr
|
19
|
+
BgEFBQcCARYjaHR0cHM6Ly93d3cuc3ltYW50ZWMuY29tL2Nwcy90ZXN0Y2EwHQYDVR0lBBYwFAYI
|
20
|
+
KwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFN0fIWQuRcLgQDlIvuPLhICXwySKMA0GCSqG
|
21
|
+
SIb3DQEBCwUAA4IBAQAU6rXvUcybWiyHfIGSlzy4MYO6HBeaF0tc2Pt0T4ByX+smXvKoVVgZbX8E
|
22
|
+
ahlZURfjSwZyXHCpMvcH17/IyW7c+HrX/jheMZ7iyYdvCQnZ2GrT8Zr3GRMcNYf8e8wnXwkBFAPj
|
23
|
+
yek5XHF5ShwLv64bOWDjAfdIAUCHEo1PpDz6JPQgJEb+SHqrxWx+O0zmELYUgSvRWKBuEC5TrxGU
|
24
|
+
HEib235vmz6/TgDUqfci7RPf16cwqVyEilzD5tLXTuMp4+tkPRjEA5d+EzH5O2Lx/ef5RTnYYMZ0
|
25
|
+
zsVBXssRtwcFKO2vStIGitRK9G9mbvzMNKuItaHcmw8GOhyXnMjTpl8u
|
26
|
+
-----END CERTIFICATE-----
|
27
|
+
-----BEGIN CERTIFICATE-----
|
28
|
+
MIIFRjCCBC6gAwIBAgIQdV9MvP3+ENU3kdfSg2vm/DANBgkqhkiG9w0BAQsFADCB
|
29
|
+
hTELMAkGA1UEBhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8w
|
30
|
+
LQYDVQQLEyZGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjEm
|
31
|
+
MCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBKYXBhbiBSb290IC0gRzUwHhcNMTUwMjE4
|
32
|
+
MDAwMDAwWhcNMjUwMjE3MjM1OTU5WjCBvDELMAkGA1UEBhMCSlAxHTAbBgNVBAoT
|
33
|
+
FFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQdXJwb3Nl
|
34
|
+
cyBPbmx5LiBObyBhc3N1cmFuY2VzLjE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0
|
35
|
+
IGh0dHBzOi8vd3d3LnN5bWF1dGguY29tL2Nwcy90ZXN0Y2ExIDAeBgNVBAMTF1Ry
|
36
|
+
aWFsIFNTTCBKYXBhbiBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
37
|
+
CgKCAQEA20T0ajk8CG7rIu90Zyh4bDAo32nO6RdBN1xjFD054LbjIR9R7dqAXbLx
|
38
|
+
sYj5+V/7v5tN4ogqyHiK2CKLe3z/rtrFjeei/Xyr5NysNWuY2v/OIRSLpeKYYivr
|
39
|
+
Ax76ssHbPRdqT4OobxYfRaOEZKwM5etUD55jLI1/0lcSeNqv7Gps8tKt44T4vDx2
|
40
|
+
E8J0zT9Z102e649si0rUoGbP3flEBwvnkrmLTQDV1Rf9p3QbaAaZgsmEaXshgufJ
|
41
|
+
Bti/BpOy1Sdg4ZTCcKPb/qhSphn2LZNbBFOH/rQiu4UoWHWWMOcsJm22pARSsELI
|
42
|
+
ivNJIcXSE8PLTkLWisqRkVODaRaL+wIDAQABo4IBdzCCAXMwEgYDVR0TAQH/BAgw
|
43
|
+
BgEB/wIBADB7BgNVHSAEdDByMHAGCmCGSAGG+EUBBxUwYjAuBggrBgEFBQcCARYi
|
44
|
+
aHR0cHM6Ly93d3cuc3ltYXV0aC5jb20vY3BzL3Rlc3RjYTAwBggrBgEFBQcCAjAk
|
45
|
+
GiJodHRwczovL3d3dy5zeW1hdXRoLmNvbS9jcHMvdGVzdGNhMGUGA1UdHwReMFww
|
46
|
+
WqBYoFaGVGh0dHA6Ly9vbnNpdGVjcmwuc3ltYXV0aC5qcC9BUkwvU3ltYW50ZWNK
|
47
|
+
YXBhbkluY1RyaWFsQ2xhc3MzSmFwYW5Sb290RzUvTGF0ZXN0QVJMLmNybDAOBgNV
|
48
|
+
HQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGUzLTIw
|
49
|
+
NDgtMTc5MB0GA1UdDgQWBBTdHyFkLkXC4EA5SL7jy4SAl8MkijAfBgNVHSMEGDAW
|
50
|
+
gBRivYsKGrwW4qUaX5DjNlpcExbkETANBgkqhkiG9w0BAQsFAAOCAQEAZbKcrNvS
|
51
|
+
q/b4KNd4Y41uNEqaCQlL6Uvqs5q6b0HQbK/Hjolt3sJttqT/jtSxGIITZVPH8PRt
|
52
|
+
6fo3aWII1eLIiCVzuQc0eVA0671pPhUHgd8mPHgUmhsxLURWgEE3lMx9dKQhKL1V
|
53
|
+
Fcp/2bQy+dLVZELQl2L3qtRCVEYubLFmoAgBG7nyiwjt+AsvG6AX2N7MLzsF+C8L
|
54
|
+
vRbWEqglqDCFAt1es1Vfb2a7zFj0/BUYDDo6eQE/BpYiYmbHtoWz6SzBNZsehMb5
|
55
|
+
OlnF9xqndWK7x2rtaNyi+Z287AzaDe0VFTUaGd1YnzKlEHphRr2nMHd/iNRZFNLy
|
56
|
+
poe4IWfm9maFow==
|
57
|
+
-----END CERTIFICATE-----
|
58
|
+
-----BEGIN CERTIFICATE-----
|
59
|
+
MIID2DCCAsCgAwIBAgIQGOtH8axDhLeZoyevey+LezANBgkqhkiG9w0BAQUFADCB
|
60
|
+
hTELMAkGA1UEBhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8w
|
61
|
+
LQYDVQQLEyZGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjEm
|
62
|
+
MCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBKYXBhbiBSb290IC0gRzUwHhcNMTUwMjE4
|
63
|
+
MDAwMDAwWhcNMzUwMjE3MjM1OTU5WjCBhTELMAkGA1UEBhMCSlAxHTAbBgNVBAoT
|
64
|
+
FFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQdXJwb3Nl
|
65
|
+
cyBPbmx5LiBObyBhc3N1cmFuY2VzLjEmMCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBK
|
66
|
+
YXBhbiBSb290IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDF
|
67
|
+
xdnFVPR3Azt7ar9rYymmrSxRYinWPrNByp8jSWhWudfgbRi0FGh848rsAgvg51c/
|
68
|
+
xilEYouj3iRFV0Tt90jWgYQuH6+HRdTz39JGQ8cCGdjo6u0gBUZZMAMJven4nGRk
|
69
|
+
zF4u4KPh288sZZWL0VZqHIoKQZTgwnr+QFDlthRCQBKLStl1KTQ9WKw8z8VxK19+
|
70
|
+
v7b/lURmBVANhZgf+cxnvwstO1goxj34B6y5eoJ9DTIwWSFGkARhdiAMrOzSAU8u
|
71
|
+
h/G1Xcp3JoVX8NNEd5LhHkJKS1idK4PXTP7uXXqOFI5NoL+Q0gNAyJYNtXe8KQ4q
|
72
|
+
8L9O9pNaC418OCiiS/4rAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
73
|
+
AQH/BAQDAgEGMB0GA1UdDgQWBBRivYsKGrwW4qUaX5DjNlpcExbkETANBgkqhkiG
|
74
|
+
9w0BAQUFAAOCAQEAqB1+wsyBShUOzkAdoFh55x9e1Od7nrnIPv6KKbcycMDv8kf3
|
75
|
+
25D5KlgVIW+OWrMKOK7wlRUX7kvF4cENqSCn1W3VVLzCvKTbx34pRR/V8cuUD+2D
|
76
|
+
7k1Q1331qFiulycGOl0IlqJCJRi3UPa2fuCDyHikOcbnIApK3Hk2/wGWhool5yzj
|
77
|
+
0wUbGcyDg12o1U96bB0tO5ZFIFdYB31skviyiHJojcq4+uRVKA1DrsKoK8ZQx0xf
|
78
|
+
p6l5H/z5jmFqlBTW8EIW+tdB1NOKCRI6JPwR+NSC8UtZS2M39oyGkGyReoIKjT8K
|
79
|
+
XFfTm7TDhB9Tf65TF+mw0Rkr101KsoUT5Sm8Dw==
|
80
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,30 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
Proc-Type: 4,ENCRYPTED
|
3
|
+
DEK-Info: DES-EDE3-CBC,FCB585C311CF8314
|
4
|
+
|
5
|
+
l58lb4gVU02qpt3Ejb0SktlphW/ZbZCTquYnY7vRWimBIlXQjSyx7ZJM9b+4zyW7
|
6
|
+
oQCWUkY4bM6GbdLJ3hf4j2tazY5qTZIEsxf89qro3yjfr9hIMONbfgF4JVI05LP/
|
7
|
+
vNCyOskHJSkfEnAfL8pAd7kilhwrUa2M5rbOTGoZTDGUShhIRsKx4q/HIcGAQQD5
|
8
|
+
VNl57idQz1mCQQaDsuFIhVk+A4QifG8QfjjbmbT3J+ZxqWo2UL+c0G56udcJSSSe
|
9
|
+
XgSjJfclykl0mBQwXyKCe/APntOJm31fZHJ1UCEaShHoMXLjvaCRosIbVnIakXtu
|
10
|
+
zSkB+XnQqNfYvp7gTIEUzOyvE/uXGk0h6NbYBJpOYEIzlUzXlgq5us3uMpGzzWx9
|
11
|
+
OG0IE9ePR1sRCuW176TtwgP4TwO0U/oZz8KI2vGSEcNcHNTWqc8LfswXySqEvpYG
|
12
|
+
ZigqKx/js+7DK+8z15D2oez9GoeXPsUnKNrkJ+kKgo/oDQQSJpcDyRG/fOrH/6Ke
|
13
|
+
/n74cXtLo5gMxGOezc7W845JABtgtT26RxB2fVw22OThs8Ap1ushJF9hYmdnW4iz
|
14
|
+
ubWvUd7bXcsDAzig9CEzlGRXms9VNCK+U7aU+rLmI2ipY8dCmJUMkBydFY0Rn9Es
|
15
|
+
mwGqcT+gabwIuxGRCLJyyQBQclNetrPOUUNSj4Y0KgzZBo6VodthAqb5Au5xGCk5
|
16
|
+
9nDke11zjPCu3oDYNOVXTJCgt7Tj+xtGR7xKpdj8rRR8EEy/Yvd4ebupWLJ0zr/v
|
17
|
+
lhzBdOJ/wuzNX+zd4vw/xCVxx+W3i0hO8NWvHEAhYd3NeOacIM8vXgT6hCGuphu4
|
18
|
+
M+ggAcsIPwFy52ol50kF0uSfKAUWbaldMFalc4BYt7ZjDAbYe1tY1mefiWF+drSg
|
19
|
+
PUZ86pZOWc4s3/MCA9bfGYuFzKCQhRDChVt0pMBYfFmxXsvwIVpzgEh5MHE0/5zU
|
20
|
+
0fiEXLzn/gkpTDwo1jlYKZ4yK6UiWnqMVCz2cTIa/4wHE2HgBV8APzF4tO5uJZu1
|
21
|
+
EiKu+qx6jS3c//E32oRmjsCbQBi/D4DNY7uAsNGXfCGvAceDp1Z6Sp5difaelNOM
|
22
|
+
Af/EsJaO8xSwLvM5Hj3Q8NC+kYT0Kr8oDCTSU4w2x/596QJdtzNB2r3YlWqjWh4D
|
23
|
+
dMy8jzmVnyAjD3tvzAf/XqMs8e3YHNEh+q1MQaXa2y7Drw6MaoIRVSmXYHwHeJzg
|
24
|
+
BNU47QOjDYwX0fJgzpq65N4aGzG3wdRR3hKXl0S9Z3CBC6xWaw4Ps2tlspFk4ekN
|
25
|
+
TODB2jOh+aQQR4npy4RtUKBwIQc2O/VqP0V4D0OdVZr01W4CfBGiiSh5rsve4XxY
|
26
|
+
KRvyz6LwHVdKKlgyVJCCMcAQv4OI4omPopvpZwBqYAkZQmQQJIh/O0o+BLb8pqOL
|
27
|
+
/ntJ8y3FF4FIWjtrd58iSOFUpmBw/rLjUNgm86cuOz4RKW8kBtYTWyBym3+DdCzF
|
28
|
+
mlOobTEN1TqDVA24qQFdFH4F0E917JY0FyWg7JpE2ekLAixBSCm800fgx7Tqy4/m
|
29
|
+
s0twidyXlnNKA3ejkbDwa1jtqkGfvsD5ELmbNyY5hZFeJsZwpLCJA8AY0hHvquYR
|
30
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,23 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIID2DCCAsCgAwIBAgIQGOtH8axDhLeZoyevey+LezANBgkqhkiG9w0BAQUFADCB
|
3
|
+
hTELMAkGA1UEBhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8w
|
4
|
+
LQYDVQQLEyZGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjEm
|
5
|
+
MCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBKYXBhbiBSb290IC0gRzUwHhcNMTUwMjE4
|
6
|
+
MDAwMDAwWhcNMzUwMjE3MjM1OTU5WjCBhTELMAkGA1UEBhMCSlAxHTAbBgNVBAoT
|
7
|
+
FFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQdXJwb3Nl
|
8
|
+
cyBPbmx5LiBObyBhc3N1cmFuY2VzLjEmMCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBK
|
9
|
+
YXBhbiBSb290IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDF
|
10
|
+
xdnFVPR3Azt7ar9rYymmrSxRYinWPrNByp8jSWhWudfgbRi0FGh848rsAgvg51c/
|
11
|
+
xilEYouj3iRFV0Tt90jWgYQuH6+HRdTz39JGQ8cCGdjo6u0gBUZZMAMJven4nGRk
|
12
|
+
zF4u4KPh288sZZWL0VZqHIoKQZTgwnr+QFDlthRCQBKLStl1KTQ9WKw8z8VxK19+
|
13
|
+
v7b/lURmBVANhZgf+cxnvwstO1goxj34B6y5eoJ9DTIwWSFGkARhdiAMrOzSAU8u
|
14
|
+
h/G1Xcp3JoVX8NNEd5LhHkJKS1idK4PXTP7uXXqOFI5NoL+Q0gNAyJYNtXe8KQ4q
|
15
|
+
8L9O9pNaC418OCiiS/4rAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
|
16
|
+
AQH/BAQDAgEGMB0GA1UdDgQWBBRivYsKGrwW4qUaX5DjNlpcExbkETANBgkqhkiG
|
17
|
+
9w0BAQUFAAOCAQEAqB1+wsyBShUOzkAdoFh55x9e1Od7nrnIPv6KKbcycMDv8kf3
|
18
|
+
25D5KlgVIW+OWrMKOK7wlRUX7kvF4cENqSCn1W3VVLzCvKTbx34pRR/V8cuUD+2D
|
19
|
+
7k1Q1331qFiulycGOl0IlqJCJRi3UPa2fuCDyHikOcbnIApK3Hk2/wGWhool5yzj
|
20
|
+
0wUbGcyDg12o1U96bB0tO5ZFIFdYB31skviyiHJojcq4+uRVKA1DrsKoK8ZQx0xf
|
21
|
+
p6l5H/z5jmFqlBTW8EIW+tdB1NOKCRI6JPwR+NSC8UtZS2M39oyGkGyReoIKjT8K
|
22
|
+
XFfTm7TDhB9Tf65TF+mw0Rkr101KsoUT5Sm8Dw==
|
23
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,31 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFRjCCBC6gAwIBAgIQdV9MvP3+ENU3kdfSg2vm/DANBgkqhkiG9w0BAQsFADCB
|
3
|
+
hTELMAkGA1UEBhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8w
|
4
|
+
LQYDVQQLEyZGb3IgVGVzdCBQdXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjEm
|
5
|
+
MCQGA1UEAxMdVHJpYWwgQ2xhc3MgMyBKYXBhbiBSb290IC0gRzUwHhcNMTUwMjE4
|
6
|
+
MDAwMDAwWhcNMjUwMjE3MjM1OTU5WjCBvDELMAkGA1UEBhMCSlAxHTAbBgNVBAoT
|
7
|
+
FFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQdXJwb3Nl
|
8
|
+
cyBPbmx5LiBObyBhc3N1cmFuY2VzLjE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0
|
9
|
+
IGh0dHBzOi8vd3d3LnN5bWF1dGguY29tL2Nwcy90ZXN0Y2ExIDAeBgNVBAMTF1Ry
|
10
|
+
aWFsIFNTTCBKYXBhbiBDQSAtIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
11
|
+
CgKCAQEA20T0ajk8CG7rIu90Zyh4bDAo32nO6RdBN1xjFD054LbjIR9R7dqAXbLx
|
12
|
+
sYj5+V/7v5tN4ogqyHiK2CKLe3z/rtrFjeei/Xyr5NysNWuY2v/OIRSLpeKYYivr
|
13
|
+
Ax76ssHbPRdqT4OobxYfRaOEZKwM5etUD55jLI1/0lcSeNqv7Gps8tKt44T4vDx2
|
14
|
+
E8J0zT9Z102e649si0rUoGbP3flEBwvnkrmLTQDV1Rf9p3QbaAaZgsmEaXshgufJ
|
15
|
+
Bti/BpOy1Sdg4ZTCcKPb/qhSphn2LZNbBFOH/rQiu4UoWHWWMOcsJm22pARSsELI
|
16
|
+
ivNJIcXSE8PLTkLWisqRkVODaRaL+wIDAQABo4IBdzCCAXMwEgYDVR0TAQH/BAgw
|
17
|
+
BgEB/wIBADB7BgNVHSAEdDByMHAGCmCGSAGG+EUBBxUwYjAuBggrBgEFBQcCARYi
|
18
|
+
aHR0cHM6Ly93d3cuc3ltYXV0aC5jb20vY3BzL3Rlc3RjYTAwBggrBgEFBQcCAjAk
|
19
|
+
GiJodHRwczovL3d3dy5zeW1hdXRoLmNvbS9jcHMvdGVzdGNhMGUGA1UdHwReMFww
|
20
|
+
WqBYoFaGVGh0dHA6Ly9vbnNpdGVjcmwuc3ltYXV0aC5qcC9BUkwvU3ltYW50ZWNK
|
21
|
+
YXBhbkluY1RyaWFsQ2xhc3MzSmFwYW5Sb290RzUvTGF0ZXN0QVJMLmNybDAOBgNV
|
22
|
+
HQ8BAf8EBAMCAQYwKQYDVR0RBCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGUzLTIw
|
23
|
+
NDgtMTc5MB0GA1UdDgQWBBTdHyFkLkXC4EA5SL7jy4SAl8MkijAfBgNVHSMEGDAW
|
24
|
+
gBRivYsKGrwW4qUaX5DjNlpcExbkETANBgkqhkiG9w0BAQsFAAOCAQEAZbKcrNvS
|
25
|
+
q/b4KNd4Y41uNEqaCQlL6Uvqs5q6b0HQbK/Hjolt3sJttqT/jtSxGIITZVPH8PRt
|
26
|
+
6fo3aWII1eLIiCVzuQc0eVA0671pPhUHgd8mPHgUmhsxLURWgEE3lMx9dKQhKL1V
|
27
|
+
Fcp/2bQy+dLVZELQl2L3qtRCVEYubLFmoAgBG7nyiwjt+AsvG6AX2N7MLzsF+C8L
|
28
|
+
vRbWEqglqDCFAt1es1Vfb2a7zFj0/BUYDDo6eQE/BpYiYmbHtoWz6SzBNZsehMb5
|
29
|
+
OlnF9xqndWK7x2rtaNyi+Z287AzaDe0VFTUaGd1YnzKlEHphRr2nMHd/iNRZFNLy
|
30
|
+
poe4IWfm9maFow==
|
31
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFRTCCBC2gAwIBAgIQVMhYFMdnctqh7wAXLx1HjzANBgkqhkiG9w0BAQsFADCBvDELMAkGA1UE
|
3
|
+
BhMCSlAxHTAbBgNVBAoTFFN5bWFudGVjIEphcGFuLCBJbmMuMS8wLQYDVQQLEyZGb3IgVGVzdCBQ
|
4
|
+
dXJwb3NlcyBPbmx5LiBObyBhc3N1cmFuY2VzLjE7MDkGA1UECxMyVGVybXMgb2YgdXNlIGF0IGh0
|
5
|
+
dHBzOi8vd3d3LnN5bWF1dGguY29tL2Nwcy90ZXN0Y2ExIDAeBgNVBAMTF1RyaWFsIFNTTCBKYXBh
|
6
|
+
biBDQSAtIEcyMB4XDTE1MTEyNDAwMDAwMFoXDTE1MTIwODIzNTk1OVowgdAxCzAJBgNVBAYTAkpQ
|
7
|
+
MQ4wDAYDVQQIDAVUb2t5bzETMBEGA1UEBwwKQ2hpeW9kYS1LdTEcMBoGA1UECgwTVHJlYXN1cmUg
|
8
|
+
RGF0YSwgSy5LLjEYMBYGA1UECwwPT3BlblNvdXJjZSBUZWFtMSwwKgYDVQQLDCNodHRwczovL3d3
|
9
|
+
dy5zeW1hbnRlYy5jb20vY3BzL3Rlc3RjYTEYMBYGA1UECwwPcjQ1MDExNTExNTE4MzgyMRwwGgYD
|
10
|
+
VQQDDBN0ZXN0aW5nLmZsdWVudGQub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
11
|
+
pz2pcz/cGXSvEYMCXZLyLj8BXQvPRPfQIITPzCWpr+jbr5oVI2D3FqysJLedLRZHWY3wAmp/AHqS
|
12
|
+
WIHfaGUr6TmLVaKM2weFfxjKtwHboVYSHrhL5bth6fm8gMzJrB6UbFyfUXRPlZw6z/WxcMezIoHp
|
13
|
+
6KSS8Ao9ixeql1AFKF4Yc8H6xUH0fLLNOBLP7UxIbg7xZNxqcjlULOgKcMojK2YioI98Yq9nJ5To
|
14
|
+
VopopIgtPEqXzN7W9EdrtaHelky9fsXLY3YnZ599ujEmHMMOzKbrTg7OMOyKwyhFdyERsGfNOHJ1
|
15
|
+
/WdgCZZXRlfc0s2SxEWttaJ8v9D18Va1w4cR8wIDAQABo4IBKzCCAScwCQYDVR0TBAIwADAOBgNV
|
16
|
+
HQ8BAf8EBAMCBaAwXgYDVR0fBFcwVTBToFGgT4ZNaHR0cDovL29uc2l0ZWNybC5zeW1hdXRoLmpw
|
17
|
+
L1N5bWFudGVjSmFwYW5JbmNUcmlhbFNTTEphcGFuQ0FzaGEyL0xhdGVzdENSTC5jcmwwHgYDVR0R
|
18
|
+
BBcwFYITdGVzdGluZy5mbHVlbnRkLm9yZzBKBgNVHSAEQzBBMD8GCmCGSAGG+EUBBxUwMTAvBggr
|
19
|
+
BgEFBQcCARYjaHR0cHM6Ly93d3cuc3ltYW50ZWMuY29tL2Nwcy90ZXN0Y2EwHQYDVR0lBBYwFAYI
|
20
|
+
KwYBBQUHAwEGCCsGAQUFBwMCMB8GA1UdIwQYMBaAFN0fIWQuRcLgQDlIvuPLhICXwySKMA0GCSqG
|
21
|
+
SIb3DQEBCwUAA4IBAQAU6rXvUcybWiyHfIGSlzy4MYO6HBeaF0tc2Pt0T4ByX+smXvKoVVgZbX8E
|
22
|
+
ahlZURfjSwZyXHCpMvcH17/IyW7c+HrX/jheMZ7iyYdvCQnZ2GrT8Zr3GRMcNYf8e8wnXwkBFAPj
|
23
|
+
yek5XHF5ShwLv64bOWDjAfdIAUCHEo1PpDz6JPQgJEb+SHqrxWx+O0zmELYUgSvRWKBuEC5TrxGU
|
24
|
+
HEib235vmz6/TgDUqfci7RPf16cwqVyEilzD5tLXTuMp4+tkPRjEA5d+EzH5O2Lx/ef5RTnYYMZ0
|
25
|
+
zsVBXssRtwcFKO2vStIGitRK9G9mbvzMNKuItaHcmw8GOhyXnMjTpl8u
|
26
|
+
-----END CERTIFICATE-----
|
27
|
+
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<source>
|
2
|
+
type forward
|
3
|
+
</source>
|
4
|
+
|
5
|
+
<match test.**>
|
6
|
+
type secure_forward
|
7
|
+
secure yes
|
8
|
+
self_hostname client
|
9
|
+
shared_key hogeposxxx0
|
10
|
+
keepalive 30
|
11
|
+
ca_cert_path /Users/tagomoris/github/fluent-plugin-secure-forward/test/tmp/cadir/ca_cert.pem
|
12
|
+
enable_strict_verification yes
|
13
|
+
<server>
|
14
|
+
proxy_uri http://foo.foo.local:3128
|
15
|
+
host localhost
|
16
|
+
</server>
|
17
|
+
# <server>
|
18
|
+
# proxy_uri http://bar.bar.local:3128
|
19
|
+
# host localhost
|
20
|
+
# standby yes
|
21
|
+
# </server>
|
22
|
+
# <server>
|
23
|
+
# host localhost
|
24
|
+
# </server>
|
25
|
+
flush_interval 1s
|
26
|
+
</match>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
Gem::Specification.new do |gem|
|
3
3
|
gem.name = "fluent-plugin-secure-forward"
|
4
|
-
gem.version = "0.3.
|
4
|
+
gem.version = "0.3.3"
|
5
5
|
gem.authors = ["TAGOMORI Satoshi"]
|
6
6
|
gem.email = ["tagomoris@gmail.com"]
|
7
7
|
gem.summary = %q{Fluentd input/output plugin to forward over SSL with authentications}
|
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.add_runtime_dependency "fluentd", ">= 0.10.46"
|
18
18
|
gem.add_runtime_dependency "fluent-mixin-config-placeholders", ">= 0.3.0"
|
19
19
|
gem.add_runtime_dependency "resolve-hostname"
|
20
|
+
gem.add_runtime_dependency "proxifier"
|
20
21
|
gem.add_development_dependency "test-unit"
|
21
22
|
gem.add_development_dependency "rake"
|
22
23
|
end
|
@@ -21,7 +21,7 @@ module Fluent
|
|
21
21
|
config_param :self_hostname, :string
|
22
22
|
include Fluent::Mixin::ConfigPlaceholders
|
23
23
|
|
24
|
-
config_param :shared_key, :string
|
24
|
+
config_param :shared_key, :string, secret: true
|
25
25
|
|
26
26
|
config_param :bind, :string, default: '0.0.0.0'
|
27
27
|
config_param :port, :integer, default: DEFAULT_SECURE_LISTEN_PORT
|
@@ -36,12 +36,12 @@ module Fluent
|
|
36
36
|
# Cert signed by public CA
|
37
37
|
config_param :cert_path, :string, default: nil
|
38
38
|
config_param :private_key_path, :string, default: nil
|
39
|
-
config_param :private_key_passphrase, :string, default: nil
|
39
|
+
config_param :private_key_passphrase, :string, default: nil, secret: true
|
40
40
|
|
41
41
|
# Cert automatically generated and signed by private CA
|
42
42
|
config_param :ca_cert_path, :string, default: nil
|
43
43
|
config_param :ca_private_key_path, :string, default: nil
|
44
|
-
config_param :ca_private_key_passphrase, :string, default: nil
|
44
|
+
config_param :ca_private_key_passphrase, :string, default: nil, secret: true
|
45
45
|
|
46
46
|
# Otherwise: Cert automatically generated and signed by itself (for without any verification)
|
47
47
|
|
@@ -59,13 +59,13 @@ module Fluent
|
|
59
59
|
|
60
60
|
config_section :user, param_name: :users do
|
61
61
|
config_param :username, :string
|
62
|
-
config_param :password, :string
|
62
|
+
config_param :password, :string, secret: true
|
63
63
|
end
|
64
64
|
|
65
65
|
config_section :client, param_name: :clients do
|
66
66
|
config_param :host, :string, default: nil
|
67
67
|
config_param :network, :string, default: nil
|
68
|
-
config_param :shared_key, :string, default: nil
|
68
|
+
config_param :shared_key, :string, default: nil, secret: true
|
69
69
|
config_param :users, :string, default: nil # comma separated username list
|
70
70
|
end
|
71
71
|
attr_reader :nodes
|
@@ -96,6 +96,10 @@ module Fluent
|
|
96
96
|
if @cert_path
|
97
97
|
raise Fluent::ConfigError, "private_key_path required" unless @private_key_path
|
98
98
|
raise Fluent::ConfigError, "private_key_passphrase required" unless @private_key_passphrase
|
99
|
+
certs = Fluent::SecureForward::CertUtil.certificates_from_file(@cert_path)
|
100
|
+
if certs.size < 1
|
101
|
+
raise Fluent::ConfigError, "no valid certificates in cert_path: #{@cert_path}"
|
102
|
+
end
|
99
103
|
else # @ca_cert_path
|
100
104
|
raise Fluent::ConfigError, "ca_private_key_path required" unless @ca_private_key_path
|
101
105
|
raise Fluent::ConfigError, "ca_private_key_passphrase required" unless @ca_private_key_passphrase
|
@@ -171,9 +175,12 @@ module Fluent
|
|
171
175
|
def certificate
|
172
176
|
return @cert, @key if @cert && @key
|
173
177
|
|
178
|
+
@client_ca = nil
|
174
179
|
if @cert_path
|
175
180
|
@key = OpenSSL::PKey::RSA.new(File.read(@private_key_path), @private_key_passphrase)
|
176
|
-
|
181
|
+
certs = Fluent::SecureForward::CertUtil.certificates_from_file(@cert_path)
|
182
|
+
@cert = certs.shift
|
183
|
+
@client_ca = certs
|
177
184
|
elsif @ca_cert_path
|
178
185
|
opts = {
|
179
186
|
ca_cert_path: @ca_cert_path,
|
@@ -220,6 +227,9 @@ module Fluent
|
|
220
227
|
|
221
228
|
ctx.cert = cert
|
222
229
|
ctx.key = key
|
230
|
+
if @client_ca
|
231
|
+
ctx.extra_chain_cert = @client_ca
|
232
|
+
end
|
223
233
|
|
224
234
|
log.trace "start to listen", bind: @bind, port: @port
|
225
235
|
server = TCPServer.new(@bind, @port)
|
@@ -20,7 +20,7 @@ module Fluent
|
|
20
20
|
config_param :self_hostname, :string
|
21
21
|
include Fluent::Mixin::ConfigPlaceholders
|
22
22
|
|
23
|
-
config_param :shared_key, :string
|
23
|
+
config_param :shared_key, :string, secret: true
|
24
24
|
|
25
25
|
config_param :keepalive, :time, default: nil # nil/0 means disable keepalive expiration
|
26
26
|
|
@@ -41,16 +41,19 @@ module Fluent
|
|
41
41
|
config_param :reconnect_interval, :time, default: 5
|
42
42
|
config_param :established_timeout, :time, default: 10
|
43
43
|
|
44
|
+
config_param :proxy_uri, :string, default: nil
|
45
|
+
|
44
46
|
attr_reader :read_interval, :socket_interval
|
45
47
|
|
46
48
|
config_section :server, param_name: :servers do
|
47
49
|
config_param :host, :string
|
48
50
|
config_param :hostlabel, :string, default: nil
|
49
51
|
config_param :port, :integer, default: DEFAULT_SECURE_CONNECT_PORT
|
50
|
-
config_param :shared_key, :string, default: nil
|
52
|
+
config_param :shared_key, :string, default: nil, secret: true
|
51
53
|
config_param :username, :string, default: ''
|
52
|
-
config_param :password, :string, default: ''
|
54
|
+
config_param :password, :string, default: '', secret: true
|
53
55
|
config_param :standby, :bool, default: false
|
56
|
+
config_param :proxy_uri, :string, default: nil
|
54
57
|
end
|
55
58
|
attr_reader :nodes
|
56
59
|
|
@@ -4,6 +4,8 @@
|
|
4
4
|
# require 'digest'
|
5
5
|
# require 'resolve/hostname'
|
6
6
|
|
7
|
+
require 'proxifier'
|
8
|
+
|
7
9
|
require_relative 'openssl_util'
|
8
10
|
|
9
11
|
class Fluent::SecureForwardOutput::Node
|
@@ -27,6 +29,8 @@ class Fluent::SecureForwardOutput::Node
|
|
27
29
|
@password = conf.password
|
28
30
|
@standby = conf.standby
|
29
31
|
|
32
|
+
@proxy_uri = conf.proxy_uri
|
33
|
+
|
30
34
|
@keepalive = sender.keepalive
|
31
35
|
|
32
36
|
@authentication = nil
|
@@ -53,7 +57,7 @@ class Fluent::SecureForwardOutput::Node
|
|
53
57
|
def dup
|
54
58
|
renewed = self.class.new(
|
55
59
|
@sender,
|
56
|
-
Fluent::Config::Section.new({host: @host, port: @port, hostlabel: @hostlabel, username: @username, password: @password, shared_key: @shared_key, standby: @standby})
|
60
|
+
Fluent::Config::Section.new({host: @host, port: @port, hostlabel: @hostlabel, username: @username, password: @password, shared_key: @shared_key, standby: @standby, proxy_uri: @proxy_uri})
|
57
61
|
)
|
58
62
|
renewed
|
59
63
|
end
|
@@ -217,8 +221,14 @@ class Fluent::SecureForwardOutput::Node
|
|
217
221
|
|
218
222
|
addr = @sender.hostname_resolver.getaddress(@host)
|
219
223
|
log.debug "create tcp socket to node", host: @host, address: addr, port: @port
|
224
|
+
|
220
225
|
begin
|
221
|
-
|
226
|
+
if @proxy_uri.nil? then
|
227
|
+
sock = TCPSocket.new(addr, @port)
|
228
|
+
else
|
229
|
+
proxy = Proxifier::Proxy(@proxy_uri)
|
230
|
+
sock = proxy.open(addr, @port)
|
231
|
+
end
|
222
232
|
rescue => e
|
223
233
|
log.warn "failed to connect for secure-forward", error_class: e.class, error: e, host: @host, address: addr, port: @port
|
224
234
|
@state = :failed
|
@@ -3,6 +3,14 @@ require 'openssl'
|
|
3
3
|
module Fluent
|
4
4
|
module SecureForward
|
5
5
|
module CertUtil
|
6
|
+
def self.certificates_from_file(path)
|
7
|
+
data = File.read(path)
|
8
|
+
pattern = Regexp.compile('-+BEGIN CERTIFICATE-+\n(?:[^-]*\n)+-+END CERTIFICATE-+\n', Regexp::MULTILINE)
|
9
|
+
list = []
|
10
|
+
data.scan(pattern){|match| list << OpenSSL::X509::Certificate.new(match)}
|
11
|
+
list
|
12
|
+
end
|
13
|
+
|
6
14
|
def self.generate_ca_pair(opts={})
|
7
15
|
key = OpenSSL::PKey::RSA.generate(opts[:private_key_length])
|
8
16
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-secure-forward
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TAGOMORI Satoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: proxifier
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: test-unit
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -97,11 +111,19 @@ files:
|
|
97
111
|
- bin/secure-forward-ca-generate
|
98
112
|
- example/auth_client.conf
|
99
113
|
- example/auth_server.conf
|
114
|
+
- example/cert_c.conf
|
100
115
|
- example/cert_client.conf
|
116
|
+
- example/cert_i.conf
|
101
117
|
- example/cert_server.conf
|
118
|
+
- example/certs/cert-with-intermediate.pem
|
102
119
|
- example/certs/cert.pem
|
120
|
+
- example/certs/key-for-with-intermediate.key
|
103
121
|
- example/certs/key.pem
|
122
|
+
- example/certs/root.pem
|
123
|
+
- example/certs/testing-intermediate.pem
|
124
|
+
- example/certs/testing-server.pem
|
104
125
|
- example/client.conf
|
126
|
+
- example/client_proxy.conf
|
105
127
|
- example/insecure_client.conf
|
106
128
|
- example/insecure_server.conf
|
107
129
|
- example/server.conf
|
@@ -131,9 +153,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
153
|
version: '0'
|
132
154
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
155
|
requirements:
|
134
|
-
- - "
|
156
|
+
- - ">="
|
135
157
|
- !ruby/object:Gem::Version
|
136
|
-
version:
|
158
|
+
version: '0'
|
137
159
|
requirements: []
|
138
160
|
rubyforge_project:
|
139
161
|
rubygems_version: 2.4.5
|
@@ -145,3 +167,4 @@ test_files:
|
|
145
167
|
- test/plugin/test_in_secure_forward.rb
|
146
168
|
- test/plugin/test_input_session.rb
|
147
169
|
- test/plugin/test_out_secure_forward.rb
|
170
|
+
has_rdoc:
|