22# Transport Security
33
44Fluent 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
66to TLS for both implementations.
77
88Both input and output plugins that perform Network I/O can optionally enable TLS and
99configure the behavior. The following table describes the properties available:
1010
1111| Property | Description | Default |
1212| :--- | :--- | :--- |
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
2525private key.
2626
2727The 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:
7777- [ Syslog] ( ../pipeline/inputs/syslog.md )
7878- [ TCP] ( ../pipeline/inputs/tcp.md )
7979
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
8181restricted configuration:
8282
8383- [ Kubernetes Filter] ( ../pipeline/filters/kubernetes.md )
8484
8585## Example: enable TLS on HTTP input
8686
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 :
8989
9090``` bash
9191./bin/fluent-bit -i http \
@@ -99,8 +99,7 @@ be done using the following command:
9999```
100100
101101In 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.
104103
105104The same behavior can be accomplished using a configuration file:
106105
@@ -120,8 +119,8 @@ The same behavior can be accomplished using a configuration file:
120119
121120## Example: enable TLS on HTTP output
122121
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 :
125124
126125``` bash
127126fluent-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 \
131130```
132131
133132In 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 .
135134
136135The same behavior can be accomplished using a configuration file:
137136
@@ -154,10 +153,10 @@ The same behavior can be accomplished using a configuration file:
154153
155154### Generate a self signed certificates for testing purposes
156155
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.
161160
162161``` bash
163162openssl req -x509 \
0 commit comments