2
2
# Transport Security
3
3
4
4
Fluent Bit provides integrated support for Transport Layer Security (TLS) and
5
- it predecessors Secure Sockets Layer (SSL) respectively . This section refers only
5
+ its predecessor Secure Sockets Layer (SSL). This section refers only
6
6
to TLS for both implementations.
7
7
8
8
Both input and output plugins that perform Network I/O can optionally enable TLS and
9
9
configure the behavior. The following table describes the properties available:
10
10
11
11
| Property | Description | Default |
12
12
| :--- | :--- | :--- |
13
- | ` tls ` | Enable or disable TLS support | ` Off ` |
14
- | ` tls.verify ` | Force certificate validation | ` On ` |
15
- | ` tls.verify_hostname ` | Force TLS verification of host names | ` Off ` |
16
- | ` tls.debug ` | Set TLS debug verbosity level. Accepted values: ` 0 ` (No debug), ` 1 ` (Error), ` 2 ` (State change), ` 3 ` (Informational) and ` 4 ` (Verbose) | ` 1 ` |
17
- | ` tls.ca_file ` | Absolute path to CA certificate file | _ none_ |
18
- | ` tls.ca_path ` | Absolute path to scan for certificate files | _ none_ |
19
- | ` tls.crt_file ` | Absolute path to Certificate file | _ none_ |
20
- | ` tls.key_file ` | Absolute path to private Key file | _ none_ |
21
- | ` tls.key_passwd ` | Optional password for ` tls.key_file ` file | _ none_ |
22
- | ` tls.vhost ` | Hostname to be used for TLS SNI extension | _ none_ |
23
-
24
- To use TLS on input plugins, the user is expected to provide both a certificate and
13
+ | ` tls ` | Enable or disable TLS support. | ` Off ` |
14
+ | ` tls.verify ` | Force certificate validation. | ` On ` |
15
+ | ` tls.verify_hostname ` | Force TLS verification of host names. | ` Off ` |
16
+ | ` tls.debug ` | Set TLS debug verbosity level. Accepted values: ` 0 ` (No debug), ` 1 ` (Error), ` 2 ` (State change), ` 3 ` (Informational) and ` 4 ` . (Verbose) | ` 1 ` |
17
+ | ` tls.ca_file ` | Absolute path to CA certificate file. | _ none_ |
18
+ | ` tls.ca_path ` | Absolute path to scan for certificate files. | _ none_ |
19
+ | ` tls.crt_file ` | Absolute path to Certificate file. | _ none_ |
20
+ | ` tls.key_file ` | Absolute path to private Key file. | _ none_ |
21
+ | ` tls.key_passwd ` | Optional password for ` tls.key_file ` file. | _ none_ |
22
+ | ` tls.vhost ` | Hostname to be used for TLS SNI extension. | _ none_ |
23
+
24
+ To use TLS on input plugins, you must provide both a certificate and a
25
25
private key.
26
26
27
27
The listed properties can be enabled in the configuration file, specifically in each
@@ -77,15 +77,15 @@ The following **input** plugins can take advantage of the TLS feature:
77
77
- [ Syslog] ( ../pipeline/inputs/syslog.md )
78
78
- [ TCP] ( ../pipeline/inputs/tcp.md )
79
79
80
- In addition, other plugins implement a sub-set of TLS support, with
80
+ In addition, other plugins implement a subset of TLS support, with
81
81
restricted configuration:
82
82
83
83
- [ Kubernetes Filter] ( ../pipeline/filters/kubernetes.md )
84
84
85
85
## Example: enable TLS on HTTP input
86
86
87
- By default HTTP input plugin uses plain TCP, enabling TLS from the command line can
88
- be done using the following command :
87
+ By default, the HTTP input plugin uses plain TCP. Run the following command to enable
88
+ TLS :
89
89
90
90
``` bash
91
91
./bin/fluent-bit -i http \
@@ -99,8 +99,7 @@ be done using the following command:
99
99
```
100
100
101
101
In the previous command, the two properties ` tls ` and ` tls.verify ` are set
102
- for demonstration purposes. It's strongly suggested to always keep verification
103
- on.
102
+ for demonstration purposes. Always enable verification in production environments.
104
103
105
104
The same behavior can be accomplished using a configuration file:
106
105
@@ -120,8 +119,8 @@ The same behavior can be accomplished using a configuration file:
120
119
121
120
## Example: enable TLS on HTTP output
122
121
123
- By default HTTP output plugin uses plain TCP, enabling TLS from the command line can
124
- be done with :
122
+ By default, the HTTP output plugin uses plain TCP. Run the following command to enable
123
+ TLS :
125
124
126
125
``` bash
127
126
fluent-bit -i cpu -t cpu -o http://192.168.2.3:80/something \
@@ -131,7 +130,7 @@ fluent-bit -i cpu -t cpu -o http://192.168.2.3:80/something \
131
130
```
132
131
133
132
In the previous command, the properties ` tls ` and ` tls.verify ` are enabled
134
- for demonstration purposes. Verification should always be on .
133
+ for demonstration purposes. Always enable verification in production environments .
135
134
136
135
The same behavior can be accomplished using a configuration file:
137
136
@@ -154,10 +153,10 @@ The same behavior can be accomplished using a configuration file:
154
153
155
154
### Generate a self signed certificates for testing purposes
156
155
157
- This will generate a 4096 bit RSA key pair and a certificate that's signed using
158
- ` SHA-256 ` with the expiration date set to 30 days in the future. In this example,
159
- ` test.host.net ` set as common name. This example opts out of ` DES ` , so the private
160
- key will be stored in plain text.
156
+ The following command generates a 4096 bit RSA key pair and a certificate that's signed
157
+ using ` SHA-256 ` with the expiration date set to 30 days in the future. In this example,
158
+ ` test.host.net ` is set as the common name. This example opts out of ` DES ` , so the
159
+ private key is stored in plain text.
161
160
162
161
``` bash
163
162
openssl req -x509 \
0 commit comments