دستورالعمل نحوه تبدیل گواهینامه های ssl از یک فرمت به فرمت دیگر
چگونه می توانیم گواهی نامه را به فرمت صحیح تبدیل کنیم؟ ده ها نوع مختلف سرور وجود دارد که در حال استفاده هستند و متأسفانه استانداردی یکنواخت برای نوع پرونده وجود ندارد. به هر حال ، این تنوع در انواع سرورها منجر به استفاده از چندین فرمت فایل مختلف برای گواهینامه های دیجیتالی شده است. فرمت های مختلف گواهینامه:
.der
.pem
.crt
.cer
.pkcs7
.p7b
.pkcs8
.pkcs12
.pfx
.p12
رمزگذاری در واقع فقط کدنویسی داده ها به فرمی است که می تواند توسط سیستم دیگری مورد استفاده قرار گیرد. یا به عبارت ساده تر ، این داده ها را کدنویسی می کند تا توسط رایانه قابل خواندن و استفاده باشد. یکی از رایج ترین استانداردهای رمزگذاری (که باید در دو پاراگراف به خاطر بسپارید) ASCII یا کد استاندارد برای تبادل اطلاعات است، که یک برنامه ی رمزگذاری است که برای پرونده ها که حاوی متن است استفاده می شود.
سبک های رمزگذاری
.der مخفف قوانین رمزگذاری، یک قالب رمزگذاری باینری است. ویندوز آنها را به عنوان پرونده های گواهینامه مشاهده می کند و در واقع صادر کننده گواهینامه ها آن را به عنوان فایل هایی با فرمت .der اما با پسوندی مانند .crt یا .cer صادر می کند.
.pem . مخفف Email Enhanced Mail ، است. با توجه به اینکه PEM اساساً در عملکردی که برای آن طراحی شده بود شکست خورده است اما به عنوان یک قالب مفید است. فایلهای PEM فقط فایلهای DER رمزگذاری شده Base64 هستند.
پرونده های DER به ندرت در خارج از ویندوز استفاده می شوند. اما به یاد داشته باشید که PEM مانند یک ظرف است. به این دلیل که می تواند حاوی هر اطلاعاتی از گواهینامه، از کل زنجیره گواهینامه و صفحه کلید باشد. متأسفانه، همه مرورگرها پرونده هایی با پسوند .pem را به عنوان گواهینامه تشخیص نخواهند داد ، بنابراین در بسیاری از مواقع یک پسوند متفاوت اضافه شده در انتهای یک پرونده PEM (و همچنین پرونده های DER) را مشاهده خواهید کرد:
. cert
.crt
.cer
بنابراین وقتی در مورد چگونگی تبدیل گواهینامه به قالب صحیح صحبت می کنید ، می توانید در مورد نحوه رمزگذاری یا نحوه ارائه آن صحبت کنید. اکنون چند روش دیگر برای ارائه گواهینامه فراتر از PEM و DER وجود دارد. استاندارد های رمزنگاری PKCS یا Public Key رمزنگاری ، به طور کلی PKCS 7 ، PKCS8 و PKCS12 را می بینید. بیایید با PKCS7 ، که ابتدا توسط شرکت RSA تعریف شده بود ، قبل از واگذاری IETF ، شروع کنیم. این یک فرمت چند منظوره برای انتشار داده های رمزگذاری شده و امضا شده است. سرانجام این تبدیل به syntax پیام رمزنگاری ، CMS شد ، اما دقیقاً مانند SSL و TLS ، PKCS7 نام محاوره ای است که همه ما هنوز از آن استفاده می کنیم. این یک استاندارد باز است ، توسط ویندوز پشتیبانی می شود. نکته ای که باید به آن توجه کنیم این است که نمی تواند یک کلید خصوصی داشته باشد. PKCS7 از گواهینامه های ایمیل استفاده زیادی می کند و اساس ایمیل ایمن S / MIME را تشکیل می دهد. PKCS8 یک استاندارد مشابه است که برای حمل کلیدهای خصوصی استفاده می شود. و در آخر ، ما PKCS12 داریم که امنیت بهتر از طریق رمزگذاری را فراهم می کند. تقریباً مانند یک پرونده PEM ، می تواند از گواهینامه منفرد گرفته تا کل زنجیره صدور گواهینامه و جفت کلید حاوی هر چیزی باشد ، اما برخلاف PEM این یک محفظه کاملاً رمزگذاری شده است که دارای رمز عبور است. اگر در طول تولید گواهینامه SSL از شما درخواست گذرواژه شده است ، اگر در قالب PKCS12 موجود باشد ، می توانید از آن برای باز کردن گواهینامه استفاده کنید.
OpenSSL چیست؟
OpenSSL یک کتابخانه نرم افزاری است. یک رایانه ذاتاً نمی داند چه کاری را انجام دهد. شما باید به آن آموزش دهید. کتابخانه نرم افزاری مجموعه ای از کد ها ، اسکریپت ها ، تنظیمات و رویه ها است که به تسهیل عملکرد کمک می کند. به عنوان مثال ، اگر شما در حال نوشتن یک نرم افزار هستید که نیاز به محاسبات ریاضی زیادی دارد ، فقط اضافه کردن یک کتابخانه نرم افزاری ریاضی منطقی است ، به طوری که دیگر نیازی به نوشتن یک مجموعه کامل از عملکردهای ریاضی پیچیده نیست.
اکنون آن مفهوم را بر روی SSL اعمال کنید. OpenSSL یک کتابخانه نرم افزاری است که پروتکل SSL / TLS را تقریباً در هر سروری امکان پذیر می کند. OpenSSL به زبان برنامه نویسی C نوشته شده است ، که باعث می شود آن را برای هر کسی که حتی دانش احتیاطی نسبت به برنامه نویسی دارد ، کاملاً در دسترس قرار دهد.
نحوه تبدیل پسوندیک گواهینامه به پسوند صحیح
openssl x509 -in certificatename.cer -outform PEM -out certificatename.pem
تبدیل DER به PEM – رمزگذاری باینری به ASCII
openssl x509 -inform der -in certificatename.der -out certificatename.pem
تبدیل PEM به DER – ASCII به باینری
openssl x509 -outform der -in certificatename.pem -out certificatename.der
تبدیل PEM به پرونده های PKCS7 – PKCS7 فقط می تواند حاوی گواهی نامه ها و زنجیره های گواهی نامه باشد.
openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer
تبدیل PKCS7 به PEM – به یاد داشته باشید ، این فایل ها دارای متغیر کلیدی نیستند.
openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem
تبدیل PKCS12 به PEM – که به آنها PKFS12 یا PFX گفته می شود که شامل گواهی ، زنجیره گواهینامه و کلید خصوصی است. آنها با رمز محافظت شده و رمزگذاری شده اند.