تبدیل فرمت گواهینامه SSL
در هنگام انتقال فایل در اینترنت، داده ها یا فایل کدگذاری شده از باینری به متن تبدیل می شود. یکی از انواع کدگذاری Base64 (MIME) Encoding می باشد. این کدگذاری باعث تبدیل به فرم متن و افزایش 30 الی 35 درصدی حجم اصلی فایل مورد نظر می شود.
فایل گواهینامه SSL دریافتی شما در صورتی که از طریق ایمیل ضمیمه گردد، از آنجایی که ایمیل ماهیت متنی دارد به فرم Base64 کدگذاری و تبدیل به شکل متن می شود و به دارنده گواهینامه ارسال می گردد. پس از انتقال، فایل مورد نظر بایستی به حالت اولیه بازگردانی و یا به عبارتی Decode شود.
فرمت های مختلف فایل گواهینامه SSL در انواع مختلف وجود دارد :
برخی از سیستم ها گواهینامه های صادر شده را با فرمت های مختلفی می پذیرند. بنابراین، به منظور به دست آوردن یا تبدیل گواهینامه های SSL برای دیگر سیستم ها تنها فایل با پسوند های cer. یا crt. کافی نخواهد بود.
* اگر گواهینامه SSL صادر شده بر روی سیستم عامل ویندوزی بارگزاری شده است، شما می توانید فایل را با پسوند pfx. صادر نمایید.
* اگر گواهینامه SSL صادر شده را می خواهید برای سیستم عامل لینوکسی استفاده نمایید، فایل گواهینامه بایستی جدای از پسوندهای cer. و key. باشد.
* بر روی سرورهای آپاچی به طور منحصر به فرد از فایل های PEM با پسوند cer. و crt. استفاده می شود.
* در برخی سیستم ها فایل با پسوند cer. نیاز به تبدیل شدن به فرمت pem. دارد.
در ادامه به معرفی تعدادی فرمت گواهینامه SSL می پردازیم :
فرمت PEM :
این فرمت شایعترین فرمت گواهینامه های SSL است که معمولا دارای پسوند هایی همچون pem, .crt, .cer, .key. می باشد. آنها به شکل فایل های اسکی Base64 کدگذاری شده و شامل جملات “—–BEGIN CERTIFICATE—–” و “—–END CERTIFICATE—–” می باشند. تمامی گواهینامه های سطح واسط و کلید های خصوصی را می توان به فرمت PEM قرار داد.
فرمت DER :
این فرمت فرم باینری ساده ای از گواهینامه SSL به جای فرمت اسکی PEM است. این فرمت بعضی موقع دارای فایل با پسوند der. و در اغلب مواقع دارای فایل با پسوند cer. می باشد. بنابراین تنها راه برای فهمیدن اختلاف بین فرمت PEM و DER باز کردن فایل گواهینامه SSL از طریق ویرایشگر متن و جستجو به دنبال جملات BEGIN/END است. تمامی انواع گواهینامه ها و کلیدهای خصوصی می توانند به فرمت DER کدگذاری شوند. فرمت DER به طور معلوم با پلتفورم جاوا استفاده می شود. مبدل SSL تنها می تواند گواهینامه ها را به فرمت DER تبدیل نمایید.
فرمت PKCS#7/P7B :
فرمت PKCS#7 یا P7B معمولا در فرم اسکی Base64 ذخیره شده و دارای فایل با پسوندهای p7b. و p7c. یا P7B شامل جملات “—–BEGIN PKCS7—–” and “—–END PKCS7—–” می باشد. فایل P7B تنها شامل گواهینامه ها و زنجیره آنهاست و شامل کلیدهای خصوصی نمی شود. چندین پلتفورم از فرمت P7B پشتیبانی می نمایند از جمله پلتفورم های Microsoft Windows و Java Tomcat.
فرمت PKCS#12/PFX :
فرمت PFX یا PKCS#12 یک فرمت باینری برای ذخیره گواهینامه سروری، تمامی گواهینامه های سطح واسط و کلید خصوصی در یک فایل قابل کدگذاری است. فایل های PFX معمولا دارای پسوندهای pfx. و p12. هستند. فایل های PFX به طور معمول بر روی سرورهای ویندوزی به منظور بازیابی و تهیه نسخه پشتیبان از گواهینامه ها و کلید های خصوصی استفاده می شوند.
زمانی که فایل PFX به فرمت PEM تبدیل می شود، OpenSSL تمامی گواهینامه ها و کلیدهای خصوصی را در داخل یه فایل واحد قرار می دهد. بنابراین شما نیاز به باز نمودن آن فایل از طریق ویرایشگر متن و کپی هر گواهینامه و کلید خصوصی (شامل جملات BEGIN/END) به منظور داشتن فایل متنی منحصر به فرد و ذخیر آنها به ترتیب با فرمت های certificate.cer و CACert.cer و privateKey.key دارید.
دستورات OpenSSL به منظور تبدیل فرمت گواهینامه SSL بر روی سرور :
توصیه شده است که شما فرمت فایل ها را به پسوند pxf. و یا از پسوند pxf. بر روی ماشین خود با استفاده از دستورات OpenSSL تبدیل نمایید، بنابراین شما می توانید کلید خصوصی یا Private Key را در آنجا نگه دارید. بدین منظور از دستورات OpenSSL زیر برای تبدیل گواهینامه SSL به پسوندهای مختلف بر روی ماشین خود استفاده نمایید :
تبدیل PEM به DER :
openssl x509 -outform der -in certificate.pem -out certificate.der
تبدیل PEM به P7B :
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
تبدیل PEM به PFX :
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
تبدیل DER به PEM :
openssl x509 -inform der -in certificate.cer -out certificate.pem
تبدیل P7B به PEM :
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
تبدیل P7B به PFX :
openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer
تبدیل PFX به PEM :
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
مطالب مرتبط: