647 Commits

Author SHA1 Message Date
Derek Collison
4df6c9aeb8 [ADDED] TLS: Handshake First for client connections (#4642)
A new option instructs the server to perform the TLS handshake first,
that is prior to sending the INFO protocol to the client.

Only clients that implement equivalent option would be able to connect
if the server runs with this option enabled.

The configuration would look something like this:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: true
}
```

The same option can be set to "auto" or a Go time duration to fallback
to the old behavior. This is intended for deployments where it is known
that not all clients have been upgraded to a client library providing
the TLS handshake first option.

After the delay has elapsed without receiving the TLS handshake from the
client, the server reverts to sending the INFO protocol so that older
clients can connect. Clients that do connect with the "TLS first" option
will be marked as such in the monitoring's Connz page/result. It will
allow the administrator to keep track of applications still needing to
upgrade.

The configuration would be similar to:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: auto
}
```
With the above value, the fallback delay used by the server is 50ms.

The duration can be explcitly set, say 300 milliseconds:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: "300ms"
}
```

It is understood that any configuration other that "true" will result in
the server sending the INFO protocol after the elapsed amount of time
without the client initiating the TLS handshake. Therefore, for
administrators that do not want any data transmitted in plain text, the
value must be set to "true" only. It will require applications to be
updated to a library that provides the option, which may or may not be
readily available.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2023-10-16 07:49:08 -07:00
Waldemar Quevedo
996bf2bf1c Release v2.10.3
Signed-off-by: Waldemar Quevedo <wally@nats.io>
2023-10-12 13:46:11 -07:00
Derek Collison
e2414e6a04 Bump to 2.10.3-RC.3
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-12 13:12:19 -07:00
Derek Collison
ea70590aa2 Bump to 2.10.3-RC.2
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-12 12:35:54 -07:00
Derek Collison
38794e5af9 Bump to 2.10.3-RC.1
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-11 08:26:09 -07:00
Ivan Kozlovic
ce96de2ed5 [ADDED] TLS: Handshake First for client connections
A new option instructs the server to perform the TLS handshake first,
that is prior to sending the INFO protocol to the client.

Only clients that implement equivalent option would be able to
connect if the server runs with this option enabled.

The configuration would look something like this:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: true
}
```

The same option can be set to "auto" or a Go time duration to fallback
to the old behavior. This is intended for deployments where it is known
that not all clients have been upgraded to a client library providing
the TLS handshake first option.

After the delay has elapsed without receiving the TLS handshake from
the client, the server reverts to sending the INFO protocol so that
older clients can connect. Clients that do connect with the "TLS first"
option will be marked as such in the monitoring's Connz page/result.
It will allow the administrator to keep track of applications still
needing to upgrade.

