Archive for 2016

راه اندازی گواهی SSL رایگان با Let's Encrypt

۱۳۹۵/۰۹/۰۴ ۷:۳۰ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۹۵/۰۹/۰۴ دسته بندی : 0

Let's Encrypt سرویس رایگان صدور گواهی نامه های SSL هست که توسط چند شرکت و دانشگاه از جمله سیسکو و Mozilla راه اندازی شده و هدف آن حذف مشکلات صدور گواهی نامه های دیجیتالی SSL و در دسترسی قرار دادن این گواهی برای همگان هست. همانطور که می دانید صدور گواهی نامه های SSL هزینه بر بوده و نصب و راه اندازی آن هم دردسر های خودش را دارد ولی در ادامه مشاهده می کنید که به راحتی هر چه تمام تر با یک ابزار کمکی و سرویس Let's Encrypt این کار را انجام می دهیم.

در حالت کلی ویژگی های عمده سرویس Let's Encrypt را اینگونه میشود لیست کرد
  • کاملا رایگان می باشد
  • اجازه تولید خودکار گواهی نامه ها با استفاده از API
  • 3 ماهه بودن گواهی نامه ها
  • وبسایت دریافت کننده گواهی باید به اینترنت متصل باشد
  • فایل به خصوصی در محل سایت قرار میگیرد که توسط آن، سرویس گواهی صحت گواهی صادر شده را کنترل می کند
  • امکان صدورمجدد گواهی هر زمانی، حتی اگر تاریخ انقضا نرسیده باشد
از ابتدا ابزارهای اصلی Let's Encrypt برای لینوکس توسعه داده شده بود ولی پس از باثبات شدن نسبی API های این سرویس شاهده تولید ابزارهای ویندوز توسط علاقه مندان شدیم.

LetsEncrypt-Win-Simple
برای راه اندازی Let's Encrypt بر روی سرور مجازی و شخصی، من قصد دارم که از ابزار LetsEncrypt-Win-Simple استفاده کنم. این ابزار که از خط فرمان ساده ای بهره میگیره و چندین مزایا داره. از جمله مزایای آن
  • سادگی و خودکار بودن همه عملیات
  • شناسایی گواهی نامه های قدیمی Let'sEncrypt و جایگزین کردن آنها
  • استفاده از Task Scheduler ویندوز برای صدور مجدد گواهی ها
 چند نکته در مورد این ابزار وجود دارد و آنها اینکه، برای انجام خودکارعملیات ، ابزار باید روی سرور محل نصب وبسایت اجرا شود؛ همچنین سرور سایت مورد نظر از طریق اینترنت در دسترس باشد.

برای شروع نرم افزار را از آدرس پروژه LetsEncrypt-Win-Simple دریافت کرده و اجرا نمایید.

همانطور که در تصویر مشخص هست، نرم افزار چندین انتخاب را در اختیار قرار می دهد.
گزینه اول W، راهتترین روش هست که همه کارها را به  صورت خودکار انجام میدهد. پس از انتخاب W باید وبسایت IIS مورد نظر را که با شماره لیست مشخص شده است انتخاب کنید و بقیه عملیات خودکار انجام می شود. سوالی هم در پایان عملیات همانند تصویر زیر پرسیده می شود که همانظورکه درویژگی های این ابزار دکر شد، مربوط به افزودن task برای صدور مجدد گواهی در زمان انقضا به صورت خودکار می شود.

گزینه F همه این کارها را با استفاده از اتصال به سرویس FTP وبساتتان که با اتصال به آن توسط نام کاربری و کلمه عبوری که پرسیده خواهد شد انجام میدهد.
با استفاده از گزینه M می توانید گواهی نامه را برای وبسات مورد نظر از هر جایی تولید کنید (عدم نیاز به اجرا شدن برنامه درسرور)، ولی در این صورت مراحل نصب خودکار گواهی نامه و همچنین تنظیم Task Scheduler را نخواهید داشت. و در آخر هم باید فایل ها و پوشه well-known که جهت تایید هویت سایت درخواست کننده گواهی نامه تولید می شود را نیز دستی کپی کنید. و البته فراموش نشود که هر 3 ماه همین کار راباید تکرار کنید. این روش برای زمانی مناسب هست که سایت شما در یک هاست اشتراکی است و هیچ امکانی برای خودکار سازی عملیات ندارید.

نکته مهم: در پایان این قسمت نکته ای لازم به ذکراست. پشتیبانی از SNI مخفف Server Name Indication پس از IIS 2012 اضافه شد و این گزینه این اجازه را می دهد که برای هر IP آدرس بیش از یک گواهی نامه صادر شود. همانطور که درتصویر زیر مشاهده می کنید این گزینه پیش فرض انتخاب شده است و با توجه به اینکه برای آدرس هر ساب دامین والبته www هم گواهی نامه جداگانه ای باید تولید شود وجود گزینه SNI لازم و مهم است. تنها مشکلی که وجود دارد عدم پشتیبانی از این ویژگی در نسخه های قدیمی IE در ویندوز XP هست، که اگر این پشتیبانی برای شما مهم می باشد، مجبور خواهید بود که این گزینه را غیر فعال کرده و برای هر IP فقط یک گواهینامه استفاده کنید.


و در آخر تبریک میگم، شما هم به جمع دارندگان گواهی SSL پیوستید :)

ابزار Certify
این ابزار هم یک محیط گرافیکی (GUI) را برای مدیریت گواهی نامه های Let'sEncrypt فراهم می کند. متاسفانه هنوزاین ابزار به مرحله نهایی نرسیده و ظاهرا بدون ایراد نمی باشد. همچنین برای دریافت آن نیاز به عضویت در خبرنامه سایت را دارید.


