| שם קובץ | הסבר | סוג התקנה |
|---|---|---|
|
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
// היה קים בבקשה. אם כן משרשר את ערכיו לכאן.