להלן רשימת הקבצים הנדרשים להימצא בתיקיית השרת HTTP ותפקידם במערך:
שם קובץ הסבר סוג התקנה
SYE_Http_Server.exe
יישום השרת המרכזי המבצע את ניהול התקשורת והגשת התוכן. חבילת התקנה
Appl_Self_Upgrade.exe
מנגנון העדכון האוטומטי. משמש גם לביצוע אתחול (Restart) מסודר של השרת מרחוק. חבילת התקנה
ChilkatDelphi64.dll
ספריית הליבה לניהול שקעי תקשורת (Sockets) והצפנה. חייבת להימצא בתיקיית השרת בכל סוג התקנה. חבילת התקנה
tls_root.pem
קובץ הכולל את המפתח הפרטי ושרשרת התעודות של הדומיין.
נדרש רק כאשר השרת מבצע את ההצפנה בעצמו (עבור דומיין יחיד).
ידנית ע"י מנהל המערכת
SYE_Http_Server.ini
קובץ הגדרות התשתית (פורטים, כתובות IP וניהול). מתעדכן אוטומטית דרך יישום הניהול. נוצר ע"י יישום הניהול
Web_Hosts.data
מאגר נתוני המתחמים (Hosts) והגדרות הניתוב שלהם. מנוהל דרך טבלת ה-Websites ביישום הניהול. נוצר ע"י יישום הניהול
Usage.data
קובץ נתוני סטטיסטיקה ותעבורה. נשמר בזמן אמת ונטען על ידי יישום הניהול להצגת ביצועים. נוצר בזמן ריצה

הגדרת תקשורת מוצפנת HTTPS

השרת תומך בפענוח הצפנה מובנה כאשר מוגדר לו שם מתחם (Domain) יחיד, לדוגמה:
*.my-domain.com
אפשר להגדיר תתי מתחמים ללא הגבלה.
במצב זה עליך ליישם את הקובץ tls_root.pem בתיקיית השרת. הקובץ חייב להכיל את הרכיבים בפורמט Base64 (ללא סיסמה על המפתח הפרטי) בסדר הבא:

1. מפתח פרטי (Private Key) - חייב להופיע ראשון בקובץ!

2. תעודה ציבורית של הדומיין (Certificate)

3. שרשרת תעודות ספק (Intermediate)

4. תעודת בסיס (Root CA) אינה חובה אבל מאיצה את תגובת המערכת.

שים לב: אם השרת מזהה את הקובץ בטעינה, הוא יפתח להאזנה את הפורט שהוגדר בשדה
[Http TLS port]
במצב מוצפן.

עבודה עם מספר דומיינים (SNI) באמצעות Stunnel

במידה והשרת נדרש לתת מענה למספר שמות מתחם שונים תחת כתובת IP אחת (SNI), יש להשתמש בתוכנת עזר חיצונית לפענוח ההצפנה, כגון Stunnel.
במצב זה, ה-Stunnel מקבל את התקשורת המוצפנת, מפענח אותה ומעביר אותה לשרת ה-HTTP כ-Proxy. אותו פתרון ניתן להשיג עם Nginx או מערכות הגנה כגון F5.

הורדה והתקנת תוכנת STunnel

התוכנן הבא נכתב על פי ניסיוננו האישי והוא בגדר המלצה בלבד.
בכל שאלה או בעיה, יש לפנות למדריך תוכנת Stunnel ישירות, או אל עמוד ה- How TO של התוכנה.

  • הורד את תוכנת Stunnel מאתר הקהילה: https://www.stunnel.org/downloads.html
    וודא שהינך מוריד את הגרסה היציבה האחרונה עבור מערכת ההפעלה שברשותך. הרץ את קובץ ההתקנה.
  • במהלך ההתקנה יופיע מסך COMMAND LINE אשר יאפשר לך לייצר חתימה אישית, שתשמש את התוכנה.
    שלב זה הוא שלב חשוב אם אין ברשותך חתימה דיגיטאלית (תעודת SSL) למחשב המשמש כשרת, אחרת באפשרותך לדלג עליו.
    להלן שמות השדות שעליך למלא בעת הכנת תעודה עצמית לשרת:
    נתון מבוקש משמעותו
    Country Name קוד קידומת המדינה בשני אותיות גדולות (לפי ISO 3166-2)
    State or Province Name שם המדינה המלא בא פועל העסק
    Locality Name שם העיר בה ממוקם העסק
    Organization Name שם החברה/העסק (לעוסק: שם הבעלים)
    Organization Unit Name שם המחלקה בחברה או כינוי החברה (לא חובה למילוי)
    Common Name שם הדומיין / סאב דומיין / כתובת IP (בחר רק אחד מהאפשרויות)
  • לאחר התקנה וודא שתוכנת ה- Stunnel תעלה אוטומטית עם הפעלת מערכת ההפעלה.
    באפשרותך להפעיל את תוכנת ה- Stunnel כאפליקציה הפועלת משולחן העבודה ולשם כך נדרש ביצוע Logon, או להגדיר את תוכנת ה- Stunnel כ- Service העולה ללא צורך בביצוע Logon.
    התקנת Stunnel כ- Service תתבצע ע"י הרצה חד פעמית של התוכנה עם הפרמטר "
    -install
    "
    כדומה: "C:\Stunnel\stunnel.exe -install"
  • שים את כל תעודות ה- SSL של הדומיינים והמערכת עצמה בתת התיקיה "Certificates" לדוגמה:
    Stunnel\config\Certificates\

    תוכן ומבנה תעודות ה- SSL צריך להיות כמוספר בתחילת העמוד.
  • ערוך את קובץ ההגדרות: Stunnel.Conf בהתאם לנדרש בארגונך. עריכה של הקובץ דורשת הפעלה מחדש של התוכנה ובחינת קובץ ה-LOG לתקינות ההגדרות.
    להלן דוגמה להגדרה אפשרית עבור שרת SNI למספר דומיינים:

