TlsServer
TlsServer سمت server پروتکل TLS در WaterWall است و با OpenSSL کار میکند. این نود handshake واقعی TLS انجام میدهد، TLS recordهای ورودی را به cleartext برای نود بعدی تبدیل میکند و payload برگشتی را دوباره داخل TLS record میفرستد.
جایگاه رایج
TcpListener -> TlsServer -> HttpServer -> SomeService
TcpListener -> TlsServer -> TcpConnector
اگر کلاینت بیرونی با HTTPS/TLS به WaterWall وصل میشود، معمولا TlsServer بعد از TcpListener قرار میگیرد.
نمونه تنظیم
{
"name": "tls-server",
"type": "TlsServer",
"settings": {
"cert-file": "/etc/waterwall/fullchain.pem",
"key-file": "/etc/waterwall/privkey.pem",
"min-version": "TLSv1.2",
"max-version": "TLSv1.3",
"session-cache": "none",
"session-tickets": true
},
"next": "http-or-service"
}
تنظیمات رایج
| گزینه | توضیح |
|---|---|
| گزینه | اجباری |
| --- | --- |
cert-file | بله |
key-file | بله |
sni | خیر |
alpns | خیر |
min-version | خیر |
max-version | خیر |
ciphers | خیر |
prefer-server-ciphers | خیر |
session-timeout | خیر |
session-cache | خیر |
session-cache-size | خیر |
session-tickets | خیر |
نکتهها
TlsServerدرباره HTTP چیزی نمیداند؛ اگر HTTP لازم داریدHttpServerرا بعد از آن بگذارید.sharedبرایsession-cacheدر پیادهسازی فعلی پشتیبانی نمیشود.- اگر بعد از TLS میخواهید HTTP را parse کنید،
HttpServerرا بعد از این نود بگذارید. - این نود با
TlsClientواتروال هم میتواند جفت شود، اما فقط برای ارتباط WaterWall نیست؛ میتواند TLS واقعی از کلاینتهای بیرونی را هم terminate کند.