The configuration would be similar to:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: auto
}
```
With the above value, the fallback delay used by the server is 50ms.

The duration can be explcitly set, say 300 milliseconds:
```
...
tls {
    cert_file: ...
    key_file: ...

    handshake_first: "300ms"
}
```

It is understood that any configuration other that "true" will result
in the server sending the INFO protocol after the elapsed amount of
time without the client initiating the TLS handshake. Therefore, for
administrators that do not want any data transmitted in plain text,
the value must be set to "true" only. It will require applications
to be updated to a library that provides the option, which may or
may not be readily available.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2023-10-10 09:46:01 -06:00
Byron Ruth
4ab65b1871 Bump v2.10.3
Signed-off-by: Byron Ruth <byron@nats.io>
2023-10-06 16:39:45 -04:00
Byron Ruth
f8c9d8e686 Release v2.10.2
Signed-off-by: Byron Ruth <byron@nats.io>
2023-10-06 15:23:06 -04:00
Derek Collison
0c3609ed2a Bump to 2.10.2-RC.15
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-06 09:58:55 -07:00
Derek Collison
dbe700d192 Bump to 2.10.0-RC.14
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-03 16:11:30 -07:00
Derek Collison
195227edfd Bump to 2.10.0-RC.12
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-02 09:53:30 -07:00
Derek Collison
4165f869d2 Bump to 2.10.2-RC.11
Signed-off-by: Derek Collison <derek@nats.io>
2023-10-01 08:18:28 -07:00
Derek Collison
720ac605a2 Bump to 2.10.0-RC.10
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-28 14:43:08 -07:00
Derek Collison
9c96576066 Bump to 2.10.2-RC.9
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-27 20:49:55 -07:00
Derek Collison
46c417f4c9 Bump to 2.10.0-RC.8
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-27 12:08:45 -07:00
Derek Collison
c583f7fdc7 Bump to 2.10.2-RC.7
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-25 21:05:56 -07:00
Derek Collison
83cc80ab74 Bump to 2.10.2-RC.6
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-25 13:33:03 -07:00
Derek Collison
54d4640e8b Bump to 2.10.2-RC.5
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-25 12:32:51 -07:00
Derek Collison
e594da52e4 Bump to 2.10.2-RC.4
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-25 09:21:12 -07:00
Derek Collison
f3411f623d Bump to 2.10.2-RC.3
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-24 16:03:49 -07:00
Derek Collison
bbe172df8d Bump to 2.10.2-RC.2
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-22 14:34:13 -07:00
Derek Collison
ece431fc74 Bump to 2.10.2-RC.1
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-22 10:26:50 -07:00
Byron Ruth
b36644b229 Bump v2.10.2
Signed-off-by: Byron Ruth <byron@nats.io>
2023-09-20 21:06:42 -04:00
Byron Ruth
4a1d399a21 Release v2.10.1
Signed-off-by: Byron Ruth <byron@nats.io>
2023-09-20 12:54:02 -04:00
Byron Ruth
6ba8272034 Bump 2.10.1
Signed-off-by: Byron Ruth <byron@nats.io>
2023-09-19 16:04:35 -04:00
Byron Ruth
f677536a88 Relase v2.10.0
Signed-off-by: Byron Ruth <byron@nats.io>
2023-09-19 15:26:16 -04:00
Derek Collison
3dc0627811 Bump to 2.10.0-RC.6
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-18 13:53:25 -07:00
Derek Collison
8f0e65fe0d Bump to 2.10.0-RC.5
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-17 21:38:34 -07:00
Derek Collison
0af378cf85 Bump to 2.10.0-RC.4
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-15 08:54:27 -07:00
Waldemar Quevedo
76cbef79cc Bump to 2.10.0-RC.3
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2023-09-14 12:11:09 -07:00
Neil Twigg
f38faafbc9 Bump to 2.10.0-RC.2
Signed-off-by: Neil Twigg <neil@nats.io>
2023-09-14 16:35:36 +01:00
Neil Twigg
505190266a Bump to 2.10.0-RC.1
Signed-off-by: Neil Twigg <neil@nats.io>
2023-09-13 17:22:30 +01:00
Derek Collison
3407eda769 Bump to 2.10.0-beta.56
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-12 15:52:00 -07:00
Derek Collison
002446a51d Bump to 2.10.0-beta.55
Signed-off-by: Derek Collison <derek@nats.io>
2023-09-04 11:34:12 -07:00
Derek Collison
b1a59a35e2 Bump to 2.10.0-beta.54
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-31 15:52:58 -07:00
Derek Collison
a04a3154af Bump to 2.10.0-beta.52
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-22 20:05:45 -07:00
Derek Collison
8544cb7adf Merge branch 'main' into dev
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-22 20:04:59 -07:00
Waldemar Quevedo
2b2fbf7359 Bump to v2.9.22-beta.1
Signed-off-by: Waldemar Quevedo <wally@nats.io>
2023-08-22 13:37:12 -07:00
Derek Collison
84536761a9 Bump to 2.9.22-beta
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-22 08:27:44 -07:00
Derek Collison
e088583cd3 Bump to 2.10.0-beta.50
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-21 15:59:53 -07:00
Derek Collison
3c57adcfe5 Bump to 2.10.0-beta.49
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-04 10:16:09 -07:00
Byron Ruth
c1d1f11a18 Release v2.9.21
Signed-off-by: Byron Ruth <byron@nats.io>
2023-08-04 10:11:06 -04:00
Derek Collison
8c6055babc Bump to 2.9.21-RC.6
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-03 13:25:14 -07:00
Derek Collison
d522f4656c Bump to 2.9.21-RC.5
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-03 11:17:51 -07:00
Derek Collison
aa6ac2d665 Bump to 2.9.21-RC.4
Signed-off-by: Derek Collison <derek@nats.io>
2023-08-01 21:48:02 -07:00
Derek Collison
3b2231a9d5 Bump to 2.10.0-beta.48
Signed-off-by: Derek Collison <derek@nats.io>
2023-07-30 13:28:19 -07:00
Derek Collison
dfb7fac861 Merge branch 'main' into dev
Signed-off-by: Derek Collison <derek@nats.io>
2023-07-28 13:56:35 -07:00
Derek Collison
039f63e260 Bump to 2.9.21-RC.3
Signed-off-by: Derek Collison <derek@nats.io>
2023-07-28 13:41:30 -07:00
Derek Collison
7feebb4f64 Bump to 2.9.21-RC.2
Signed-off-by: Derek Collison <derek@nats.io>
2023-07-28 09:55:45 -07:00
Derek Collison
ff33dd2776 Bump to 2.10.0-beta.46
Signed-off-by: Derek Collison <derek@nats.io>
2023-07-25 11:49:17 -07:00