TIMEOUTclose = 0
debug = 0
output = Stunnel_log.txt
sslVersion = all
sslVersionMin = TLSv1.2
ciphers = ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:
DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:
!DES:!RC4:!3DES:!MD5:!PS:!CBC
protocol = proxy
renegotiation = no


[virtual]
accept = [internal IP Addr]:443
cert = Certificates\Your_Fully_Bundled_WildCard_SSL_Certificate.pem
connect = [Target IP Addr]:[Target port]


[sni-first-domain.com]
sni = virtual:first-domain.com
cert = Certificates\The_First_Domain_Full_Bundel_SSL_Certificate.pem
connect = [Target IP Addr]:[Target port]


[sni-second-domain.com]
sni = virtual:second-domain.com
cert = Certificates\The_Second_Domain_Full_Bundel_SSL_Certificate.pem
connect = [Target IP Addr]:[Target port]


[sni-third-domain.com]
sni = virtual:third-domain.com
cert = Certificates\The_Third_Domain_Full_Bundel_SSL_Certificate.pem
connect = [Target IP Addr]:[Target port]

הגדרות משוב Headers

אחד מתפקידיו של שרת ה- HTTP הוא ייצור מעטפת Headers להתקשורת החוזרת.
השרת מזריק ל- Response את הכותרים (Headers) הרלוונטיים בהתאם לסוג הבקשה (Request) שהתקבלה.

כותרים (Headers) המוזרקים לתקשרות

להלן רשימת הכותרים החוזרים במסגרת ה- Response.
הכותרים הבאים יוחזרו באופן קבוע כברירת מחדל:
שם כותר / Header Name הסבר / דוגמה
HTTP HTTP/1.1 200 OK
Connection Connection: close
Accept-Ranges Accept-Ranges: bytes
Content-Type Content-Type: application/json; charset=utf-8
Content-Length Content-Length: 199
Cache-Control Cache-Control: no-store, no-cache, must-revalidate
Date Date: Wed, 15 Apr 2026 12:57:34 GMT
Set-Cookie Set-Cookie: HyperSession=00587E1A3C8A2FB40E40dNYTXsiwx6M0QgBAwGaN; HttpOnly; Secure; SameSite=Strict
כותר זה (ותוכן העוגיה) מועבר מהיישום web עצמו.
במקרה הנוכחי ניתן לראות ששורשרו אחרי העוגיה הגדרות נוספות שהוגדרו בפרמטר SetCookie_Head ביישום.
Strict-Transport-Security Strict-Transport-Security: max-age=31536000
מיושם רק כאשר מדובר בתקשורת מוצפנת (HTTPS)
מכאן נבדק באם יושם קובץ Headers.File בתיקיית HTTP של יישום ה- WEB.
אם יושם קובץ זה, יוזרקו להמשך התקשורת הכותרים שבקובץ וערכיהם.
אחרת, יוזרקו שאר הכותרים שבהמשך...
X-Frame-Options X-Frame-Options: SAMEORIGIN
X-Content-Type-Options X-Content-Type-Options: nosniff
X-XSS-Protection X-XSS-Protection: 1; mode=block
Access-Control-Allow-Origin Access-Control-Allow-Origin: *
Access-Control-Request-Headers אם כותר זה הגיע בבקשה (Request) אז הוא ישורשר ככותר אחרון ובו יוחזר הערך שהתקבל בבקשה (Request)

HTTP/1.1 200 OK
Connection: close
Accept-Ranges: bytes
Content-Type: application/json; charset=utf-8
Content-Length: 199
Cache-Control: no-store, no-cache, must-revalidate
Date: Wed, 15 Apr 2026 12:57:34 GMT
Set-Cookie: HyperSession=00587E1A3C8A2FB40E40dNYTXsiwx6M0QgBAwGaN; HttpOnly; Secure; SameSite=Strict		// ברירת מחדל מובנית ביישום web עצמו
Strict-Transport-Security: max-age=31536000                                                             // if TLS only for that domain

// עוצר כאן ובודק באם ייושם קובץ Headers.File
// אם כן משרשר את הכותרים והערכים שבו, אחרת ממשיך עם הכותרים הבאים:

X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Access-Control-Allow-Origin: *

// בדיקה האם הכותר: Access-Control-Request-Headers
// היה קים בבקשה. אם כן משרשר את ערכיו לכאן.