پروتکل OpenSSL یک توزیع متن بازی از پروتکلهای ssl و TLS است که یک لایه کد گذاری شده برروی ارتباطات لایه دیگر ایجاد می کند. ورژنهایی که در FreeBSD از آنها پشتیابنی می شود به شرح زیر است:
OpenSSL اغلب برای رمزگذاری احراز هویت مشتریان ایمیل و برای تأمین امنیت معاملات مبتنی بر وب مانند پرداخت های کارت اعتباری استفاده می شود. برخی از برنامه های مانند apache24 و postgresql91-server شامل یک گزینه کامپایل برای فعال کردن قابلیت OpenSSL می باشند.
سیستم عامل FreeBSD به دو روش پروتکل OpenSSL را ارایه می کند، یکی که در بیس سیستم عامل قرار گرفته است و توسط خود سیستم عامل کامپال شده است و دیگری که کاربر می تواند با استفاده از سیستم ports در FreeBSD آنرا نصب کند و سیستم بروز شده است ، برای این کار باید وارد بخش security/openssl در سیستم ports شوید.
یکی دیگر از استفاده های رایج از OpenSSL این است که گواهی ها را برای استفاده با برنامه های نرم افزاری ارائه دهیم. گواهی می تواند برای تأیید اعتبار یک شرکت یا فرد مورد استفاده قرار گیرد. اگر گواهی توسط یک گواهینامه خارجی خارجی مانند http://www.verisign.com امضا و تایید نشده باشد، برای برنامه ای که از گواهی استفاده می کند، هشداری ایجاد می کند. هزينه مربوط به اخذ گواهي امضا شده و استفاده از گواهي امضاء اجباري نيست چون گواهينامه ها مي توانند خود امضا شوند. با این حال، استفاده از یک مقام خارجی باعث جلوگیری از هشدارها برای کاربران می شود و کاربران را راحت می توانند از این سرویس و گواهی نامه استفاده کنند.
برای ایجاد کردن یک گواهی به صورت زیر باید از فرمان OpenSSL استفاده کنید که البته در زمان اجرا شدن این فرمان از شما سوالاتی پرسیده می شود که با وارد کردن اطلاعات درست می توانید در صورت نیاز بعدا گواهی نامه خودتون رو توسط یک شرکت بیرونی امضا کنید، روش اجرا کردن و خروجی این فرمان را در این بخش مشاهده می کنید:
# openssl req -new -nodes -out req.pem -keyout cert.key -sha256 -newkey rsa:2048 Generating a 2048 bit RSA private key ..................+++ .............................................................+++ writing new private key to 'cert.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []:Systems Administrator Common Name (eg, YOUR name) []:localhost.example.org Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:Another Name
فرمان بالا دو فایل را در دایرکتوری فعلی اجرای فرمان ایجاد می کند. فایل اول req.pem که می تواند به CA تایید کننده مورد نظر ارسال شود که اعتبار ورودی ها را تأیید کند، درخواست را امضا کند و گواهینامه امضا را بازگرداند. فایل دوم، cert.key نام دارد که ، کلید خصوصی برای گواهی است و باید در یک مکان امن ذخیره شود. از این فایل به خوبی مراقبت کنید چون افشای ان می تواند گواهی سمت سرور شما را به خطر اندازد.حال اگر شما نیازی به امضا شدن این گواهی ندارید می توانید از روی آن برای استفاده خودتان یک کلید RSA ایجاد کنید که باری این کار باید از فرمان OpenSSL به صورت زیر استفاده کنید و فایل cert.key را هم برای این کار نیاز دارید:
# openssl genrsa -rand -genkey -out cert.key 2048 0 semi-random bytes loaded Generating RSA private key, 2048 bit long modulus .............................................+++ .................................................................................................................+++ e is 65537 (0x10001)
حال از این کلید می توانید برای ایجاد یک گواهی خود امضا استفاده کنید. فرمان زیر را اجرا کنید و به سوالات آن پاسخ دهید:
# openssl req -new -x509 -days 365 -key cert.key -out cert.crt -sha256 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []:Systems Administrator Common Name (e.g. server FQDN or YOUR name) []:localhost.example.org Email Address []:trhodes@FreeBSD.org
این فرمان دو فایل جدید را در دایرکتوری فعلی شما ایجاد می کند: یک فایل کلید خصوصی است به نام cert.key و دیگری فایل خود گواهی cert.crt. که می توانید این ها باید در پوشه قرار دهید و از آن استفاده کنید ، ترجیحا این فایلها را در شاخه ssl در زیر شاخه /etc قرار دهید و سطح دسترسی 700 را به ان اعمال کنید
کارشناس ارشد متخصص سیستم عامل های متن باز ( لینوکس و یونیکس )
سلام دوستان از سال ۱۳۸۱ با سیستم عامل های مبتنی بر BSD کار کردم. برگذار کننده دوره های PF و pfsense مدرس دوره های لینوکس ( LPIC303) مقالات و فیلم های آموزشی در زمینه BSD تهیه کردم. یکی از سیستم عامل های مورد علاقه من OpenBSD است. عاشق کار با سیستم عاملهای متن باز عاشق کار با خط فرمان.
06 آذر 1396 این مطلب را ارسال کرده