ssl בשרת FTP


  • תכנות

    אני מיישם שרת FTP מהקוד כאן:
    https://www.codeproject.com/Articles/380769/Creating-an-FTP-Server-in-Csharp-with-IPv6-Support

    אני משתמש בקליינט FileZila.
    בלי SSL הוא עובד טוב.

    אבל כשאני רוצה להפעיל אותו עם SSL (בעצם זו הגדרה בקליינט שיתחבר עם SSL), יש לי בעיה עם התעודה.
    אני מנסה לטעון בשרת את התעודה מסוג X509Certificate (ניסיתי גם X509Certificate2).
    והוא זורק לי שגיאה בשלב הזה. כלומר אין קשר לקליינט, אלא ברגע שהשרת מנסה לטעון את התעודה, הוא כבר נופל.

    כנראה הבעיה היתה ביצירת התעודה.

    איך יצרתי את התעודה?
    לפי ההוראות בקישור למעלה:

    makecert -r -pe -n "CN=localhost" -ss my -sr localmachine -sky   exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 server.cer
    

    (צריך להפעיל את ה- makecert כמנהל בשביל ליצור את התעודה. ואולי גם את השרת).
    התעודה נוצרת בהצלחה.

    והשרת נופל בשורה

    _cert = new X509Certificate("server.cer");
    

    עם שגיאה:

    System.Security.Cryptography.CryptographicException: 'Unspecified error'
    

    ניסיתי גם לשנות ל- X509Certificate2:

    _cert = new X509Certificate2("server.cer");
    

    ויש את אותה השגיאה.

    אני מקווה שהבהרתי את הבעיה כמו שצריך.
    אם חסר פרט אוסיף.



  • הייתי מתמצת את הבעיה ככה:

    _cert = new X509Certificate("server.cer");
    

    מביא שגיאה
    System.Security.Cryptography.CryptographicException: 'Unspecified error'

    כשהקובץ server.cer נוצר בהצלחה ע"י

    makecert -r -pe -n "CN=localhost" -ss my -sr localmachine -sky   exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 server.cer
    

    אני מעריך (וגם ראיתי באינטרנט תשובות דומות) שהבעיה היא בגישה לקובץ, כלומר גם שורת קריאת הקובץ כטקסט תיכשל:

    File.ReadAllText("server.cer");
    

    אם זה אתר זה מאוד נפוץ שזה רץ כמשתמש שונה ואין לו הרשאת גישה. תוכל לשנות את ההרשאות של הקובץ לeveryone כדי לפתור/לוודא אם זה הבעיה.
    אם זה תוכנה שמורצת ע"י לחיצה כפולה, יש להפעילה כמנהל.
    אם זה לא עוזר תצטרך לבדוק אם יש גישה לקובץ ומה פרטי השגיאה אם לא.



  • יש לך סיבה לא להשתמש בתוכנה מוכנה עבור הסרבר לFTP (למשל של FileZila Server שזה הנפוץ ביותר)?
    כי זה נראה לי שביחס לתוכנה מוכנה מימוש עצמי הוא פחות יציב, פחות יעיל, ופחות בטוח.



  • @dovid יכול להיות שהוא רוצה קאסטומיזציה לניהול משתמשים / יותר שליטה על הקבצים



  • ייתכן. אפשר לשנות דינמית ע"י קוד את הקובץ FileZilla Server.xml ולטעון את ההגדרות ע"י הרצה חוזרת של השירות.


  • תכנות

    תודה ל @dovid ול @clickone
    אני אכן צריך שליטה מלאה על הלוגין. השרת אמור לשלוח את פרטי הכניסה לשרת אחר ורק לפי התשובה שלו להחזיר תשובה לFTP קליינט.
    ובשביל זה אני צריך את המימוש בעצמי.

    בנוסף, אני רוצה שליטה טובה יותר על הרשאות מחיקה וגישה.
    תחשוב על אפשרות (עדיין לא בדקתי) של קובץ, שאינו מופיע בפירוט התיקיה, אבל הקליינט יוכל להוריד אותו בכל אופן, אם הוא יודע את השם הספציפי שלו.

    בקיצור, צריך שליטה מלאה.

    לגבי מה ש @dovid הציע שיש בעייה בהרשאות הגישה, גם כשהפעלתי את השרת FTP כמנהל, הוא זרק אותה השגיאה.


התחבר כדי לפרסם תגובה
 

26
מחובר

1.5k
משתמשים

5.3k
נושאים

58.6k
פוסטים

סלולר כשר במחירים הנמוכים ביותר עם ובלי ניוד.

כנסו לאתר לקניה מקוונת, או בדקו סניף קרוב לביתכם.

מוצרים עם הנחה

לחצו פה כדי להגיע לרשימת מוצרים עם הנחה בקיאספי.

בהגעה דרך הלינק, ישנה הנחה בשלב התשלום בקופה!

בא תתחבר לדף היומי!