نصب و راه اندازی در هاست های اشتراکی
از آنجایی که مدت زمان گواهی نامه های Let's Encrypt محدود به 3 ماه می باشد، همین مسئله مشکلاتی رو برای نصب روی هاستینگ های اشتراکی دارد و باید برای تجدید خودکار گواهی ها ابزارهایی در دسترس باشد. برای همین منظور با یک جستجوی سریع در گوگل نتایج زیر بدست آمد.

البته قبل از لیست کردن نتایج، مجددا ذکر کنم که همانطور که در بالا اشاره شد، می توانید گواهی نامه ها را دستی برای سایت خود صادر کرده و نصب نمایید.

برای کنترل پنل Plesk افزونه Let's Encrypt Plesk Extensions وجود دارد که باید توسط مدیر سرور بر روی کنترل پنل نصب شود.
برای کنترل پنل cPanel چندین افزونه رایگان و پولی وجود دارد که البته قبلا باید توسط مدیرسرورشما نصب شده باشد. ازمیان آنها پلاگین letsencrypt-cpanel رایگان می باشد. از همان لینک پیش نیاز ها رو هم میتوانید مشاهده کنید.

جهت مطالعه بیشتر

 

معرفی کتابخانه توابع کمکی Kendo UI

۱۳۹۵/۰۷/۲۴ ۷:۰۰ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۹۵/۰۷/۲۴ دسته بندی : ، ، ، 0

مجموع کامپوننت های Kendo زندگی رو برای خیلی از ما برنامه نویسان راحت کرده (حتی اگه براش پول نداده باشیم :) ). مانند بقیه کامپوننت ها وقتی عمیقا وارد استفاده از یک ابزار و یا کامپوننت می شوید هست که یک سری مشکلات خودشان را نشان می دهند. حتی بعضی کارها هم تکراری و خسته کننده می شود. مثلا ممکن است برای خواندن اطلاعات یک رکورد انتخابی چند خط کد تکراری رو در کل پروژه مکررا بنویسید. اینجاست که به فکر جمع آوری این کد ها افتاده و اصلاحا مشغول Refactoring کد های پر استفاده می شوید. برای سی شارپ و جاوااسکریپت، مقدار زیادی توابع کمکی وجود دارد که خیلی نیازها رو رفع می کنند. چطور می شد که مجموع توابع کمکی آماده برای kendo هم بود؟

kendoHelpers To The Rescue

کتابخته Salar.kendoHelpers مجموع توابع جاواسکریپتی هست که برای راحت کردن انجام بعضی وظایف هنگام کار با مجموع کامپوننتهای kendo تهیه و جمع آوری شده است.
منطق استفاده از این کتابخانه بسیار ساده بوده و توابع در گروه های مختلف با نام هر کامپوننت جمع آوری شده است. 
برای مثال کامپوننت Grid که دارای بیشترین توابع است درkendoHelpers.grid قرار دارد.

استفاده از این توابع خیلی راحت می باشد، مثلا:

// دریافت گرید
var grid = $('#SampleGrid').data('kendoGrid');

// فراخوانی توابع کتابخانه
var dataItem = kendoHelpers.grid.getSelectedDataItem(grid);

// و انجام بقیه کارهایتان
if (dataItem != null){
    // dataItem.MyId = ...
}

لیست همه توابع و توضیحات آنها را در صفحه github می توانید مشاده کنید. صفحه پروژه kendoHelpers

برای افزودن این توابع به پروژه خود می توانید تک فایل kendoHelpers.js را پروژه اضافه کرده و یا پکیج NuGet را نصب کنید:

PM> Install-Package Salar.kendoHelpers

خوشحال خواهم شد توابع خود را به کتابخانه اضافه کنید.
Github, NuGet

 

مقایسه تغییرات نسخه های مختلف فایل با ویژوال استودیو

۱۳۹۵/۰۷/۲۲ ۲۱:۳۰ Salar Khalilzadeh https://plus.google.com/105397214522932500988 منتشر شده در تاریخ : ۱۳۹۵/۰۷/۲۲ دسته بندی : 0

از نسخه 2012 به بعد امکانات بسیار کاربردی به Visual Studio اضافه شده است. یکی از امکاناتی که شاید کمتر مورد توجه قرار گرفته و البته بسیار کاربردی است، امکان مقایسه دو نسخه از یک فایل متنی در جهت یافتن تغییرات اعمال شده است.

اگر از یکی از source control ها استفاده می کنید مطمئنا همین الان هم دارید از این ویژگی استفاده می کنید، با انجام دستور Compare.

در تصویر زیر تغییرات دو فایل را می توانید مشاهده کنید:


محدودیتی که این ویژگی دارد این است که فایل باید داخل پروژه بوده و تحت کنترل source control باشد.
ولی راه دیگری هم برای مقایسه دو فایل وجود دارد. با استفاده Command Window و اجرای دستور زیر می توانید هر دوفایلی رو حتی اگر در پروژه نباشند مقایسه کرد.

برای باز کردن Command Window کلید Ctrl+Alt+A استفاده کنید. دستور مورد نظر Tools.DiffFiles است که به عنوان ورودی دو فایل را میگیرد.
برای مثال:

Tools.DiffFiles e:\BoisMemberInfo1.cs e:\BoisMemberInfo2.cs

به همین راحتی.
در صورتی که ویژوال استودیو بسته است، می توان با دستور زیر ویژوال استودیو رو باز کرده و تغییرات فایلها را آنی مشاده کرد.

devenv.exe /diff e:\BoisMemberInfo1.cs e:\BoisMemberInfo2.cs

و سر انجام در صورتی که نیاز به قابلیت های بیشتری دارید(مثلا مقایسه تغییرات یک فولدر) در این صورت نرم افزار WinMerge رو پیشنهاد می کنم.