Sertifikat holatini tekshirish
Siz foydalanayotgan SSL sertifikatlarining amal qilish muddati tugamagan yoki muddati tugash arafasida ekanligiga ishonch hosil qilish juda muhim. Bu borada beparvolik ishlab chiqarish tizimlariga halokatli ta'sir ko'rsatishi mumkin.
Sertifikat fayllarida odatda . pem yoki . crt kengaytmasi. Sertifikat tafsilotlarini o'rganish uchun openssl buyruqlaridan foydalanishingiz mumkin . Masalan, quyidagi buyruq siz yuqorida yaratgan sertifikat tafsilotlarini beradi:
openssl x509 -in mycert.pem -text -noout
9-rasm.Terminalingizda sertifikatning turli atributlarini tavsiflovchi uzun chiqishni ko'rasiz: Versiya, Seriya raqami, Imzo algoritmi, Emitent, Yaroqlilik holati va boshqalar.
Xuddi shunday, siz ushbu buyruqni SSL sertifikati biriktirilgan port bilan ishlatishingiz mumkin. O'ylaymanki, siz yuqoridagi natijadan bizning sertifikatimizning amal qilish oralig'ini aniqladingiz.
SSL sertifikatingizni almashtirish yoki yangilashni rejalashtirganingizda har doim ushbu buyruqdan foydalaning. Shunday qilib, siz sertifikatlarni boshqarishda xatolardan qochishingiz mumkin.
Sertifikatning amal qilish muddati (validity period) sertifikatning berilgan vaqtdan (notBefore) va tugash vaqti (notAfter) orqali aniqlanadi. Sertifikatning amal qilish muddati, sertifikat egasi tomonidan belgilanadi va sertifikatning xavfsizlik hisoblanadi.
Sertifikatni amal qilish muddatini va tekshirishni amalga oshirish uchun OpenSSL kutubxonasini quyidagi buyruqlardan foydalanishingiz mumkin:
1. Sertifikatning amal qilish muddatini ko'rish:
openssl x509 -in sertifikat.crt -noout -dates
Ushbu buyruq sertifikatning amal qilish muddatini chiqaradi. Natijada, "notBefore" (berilgan vaqtdan oldin) va "notAfter" (tugash vaqti) ma'lumotlari ko'rsatiladi.
2. Sertifikatning amal qilish muddatini tekshirish:
openssl verify -purpose sslserver -CAfile ca.crt sertifikat.crt
Bu buyruq sertifikatni tekshirib, amal qilish muddatini va xavfsizlikni tasdiqlash uchun foydalanilgan CA (sertifikat beruvchi) faylini (-CAfile) ko'rsatadi. "sslserver" maqsadi bilan sertifikatni tekshirish uchun `-purpose` parameteri foydalaniladi. Sertifikat amal qilish muddati tugagan bo'lsa, "OK" degan xabar chiqadi; aks holda, xato xabarlarini ko'rsatadi.
Sertifikatning amal qilish muddatini va tekshirishni amalga oshirish uchun yuklangan sertifikat faylini (`sertifikat.crt`) va gerekli CA faylini (`ca.crt`) o'rniga o'z fayllaringizning nomlarini kiriting. Agar sizning platformangizda boshqa buyruqlar yoki parametrlar talab qilinsa, OpenSSL dokumentatsiyasiga murojaat qiling.
Sertifikatning amal qilish muddati (validity period) va tekshirish, xavfsizlik va sertifikatların düzgün bir şekilde çalışmasını sağlamak için önemlidir. İşte bu nedenlerle sertifikatların amal qilish muddatini ve tekshirishini yapmanız gerekmektedir:
1. Amal qilish muddatini bilish: Sertifikatların amal qilish muddati, sertifikatın geçerli olduğu başlangıç ve bitiş tarihlerini belirtir. Bu bilgi, sertifikatın güvenilirliğini ve kullanılabilirliğini doğrulamaya yardımcı olur. Sertifikatın geçerlilik süresi, sertifika sahibi tarafından belirlenir ve genellikle sertifika yetkilisi (CA) tarafından onaylanır.
2. Tekshirish: Sertifikatların amal qilish muddatini doğrulamak için OpenSSL kutubxonasını kullanabilirsiniz. Bu, sertifikatın geçerli olup olmadığını ve süresi içinde olup olmadığını kontrol etmenize olanak sağlar. Aşağıdaki komutu kullanarak sertifikatı tekshir edebilirsiniz:
openssl verify -CAfile ca.crt sertifikat.crt
Ushbu buyruq -CAfilesertifikatlashtirish organi (CA) sertifikatiga o'z parametri bilan yo'lni belgilaydi. ca.crtBuning o'rniga, siz o'zingizning CA sertifikatingizning fayl yo'lini belgilashingiz kerak. Sertifikatning amal qilish muddati va amal qilish muddati ichida ekanligini tekshiradi. Agar to'g'ri bo'lsa, "OK" xabari ko'rsatiladi; aks holda xato xabarlari paydo bo'lishi mumkin.
Ushbu harakatlar sertifikatning xavfsiz va to'g'ri ishlashini ta'minlashga yordam beradi. Sertifikatning amal qilish muddati va toʻgʻriligini muntazam tekshirib turish muhim, chunki muddati oʻtgan yoki yaroqsiz sertifikatlar xavfsizlikning zaiflashishiga va xizmat koʻrsatishda uzilishlarga olib kelishi mumkin.
Sertifikatni imzolashni va imzo to'g'riligini tekshirish uchun OpenSSL kutubxonasini quyidagi buyruqlardan foydalanishingiz mumkin:
1. Sertifikatni imzolashni tekshirish:
openssl verify sertifikat.crt
Ushbu buyruq sertifikatni imzosini va haqiqiyatini tekshiradi. Agar sertifikatning imzosini to'g'ri hisoblasa, "OK" yoki "certificate verified" degan xabar chiqadi. Aks holda, xato xabarlarini ko'rsatadi.
2. Sertifikat imzosini to'g'riligini tekshirish:
openssl x509 -noout -modulus -in sertifikat.crt | openssl sha256
Ushbu buyruq sertifikatning modulusini (public keyning xususiy parametri) hisoblaydi va uni SHA-256 algoritmi orqali hashlaydi. Hash natijasi sertifikatning imzo to'g'riligini tasdiqlayadi. Sertifikatni o'zingizning imzosini (privat kalit orqali olingan) olish uchun maxfiy kalitni ham berishingiz kerak.
Bu buyruqlarni sertifikat faylining nomi bilan o'rniga o'zgartiring. Sertifikatning imzosini va imzo to'g'riligini tekshirishda OpenSSL kutubxonasidan foydalanishingiz kerak. Bu bilan sertifikatning xavfsizlik darajasini va to'g'riligini tekshirishingiz mumkin.
Sertifikatni taqdim etuvchisini va taqdim etuvchi sertifikatlarini tekshirish uchun OpenSSL kutubxonasidagi quyidagi buyruqlardan foydalanishingiz mumkin:
Sertifikatni taqdim etuvchisini aniqlash:
openssl x509 -in sertifikat.crt -noout -issuer
Ushbu buyruq sertifikatning taqdim etuvchisini chiqaradi. Natijada, taqdim etuvchi sertifikatning ma'lumotlari ko'rsatiladi, shuningdek, taqdim etuvchining nomi, tashqi tashkilot nomi, tashkilotning manzili, shaxsning ma'lumotlari va hokazo.
Taqdim etuvchi sertifikatlarini tekshirish:
openssl verify -CAfile ca.crt sertifikat.crt
Bu buyruq sertifikatni tekshirib, taqdim etuvchi sertifikatlari orqali tasdiqlashni amalga oshiradi. `-CAfile` parameteri orqali CA (sertifikat beruvchi) sertifikatlarning joylashgan faylni belgilashingiz kerak. Bu faylda taqdim etuvchi sertifikatlari bo'lishi kerak. Sertifikatning tasdiqlanganligi va taqdim etuvchisining sertifikatini qo'llab-quvvatlayan CA sertifikatlari mavjud bo'lsa, "OK" degan xabar chiqadi. Aks holda, xato xabarlarini ko'rsatadi.
Sertifikatning taqdim etuvchisini va taqdim etuvchi sertifikatlarini tekshirish uchun yuklangan sertifikat faylini (`sertifikat.crt`) va kerakli CA faylini (`ca.crt`) o'rniga o'z fayllaringizning nomlarini kiriting. OpenSSL kutubxonasidan foydalanish orqali sertifikatning taqdim etuvchisini va taqdim etuvchi sertifikatlarini tekshirishingiz mumkin.
Windows muhitida sertifikatlar haqiqiyligini ta'minlash.
Autentifikatsiya bilan bog'liq muammolar raqamli sertifikatlar yordamida foydalanuvchilar, tizimlar va xavfsiz tarmoq ulanishlarini aniqlash jarayonida muhim o'rin tutadi. Sertifikatning haqiqiyligini tekshirish uchun ochiq kalitlar infratuzilmasi (PKI) mexanizmlaridan foydalanadigan Windows dasturi sertifikatga va tegishli ochiq kalitga ishonishi mumkinligini aniqlashi kerak.
Sertifikatni autentifikatsiya qilish uchun PKI dasturi tegishli mantiqqa asoslanib, sertifikatning turli qismlari uchun bir qator taqqoslash protseduralari bajarilishi kerak. Ushbu maqolada biz ushbu protseduralarni, shuningdek sertifikatlarni autentifikatsiya qilish jarayonining boshqa jihatlarini ko'rib chiqamiz. Ushbu jarayonni sinchkovlik bilan o'rganish, agar mavjud bo'lsa, sertifikatni tekshirish masalalarini aniqlash va hal qilishga yordam beradi.
Taqqoslash protseduralari.
Sertifikatlarni autentifikatsiya qilish jarayonida quyidagi mezonlar bo'yicha taqqoslash protseduralari amalga oshiriladi: raqamli imzo, ishonch parametrlari, vaqt parametrlari, bekor qilish to'g'risidagi ma'lumotlar va formatlash parametrlari. Agar sertifikat ushbu mezonlardan kamida bittasining talablariga javob bermasa, u haqiqiy emas deb hisoblanadi. Raqamli imzo to'planganida, autentifikator ishonchli ochiq kalitdan foydalangan holda sertifikat beruvchi organ tomonidan sertifikatga qo'shilgan raqamli imzoning haqiqiyligini tekshiradi. Kalit kalit sifatida CA beruvchi organning yoki sertifikat zanjiriga kiritilgan boshqa tashkilotning ochiq kaliti kalit sifatida ishlatiladi.
Imzoning haqiqiyligini tekshirish uchun ochiq kalitning o'zi etarli emas, u ishonchli bo'lishi kerak. Windows Server 2003 va Windows 2000 Server PKI infratuzilmalarida, CA sertifikati va ochiq kalit ishonchli langarlar deb nomlanadi va Windows PKI mijoz sertifikatlari do'konidagi Trusted Root Certification Authorities konteyneri orqali olinadi. Ishonch munosabatlari parametrlarini taqqoslash jarayonida ishonchli CA sertifikatlari autentifikatsiya qilingan - bu protsedura sertifikatlar zanjirining haqiqiyligini tekshirish deb ham ataladi. Ushbu protsedura zanjirdagi har bir sertifikat uchun autentifikatsiya qilishning turli tsikllarini qo'zg'atishi mumkin. Sertifikatlar zanjirining haqiqiyligini tekshirish tartibi quyida batafsilroq muhokama qilinadi.
Sertifikatning vaqtinchalik parametrlarini qayta ishlashda, joriy sana sertifikatning boshlanish va tugash sanalari bilan taqqoslanadi. Sertifikatning amal qilishini cheklash sabablaridan biri zamonaviy kompyuter xavfsizligi talablariga, xususan kriptografiyaga javob berishdir, chunki eskirgan texnologiyalar yordamida berilgan sertifikatlarga hech kim ishonishi dargumon.
Qaytarishni tekshirish paytida sertifikat uni bergan CA tomonidan bekor qilinganligi tekshiriladi. Windows 2003 va Windows 2000 Server PKI muhitlari to'liq CRL va CRL tarqatish punktlarini (CDP) qo'llab-quvvatlaydi. Bundan tashqari, Windows 2003 Sertifikat Xizmatlari delta CRL-larni boshqarishi mumkin. CRLs, CRL Change Lists va CDP tugunlari yordamida siz sertifikatlar haqiqiyligini avtomatik ravishda tekshirishingiz mumkin. Sertifikatlarni bekor qilish bilan bog'liq muammolar haqida ko'proq ma'lumot olish uchun maqolaga qarang Windows IT Pro / RE # 4 2006 da nashr etilgan.
Formatni taqqoslash protsedurasi sertifikat formati Xalqaro elektraloqa ittifoqining elektraloqani standartlashtirish sektori (ITU-T) tomonidan chiqarilgan X.509 tavsiyalarida belgilangan talablarga javob berishini tekshiradi. Shuningdek, u asosiy cheklovlar, ism cheklovlari, dastur siyosati cheklovlari va berish siyosati cheklovlari kabi boshqariladigan ishonch munosabatlari sozlamalarini tavsiflovchi sertifikat kengaytmalarining haqiqiyligini tasdiqlaydi. Ushbu kengaytmalar maqolada batafsilroq tasvirlangan Windows IT Pro # 7, 2006 da nashr etilgan. Masalan, Secure MIME (S / MIME) dan foydalanadigan ko'pgina dasturlar Internet muhandislik topshiriqlarini kuchaytirish (IETF) sharhlar uchun so'rovda (RFC) tavsiflangan ob'ekt nomining sertifikati parametrining haqiqiyligini tasdiqlaydi. 822 (aslida Internet-manzillar formatidagi standart nom, aytaylik jan.declercq@hp.com). Buning uchun ushbu parametrning qiymati SMTP xabarining sarlavhasida yuboruvchining manzil manzili bilan taqqoslanadi. S / MIME holatida, bu tekshirish mumkin bo'lgan o'zini tutish va odam ichidagi hujumlardan himoya qiladi. Bunday hujumlarda, buzg'unchi odatda tizimga yoki tarmoqqa kirish uchun o'zini haqiqiy foydalanuvchi bilan aniqlashga harakat qiladi. Secure Sockets Layer (SSL) dasturlarining aksariyati shunga o'xshash tekshiruvlarni amalga oshiradi. SSL, sub'ektning RFC 822 nom parametrlari mijoz kiradigan xavfsiz veb-saytning URL manzilidagi nomga mos kelishini tasdiqlaydi.
Sertifikatlar zanjiri bilan ishlashning standart tartibi.
Sertifikatlar zanjiri nima va u sertifikatni autentifikatsiya qilish jarayonida nima uchun qayta ishlanishi kerak? Zanjirni yaratish orqali siz ushbu sertifikat bilan bog'liq bo'lgan barcha sertifikatlar autentifikatsiyasini tashkil qilishingiz mumkin. Sertifikatlar zanjiri nima ekanligini tushunish uchun PKI infratuzilmasidagi ierarxik ishonch modelini ko'rib chiqamiz. Ushbu modelda (yuqorida aytib o'tilgan PKI Trast Printsiplari maqolasida ham muhokama qilingan) har bir foydalanuvchining sertifikat zanjiri foydalanuvchidan ushbu ierarxiya tarkibidagi CA-ning ildiziga (ildiziga) yo'lni tashkil etuvchi barcha CA sertifikatlaridan iborat. Ierarxik ishonch modelidan foydalangan holda, har bir sertifikat X.509 sertifikatining emitent sohasida saqlanadigan ota-ona (yoki sertifikat beruvchi) CA-ga ko'rsatgichni o'z ichiga oladi. Shaklda 1da ikki darajali PKI ierarxiyasi mavjud bo'lganda, CA tomonidan berilgan foydalanuvchi sertifikati uchun zanjir namunasi ko'rsatilgan. Anjir. 1da sertifikat mavzusi va sertifikat beruvchining parametrlaridan foydalanishning eng oddiy namunasi keltirilgan. Ushbu misolda, foydalanuvchi sertifikatining predmeti foydalanuvchi va sertifikat beruvchisi CA hisoblanadi. Oraliq hokimiyat guvohnomasida, sub'ekt - bu hokimiyatning o'zi, noshir esa bu holda asosiy CA bo'ladi. Ierarxik ishonch modelida, IK har doim o'z sertifikatiga imzo qo'yadi, shuning uchun u sertifikat uchun subyekt ham, sertifikat beruvchi ham hisoblanadi.
10-rasm. Zanjirni qayta ishlash sertifikat tekshirish.
CTL zanjiriga ishlov berish
Ushbu protsedura sertifikat zanjirlarini qayta ishlash uchun alohida holdir. CTL sertifikatlangan sertifikatlangan ro'yxatni o'z ichiga oladi, shuning uchun u CA-lar tomonidan imzolangan sertifikatlarga ega. CTL ro'yxati Enterprise Trust Group Policy Object konteynerining ochiladigan menyusi orqali yaratiladi. Ushbu konteynerga Windows Sozlamalar Xavfsizlik sozlamalari Umumiy kalit siyosatining ketma-ket tanlovi orqali kirish mumkin. GPOlar shuningdek CTL-larni Sertifikat Kontent Do'konidagi Enterprise Trust konteyneriga avtomatik ravishda yuklaydi. Esda tutingki, Enterprise Trust konteyneri ishonchli anker konteyneri emas - uning tarkibi sukut bo'yicha mutlaq ishonch deb hisoblanmaydi.
CTL va uning tarkibidagi ma'lumotlar ishonchli deb hisoblanishi uchun CTL imzolagan sertifikat haqiqiy bo'lishi kerak. Shuning uchun ushbu sertifikat yuqorida muhokama qilingan barcha parametrlarni (raqamli imzo, ishonch munosabatlari parametrlari, vaqt parametrlari, sertifikatni bekor qilish to'g'risidagi ma'lumot va format parametrlari) taqqoslash tartiblari bo'yicha tekshirish talablariga to'liq javob berishi kerak. Muvaffaqiyatli raqamli imzoni tekshirish CTL sertifikatiga imzo qo'yish uchun ishlatilgan sertifikat zanjirida Ishonchli Ildiz Sertifikatlash Vakolatxonalari konteyneridan sertifikat mavjudligi bilan kafolatlanadi. Yuqorida muhokama qilinganidek, sertifikat zanjiri haqiqiy CTL tarkibiga kiradimi yoki yo'qligini aniqlashingiz mumkin, bu sertifikat xususiyatlari oynasida Sertifikat yo'li yorlig'ini ishlatib zanjirdagi har bir sertifikatni ko'rish mumkin.
Kross-sertifikatlar zanjiriga ishlov berish.
Xoch-sertifikatlash - bu Windows 2003 PKI-da joriy qilingan yangi ishonch qobiliyatidir (qo'shimcha ma'lumot olish uchun PKI ishonch tamoyillarini qanday ko'ring). CTL-lardan farqli o'laroq, kross-sertifikatlash turli markaziy infratuzilmalar o'rtasida PKI donalarini o'rnatishga imkon beradi. Turli tashkilotlarning infratuzilmasining tarkibiy qismi bo'lgan ikkita CA o'rtasida o'zaro aloqa o'rnatilganda, ushbu CAlarning har biri bir vaqtning o'zida ota-ona va bo'ysunuvchiga aylanadi va sertifikat zanjirlarini yaratish jarayonida juda qiziqarli effektlar kuzatiladi.
11-rasmda sertifikatlararo o'zaro ishonchlar qanday ishlashi va bu sertifikatlar xususiyatlariga qanday ta'sir qilishi ko'rsatilgan.
Quyidagi Python kodida OpenSSL kutubxonasini o'rnatish, sertifikat yaratish va tekshirish jarayonlarini ifodalovchi funktsiyalar yaratish, sertifikat yaratish va tekshirish uchun dastur boshqaruvchi funktsiyani yaratish, foydalanuvchidan ma'lumotlarni olish va sertifikat yaratish va tekshirish funktsiyalarini chaqirish, yaratilgan sertifikatlarni fayllarga yozish va ekranga chiqarish amallari amalga oshirilgan:
import OpenSSL
from OpenSSL import crypto
def create_certificate(subject_name, issuer_name, valid_days):
# Sertifikat obyektini yaratish
certificate = crypto.X509()
# Sertifikatning asosiy ma'lumotlarini to'ldirish
certificate.get_subject().CN = subject_name
certificate.set_serial_number(1000)
certificate.gmtime_adj_notBefore(0)
certificate.gmtime_adj_notAfter(valid_days * 24 * 60 * 60)
# Taqdim etuvchi sertifikatni yaratish
issuer_cert = crypto.X509()
issuer_cert.get_subject().CN = issuer_name
# Asosiy kalit va kalit joylashuvini yaratish
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
certificate.set_pubkey(key)
certificate.set_issuer(issuer_cert.get_subject())
# Sertifikatni imzolash
certificate.sign(key, 'sha256')
return certificate
def verify_certificate(certificate, ca_certificate):
# Sertifikatni tekshirish
store = crypto.X509Store()
store.add_cert(ca_certificate)
store_ctx = crypto.X509StoreContext(store, certificate)
store_ctx.verify_certificate()
return store_ctx.get_error() == 0
def main():
# Foydalanuvchidan ma'lumotlarni olish
subject_name = input("Iltimos, sertifikatning Umumiy Ismini kiriting: ")
issuer_name = input("Iltimos, taqdim etuvchining Ismini kiriting: ")
valid_days = int(input("Iltimos, sertifikatning amal qilish muddatini kundalarda kiriting: "))
# Sertifikat yaratish
certificate = create_certificate(subject_name, issuer_name, valid_days)
# Sertifikatni tekshirish
ca_certificate = create_certificate("CA", "CA", 3650) # Taqdim etuvchi sertifikat (CA sertifikati) o'rniga o'zingizning kerakli sertifikatingizni kiriting
is_valid = verify_certificate(certificate, ca_certificate)
# Sertifikatni faylga saqlash
with open("sertifikat.crt", "wb") as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, certificate))
# Sertifikatni ekranga chiqarish
print("Yaratilgan sertifikat:")
print(crypto.dump_certificate(crypto.FILETYPE_TEXT, certificate).decode())
# Sertifikatning tekshirish natijas
Quyidagi funksiyalarni tushuntirib beraman:
1. `main()`: Bu funktsiya dastur boshqaruvchisidir. U foydalanuvchidan sertifikatning Umumiy Ismini, taqdim etuvchining Ismini va amal qilish muddatini olish uchun so'rovnoma chiqaradi. Keyin `create_certificate()` va `verify_certificate()` funksiyalarini chaqirib, sertifikatni yaratadi va tekshiradi. So'ng sertifikatni faylga saqlab, ekranga chiqaradi.
2. `verify_certificate(certificate, ca_certificate)`: Bu funktsiya sertifikatni tekshirish uchun ishlatiladi. U berilgan sertifikatni va taqdim etuvchi sertifikatini (CA sertifikati) parametr sifatida qabul qiladi. Funktsiya sertifikatni OpenSSL kutubxonasidagi `X509Store` va `X509StoreContext` obyektlari yordamida tekshiradi. Tekshirish natijasini xato kodi (error code) yordamida aniqlaydi va `True` yoki `False` qiymatini qaytaradi.
3. `create_certificate(subject_name, issuer_name, valid_days)`: Bu funktsiya sertifikat yaratish uchun ishlatiladi. U sertifikatning Umumiy Ismini, taqdim etuvchining Ismini va amal qilish muddatini parametr sifatida qabul qiladi. Funktsiya OpenSSL kutubxonasidagi `X509` obyektini yaratadi va sertifikatning asosiy ma'lumotlarini to'ldiradi. Asosiy kalit va kalit joylashuvini yaratadi, taqdim etuvchi sertifikatini tuzadi va sertifikatni imzolaydi. Natijada yaratilgan sertifikatni qaytaradi.
Ushbu funksiyalar sizga sertifikat yaratish, tekshirish va dastur boshqarish imkonini beradi. Siz kerakli ma'lumotlarni kiritganingizdan so'ng `main()` funktsiyasini chaqirib dasturni ishga tushirishingiz mumkin.
Quyidagi kodlar orqali sertifikatlarni fayllarga yozish va ekranga chiqarishni amalga oshirishingiz mumkin:
import OpenSSL
from OpenSSL import crypto
def create_certificate(subject_name, issuer_name, valid_days):
# Sertifikat obyektini yaratish
certificate = crypto.X509()
# Sertifikatning asosiy ma'lumotlarini to'ldirish
certificate.get_subject().CN = subject_name
certificate.set_serial_number(1000)
certificate.gmtime_adj_notBefore(0)
certificate.gmtime_adj_notAfter(valid_days * 24 * 60 * 60)
# Taqdim etuvchi sertifikatni yaratish
issuer_cert = crypto.X509()
issuer_cert.get_subject().CN = issuer_name
# Asosiy kalit va kalit joylashuvini yaratish
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)
certificate.set_pubkey(key)
certificate.set_issuer(issuer_cert.get_subject())
# Sertifikatni imzolash
certificate.sign(key, 'sha256')
return certificate
def save_certificate_to_file(certificate, file_name):
# Sertifikatni faylga saqlash
with open(file_name, "wb") as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, certificate))
def print_certificate(certificate):
# Sertifikatni ekranga chiqarish
print("Yaratilgan sertifikat:")
print(crypto.dump_certificate(crypto.FILETYPE_TEXT, certificate).decode())
def main():
# Foydalanuvchidan ma'lumotlarni olish
subject_name = input("Iltimos, sertifikatning Umumiy Ismini kiriting: ")
issuer_name = input("Iltimos, taqdim etuvchining Ismini kiriting: ")
valid_days = int(input("Iltimos, sertifikatning amal qilish muddatini kundalarda kiriting: "))
# Sertifikat yaratish
certificate = create_certificate(subject_name, issuer_name, valid_days)
# Sertifikatni faylga saqlash
save_certificate_to_file(certificate, "sertifikat.crt")
# Sertifikatni ekranga chiqarish
print_certificate(certificate)
main()
Ushbu kodlar sertifikatni save_certificate_to_file() funktsiyasi yordamida "sertifikat.crt" nomli faylga saqlaydi va sertifikatni print_certificate() funktsiyasi orqali ekranga chiqaradi. main() funktsiyasini chaqirganingizda, foydalanuvchidan ma'lumotlarni olish, sertifikatni yaratish, saqlash va ekranga chiqarish jarayonlari amalga oshiriladi.
Quyidagi funksiyalarni tushuntirib beraman:
1. `create_certificate(subject_name, issuer_name, valid_days)`: Bu funktsiya sertifikat yaratish uchun ishlatiladi. U sertifikatning Umumiy Ismini, taqdim etuvchining Ismini va amal qilish muddatini parametr sifatida qabul qiladi. Funktsiya OpenSSL kutubxonasidagi `crypto.X509()` obyektini yaratadi va sertifikatning asosiy ma'lumotlarini to'ldiradi. Asosiy kalit va kalit joylashuvini yaratadi, taqdim etuvchi sertifikatini tuzadi va sertifikatni imzolaydi. Natijada yaratilgan sertifikatni qaytaradi.
2. `save_certificate_to_file(certificate, file_name)`: Bu funktsiya sertifikatni faylga saqlash uchun ishlatiladi. U sertifikatni va fayl nomini parametr sifatida qabul qiladi. Funktsiya OpenSSL kutubxonasidagi `crypto.dump_certificate()` metodidan foydalanib, sertifikatni faylga saqlayadi.
3. `print_certificate(certificate)`: Bu funktsiya sertifikatni ekranga chiqarish uchun ishlatiladi. U sertifikatni parametr sifatida qabul qiladi va OpenSSL kutubxonasidagi `crypto.dump_certificate()` metodidan foydalanib, sertifikatni matn ko'rinishida ekranga chiqaradi.
4. `main()`: Bu funktsiya dastur boshqaruvchisidir. U foydalanuvchidan sertifikatning Umumiy Ismini, taqdim etuvchining Ismini va amal qilish muddatini olish uchun so'rovnoma chiqaradi. Keyin `create_certificate()` funksiyasini chaqirib sertifikatni yaratadi. So'ng fayl nomini va yaratilgan sertifikatni `save_certificate_to_file()` funktsiyasiga uzatib, sertifikatni faylga saqlayadi. So'ng `print_certificate()` funktsiyasini chaqirib, sertifikatni ekranga chiqaradi.
Ushbu funksiyalar sizga sertifikat yaratish, faylga saqlash, ekranga chiqarish va dastur boshqarish imkonini beradi. Siz `main()` funktsiyasini chaqirib dasturni ishga tushirishingiz mumkin.
Kurs ishini yakunlash:
a. Olingan natijalarni va javoblarni ko'rib chiqish:
Kurs ishi davomida olingan natijalar va javoblar yaratgan dastur yoki kodning o'ziga xosligiga bog'liq bo'ladi. Bu o'zingizning yaratgan dasturingizga, kodingizga yoki amalga oshirgan vazifalarga asoslanadi. Sizning yaratgan kodingizga aloqador natijalar va javoblar mavjud bo'lishi lozim.
b. Sertifikatlarni amalga oshirish va tekshirish jarayonlarini tahlil qilish:
Kurs ishi davomida sertifikatlarni amalga oshirish va tekshirish jarayonlarini o'rganishingiz yoki yaratgan dasturda amalga oshirganingiz lozim. Sertifikatlarni yaratish, imzolash, tasdiqlash, fayllarga saqlash va tekshirishning to'liq jarayonlarini tahlil qilishingiz, ulardagi muhim nuqtalarga e'tibor qilishingiz kerak. Olingan natijalar bilan sertifikatlarni to'liqroq amalga oshirish va tekshirish jarayonlarini tahlil qilish yordamida siz o'z bilimlaringizni oshirib, ustamaqchilik qobiliyatlarini rivojlantirishingiz mumkin.
c. Qo'shimcha maslahatlar va ko'rsatmalar berish:
- Sertifikat yaratish va tekshirish jarayonlarida OpenSSL kutubxonasidan foydalanishingiz tavsiya etiladi. OpenSSL dokumentatsiyasini o'qishing va mavjud manbalardan foydalanishingiz yaxshi bo'ladi.
- Sertifikat yaratish uchun ma'lumotlarni to'g'ri va to'la kiritishingizga e'tibor qiling.
- Amalga oshirish va tekshirish jarayonlarini qadam-po'adam tekshirib chiqing va muhim nuqtalardan foydalaning.
- Sertifikatlarni saqlash uchun maxsus direktoriyalar yaratishni tavsiya qilamiz.
- Sertifikatlarning maxfiy kalitlari va shaxsiy ma'lumotlari himoyalangan holda saqlanishiga e'tibor qiling.
- Sertifikatlarni tekshirish jarayonlarini avtomatlashtirishga intilishingiz mumkin. Bu uchun skriptlar yoki dasturlar yaratish va otomatik tekshirish jarayonlarini amalga oshirish mumkin.
Ushbu maslahatlar va ko'rsatmalar sizga kurs ishini yakunlashda yordam berishi mumkin. Chunki har bir dastur yoki vazifa o'ziga xosliklarga ega bo'lishi mumkin, shuning uchun batafsil tahlil qilish va yo'llanmalardan foydalanish foydali bo'ladi.
Foydalanilgan adabiyotlar:
1. "Network Security with OpenSSL" - Jake Edge, Eric Rescorla
2. "OpenSSL Cookbook" - Ivan Ristic
3. "Implementing SSL / TLS Using Cryptography and PKI" - Joshua Davies
4. "OpenSSL: Tips and Tricks" - Ivan Ristic
Internet manbalari:
(https://www.openssl.org/)
(https://cryptography.io/)
(https://www.feistyduck.com/library/openssl-cookbook/)
(https://www.feistyduck.com/books/openssl-cookbook/)
Do'stlaringiz bilan baham: |