با ایجاد گواهی SSL خود با استفاده از OpenSSL به بازدیدکنندگان سایت خود نشان دهید که امنیت آنها را جدی می گیرید.
گواهینامه های SSL/TLS برای ایمن سازی برنامه وب یا سرور شما ضروری هستند. در حالی که چندین مرجع معتبر گواهینامه گواهینامه های SSL/TLS را برای هزینه ارائه می کنند، همچنین امکان تولید گواهی امضا شده با استفاده از OpenSSL وجود دارد. حتی اگر گواهینامه های خودامضا شده فاقد تایید یک مرجع قابل اعتماد باشند، همچنان می توانند ترافیک وب شما را رمزگذاری کنند. بنابراین چگونه می توانید از OpenSSL برای تولید گواهی امضا شده برای وب سایت یا سرور خود استفاده کنید؟
نحوه نصب OpenSSL
OpenSSL یک نرم افزار متن باز است. اما اگر سابقه برنامه نویسی ندارید و نگران فرآیندهای ساخت هستید، کمی تنظیمات فنی دارد. برای جلوگیری از این امر، می توانید آخرین نسخه کد OpenSSL را که به طور کامل کامپایل شده و آماده نصب است، از سایت slproweb دانلود کنید.
در اینجا، پسوند MSI آخرین نسخه OpenSSL مناسب برای سیستم خود را انتخاب کنید.
به عنوان مثال، OpenSSL را در D:\OpenSSL-Win64 در نظر بگیرید. شما می توانید این را تغییر دهید. اگر نصب کامل شد، PowerShell را به عنوان مدیر باز کنید و به زیرپوشه ای به نام bin در پوشه ای که OpenSSL را نصب کرده اید بروید. برای این کار از دستور زیر استفاده کنید:
cd 'D:\OpenSSL-Win64\bin'
اکنون به openssl.exe دسترسی دارید و می توانید آن را هر طور که می خواهید اجرا کنید.
کلید خصوصی خود را با OpenSSL ایجاد کنید
برای ایجاد گواهی امضا شده به یک کلید خصوصی نیاز دارید. در همان پوشه bin، می توانید این کلید خصوصی را با وارد کردن دستور زیر در PowerShell پس از باز کردن به عنوان مدیر ایجاد کنید.
openssl.exe genrsa -des3 -out myPrivateKey.key 2048
این دستور یک کلید خصوصی RSA رمزگذاری شده 3DES با طول 2048 بیت از طریق OpenSSL ایجاد می کند. OpenSSL از شما می خواهد رمز عبور را وارد کنید. شما باید از یک رمز عبور قوی و به یاد ماندنی استفاده کنید. پس از دو بار وارد کردن رمز عبور مشابه، کلید خصوصی RSA خود را با موفقیت تولید خواهید کرد.
می توانید کلید RSA خصوصی خود را با نام myPrivateKey.key پیدا کنید.
نحوه ایجاد یک فایل CSR با OpenSSL
کلید خصوصی که ایجاد می کنید به تنهایی کافی نخواهد بود. علاوه بر این، برای ایجاد گواهی امضا شده به یک فایل CSR نیاز دارید. برای ایجاد این فایل CSR، باید یک دستور جدید را در PowerShell وارد کنید:
openssl.exe req -new -key myPrivateKey.key -out myCertRequest.csr
OpenSSL همچنین رمز عبوری که برای تولید کلید خصوصی در اینجا وارد کرده اید را می خواهد. در ادامه اطلاعات حقوقی و شخصی شما را درخواست خواهد کرد. مراقب باشید این اطلاعات را به درستی وارد کنید.
علاوه بر این، انجام تمامی عملیات تاکنون با یک خط فرمان امکان پذیر است. اگر از دستور زیر استفاده میکنید، میتوانید هم کلید RSA خصوصی و هم فایل CSR را به طور همزمان ایجاد کنید:
openssl.exe req -new -newkey rsa:2048 -nodes -keyout myPrivateKey2.key -out myCertRequest2.csr
اکنون می توانید فایلی به نام myCertRequest.csr را در دایرکتوری مربوطه مشاهده کنید. این فایل CSR که ایجاد می کنید حاوی اطلاعاتی در مورد زیر است:
- موسسه درخواست کننده گواهی
- نام مشترک (یعنی نام دامنه).
- کلید عمومی (برای اهداف رمزگذاری).
فایل های CSR که ایجاد می کنید باید توسط مقامات خاصی بررسی و تایید شوند. برای این کار، باید فایل CSR را مستقیماً به مرجع گواهی یا سایر موسسات واسطه ارسال کنید.
این مراجع و کارگزاری ها بسته به ماهیت گواهی مورد نظر شما، صحت اطلاعاتی که ارائه می دهید را بررسی می کنند. همچنین ممکن است لازم باشد برخی از اسناد را به صورت آفلاین (فکس، پست و غیره) ارسال کنید تا ثابت کنید که آیا اطلاعات صحیح هستند یا خیر.
تهیه گواهی توسط مرجع صدور گواهینامه
هنگامی که فایل CSR را که ایجاد کرده اید به یک مرجع گواهی معتبر ارسال می کنید، مرجع گواهی پرونده را امضا می کند و گواهی را برای موسسه یا شخص درخواست کننده ارسال می کند. در انجام این کار، مرجع صدور گواهینامه (همچنین به عنوان CA شناخته می شود) همچنین یک فایل PEM از فایل های CSR و RSA ایجاد می کند. فایل PEM آخرین فایل مورد نیاز برای گواهی خودامضا است. این مراحل تضمین می کند که گواهینامه های SSL سازماندهی شده، قابل اعتماد و ایمن باقی می مانند.
شما همچنین می توانید فایل PEM را خودتان با OpenSSL ایجاد کنید. با این حال، این می تواند خطرات بالقوه ای برای امنیت گواهی شما ایجاد کند، زیرا اصالت یا اعتبار گواهینامه دوم مشخص نیست. همچنین، غیرقابل تأیید بودن گواهی شما ممکن است باعث شود در برخی از برنامه ها و محیط ها کار نکند. بنابراین برای این مثال از گواهینامه خودامضا، میتوانیم از یک فایل PEM جعلی استفاده کنیم، اما، البته، در استفاده واقعی این امکان وجود ندارد.
در حال حاضر، تصور کنید که یک فایل PEM به نام myPemKey.pem از یک مرجع رسمی گواهی می آید. می توانید از دستور زیر برای ایجاد یک فایل PEM برای خود استفاده کنید:
openssl x509 -req -sha256 -days 365 -in myCertRequest.csr -signkey myPrivateKey.key -out myPemKey.pem
اگر چنین فایلی داشتید، دستوری که باید برای گواهی خود امضا شده خود استفاده کنید این خواهد بود:
openssl.exe x509 -req -days 365 -in myCertRequest.csr -signkey myPemKey.pem -out mySelfSignedCert.cer
این دستور به این معنی است که فایل CSR با یک کلید خصوصی به نام myPemKey.pem امضا شده است که برای 365 روز اعتبار دارد. در نتیجه، یک فایل گواهی به نام mySelfSignedCert.cer ایجاد می کنید.
اطلاعات گواهی خود امضا شده
می توانید از دستور زیر برای بررسی اطلاعات گواهی خود امضایی که ایجاد کرده اید استفاده کنید:
openssl.exe x509 -noout -text -in mySelfSignedCert.cer
با این کار تمام اطلاعات موجود در گواهی به شما نشان داده می شود. امکان مشاهده اطلاعات زیادی مانند اطلاعات شرکت یا شخصی و الگوریتم های استفاده شده در گواهی وجود دارد.
اگر گواهینامه های خودامضا شده توسط مرجع صدور گواهینامه امضا نشده باشند چه می شود؟
ضروری است گواهینامه های خودامضایی را که ایجاد می کنید بررسی کنید و مطمئن شوید که این گواهی ها امن هستند. یک ارائه دهنده گواهی شخص ثالث (به عنوان مثال یک CA) معمولاً این کار را انجام می دهد. اگر گواهی امضا شده و تایید شده توسط یک مرجع گواهی شخص ثالث نداشته باشید و از این گواهی تایید نشده استفاده کنید، با برخی از مشکلات امنیتی مواجه خواهید شد.
به عنوان مثال، هکرها می توانند از گواهی امضا شده شما برای ایجاد یک کپی جعلی از یک وب سایت استفاده کنند. این به مهاجم اجازه می دهد تا اطلاعات کاربران را بدزدد. آنها همچنین می توانند نام کاربری، رمز عبور یا سایر اطلاعات حساس کاربران شما را در اختیار داشته باشند.
برای اطمینان از امنیت کاربران، وبسایتها و سایر سرویسها معمولاً باید از گواهیهایی استفاده کنند که در واقع توسط یک CA تأیید شدهاند. این اطمینان را ایجاد می کند که داده های کاربر رمزگذاری شده و به سرور صحیح متصل می شوند.
ایجاد گواهینامه های خود امضا شده در ویندوز
همانطور که می بینید، ایجاد یک گواهی خود امضا شده در ویندوز با OpenSSL بسیار ساده است. اما به خاطر داشته باشید که به تایید مقامات صدور گواهینامه نیز نیاز خواهید داشت.
با این وجود، ساخت چنین گواهینامه ای نشان می دهد که امنیت کاربران را جدی می گیرید، به این معنی که آنها به شما، سایت و برند کلی شما اعتماد بیشتری خواهند داشت.