Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

SSL/TLS კონფიგურაცია

PRX-WAF Let's Encrypt-ისგან (ACME v2) TLS სერთიფიკატების ავტომატურ მოპოვება-განახლებს, ხელით სერთიფიკატ-კონფიგურაციასა და HTTP/3-ს QUIC-ის გავლით მხარს უჭერს. ეს გვერდი HTTPS-თან დაკავშირებულ ყველა კონფიგურაციას მოიცავს.

ავტომატური სერთიფიკატები (Let's Encrypt)

PRX-WAF instant-acme ბიბლიოთეკას იყენებს TLS სერთიფიკატების ავტომატურად Let's Encrypt-ისგან მოსაპოვებლად და განახლებისთვის. SSL-ჩართვით ჰოსტის კონფიგურაციისას PRX-WAF:

  1. ACME HTTP-01 გამოწვევებზე 80-ე პორტზე პასუხს სცემს
  2. Let's Encrypt-ისგან სერთიფიკატს მოიპოვებს
  3. სერთიფიკატს მონაცემთა ბაზაში ინახავს
  4. ვადის გასვლამდე ავტომატურად განაახლებს

TIP

ავტომატური სერთიფიკატების მუშაობისთვის ACME HTTP-01 გამოწვევ-ვალიდაციისთვის 80-ე პორტი ინტერნეტიდან ხელმისაწვდომი უნდა იყოს.

ხელით სერთიფიკატები

ავტომატური ACME შეუფერებელი გარემოებისთვის სერთიფიკატები ხელით კონფიგურირდება:

toml
[http3]
cert_pem = "/etc/prx-waf/tls/cert.pem"
key_pem  = "/etc/prx-waf/tls/key.pem"

ადმინ UI-ის გავლით სერთიფიკატების ატვირთვაც შეიძლება:

  1. გადადი SSL Certificates-ზე sidebar-ში
  2. დააჭირე Upload Certificate
  3. სერთიფიკატ-ჯაჭვი (PEM) და პირადი გასაღები (PEM) მიაწოდე
  4. სერთიფიკატი ჰოსტს მიაბი

ან API-ის გავლით:

bash
curl -X POST http://localhost:9527/api/certificates \
  -H "Authorization: Bearer $TOKEN" \
  -F "cert=@/path/to/cert.pem" \
  -F "key=@/path/to/key.pem" \
  -F "host=example.com"

TLS Listener

PRX-WAF HTTPS ტრაფიკს კონფიგურირებულ TLS მისამართზე ისმენს:

toml
[proxy]
listen_addr     = "0.0.0.0:80"      # HTTP
listen_addr_tls = "0.0.0.0:443"     # HTTPS

HTTP/3 (QUIC)

PRX-WAF HTTP/3-ს Quinn QUIC ბიბლიოთეკის გავლით მხარს უჭერს. კონფიგურაციაში ჩართვა:

toml
[http3]
enabled     = true
listen_addr = "0.0.0.0:443"
cert_pem    = "/etc/prx-waf/tls/cert.pem"
key_pem     = "/etc/prx-waf/tls/key.pem"

WARNING

HTTP/3-ს სწორი TLS სერთიფიკატი სჭირდება. HTTP/3-ის ჩართვისას cert-ისა და key-ის გზები მითითებული უნდა იყოს. Let's Encrypt-ის ავტომატური სერთიფიკატები HTTP/3-ისთვისაც მხარდაჭერილია.

HTTP/3 HTTPS-ის (443) ერთ და იმავე პორტზე UDP-ის გავლით სრულდება. QUIC-ის მხარდამჭერი კლიენტები ავტომატურად upgrade ხდება, სხვები კი TCP-ის გავლით HTTP/2 ან HTTP/1.1-ს უბრუნდება.

HTTPS გადამისამართება

80-ე (HTTP) და 443-ე (HTTPS) პორტებიანი ჰოსტების კონფიგურაციით HTTP ტრაფიკი HTTPS-ზე გადამისამართება. SSL-კონფიგურირებული ჰოსტის HTTP მოთხოვნებს PRX-WAF ავტომატურად HTTPS-ის ეკვივალენტებზე გადამისამართებს.

სერთიფიკატ-საცავი

ყველა სერთიფიკატი (ავტომატური და ხელით) PostgreSQL მონაცემთა ბაზაში ინახება. certificates ცხრილი (მიგრაცია 0003) ინახავს:

  • სერთიფიკატ-ჯაჭვს (PEM)
  • პირად გასაღებს (AES-256-GCM-ით დაშიფრული)
  • დომენ-სახელს
  • ვადის გასვლის თარიღს
  • ACME ანგარიშ-ინფორმაციას (ავტო-განახლებისთვის)

INFO

პირადი გასაღებები AES-256-GCM-ით დასვენებისას დაშიფრულია. დაშიფვრის გასაღები კონფიგურაციიდან გამოიყვანება. მონაცემთა ბაზაში დაუშიფვრელი პირადი გასაღებების შენახვა არ შეიძლება.

Docker HTTPS-ით

Docker-ში გაშვებისას TLS ტრაფიკისთვის 443-ე პორტის მეპირება:

yaml
# docker-compose.yml
services:
  prx-waf:
    ports:
      - "80:80"
      - "443:443"
      - "9527:9527"

HTTP/3-ისთვის UDP პორტის მეპირებაც:

yaml
    ports:
      - "80:80"
      - "443:443/tcp"
      - "443:443/udp"  # HTTP/3 QUIC
      - "9527:9527"

საუკეთესო პრაქტიკები

  1. წარმოებაში ყოველთვის HTTPS-ის გამოყენება. HTTP-ი მხოლოდ ACME გამოწვევებს უნდა ემსახურებოდეს და HTTPS-ზე გადამისამართებდეს.

  2. HTTP/3-ის ჩართვა მხარდამჭერი კლიენტებისთვის. QUIC უფრო სწრაფ კავშირ-დამყარებასა და გაუმჯობესებულ შესრულებას გვაძლევს დანაკარგ-ქსელებზე.

  3. ავტომატური სერთიფიკატების გამოყენება შესაძლებლობის შემთხვევაში. Let's Encrypt-ის სერთიფიკატები უფასოა, ყველა ბრაუზერს ენდობა და PRX-WAF ავტომატურად განაახლებს.

  4. ადმინ API-ზე წვდომის შეზღუდვა. ადმინ API მხოლოდ სანდო ქსელებიდან უნდა იყოს ხელმისაწვდომი:

toml
[security]
admin_ip_allowlist = ["10.0.0.0/8", "172.16.0.0/12"]

შემდეგი ნაბიჯები

Released under the Apache-2.0 License.