বেশিরভাগ উইন্ডোজ প্রশাসক, যারা PKI এর সাথে পরিচিত, তারা MakeCert.exe
সম্পর্কে জানেন টুল, যা একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে দেয়। এই টুলটি Microsoft .NET Framework SDK এবং Microsoft Windows SDK-এর অংশ। আধুনিক Windows সংস্করণে (Windows 10/8.1 এবং Windows Server 2019/2016/2012R2) আপনি বিল্ট-ইন PowerShell cmdlet New-SelfSigned Certificate
ব্যবহার করে একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে পারেন অতিরিক্ত সরঞ্জাম ব্যবহার না করে।
একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে নতুন-স্বাক্ষরিত শংসাপত্র পাওয়ারশেল সিএমডিলেট ব্যবহার করে
PowerShell এর সাথে একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে, আপনি নতুন-স্বাক্ষরিত শংসাপত্র ব্যবহার করতে পারেন cmdlet, যা PoSh PKI এর একটি অংশ (পাবলিক কী অবকাঠামো) মডিউল:
PKI মডিউলে সমস্ত উপলব্ধ cmdlet তালিকাভুক্ত করতে, কমান্ডটি চালান।
গেট-কমান্ড -মডিউল PKI
পরীক্ষার উদ্দেশ্যে স্ব-স্বাক্ষরিত শংসাপত্রগুলি ব্যবহার করার বা অভ্যন্তরীণ ইন্ট্রানেট পরিষেবাগুলির (IIS, Exchange, Web Application Proxy, LDAPS, ADRMS, DirectAccess, ইত্যাদি) সার্টিফিকেট প্রদান করার পরামর্শ দেওয়া হয় যদি আপনি PKI/CA পরিকাঠামো স্থাপন করতে না পারেন বা একটি বিশ্বস্ত ক্রয় করতে পারেন একটি বহিরাগত প্রদানকারী থেকে শংসাপত্র।
টিপ . ভুলে যাবেন না যে আপনি সহজেই লেটস এনক্রিপ্ট থেকে একটি বিনামূল্যের SSL শংসাপত্র পেতে পারেন। লেটস এনক্রিপ্ট এসএসএল সার্টিফিকেট কীভাবে ইস্যু করা যায় এবং উইন্ডোজ সার্ভারে আইআইএস সাইটে এটি আবদ্ধ করা যায় তার একটি উদাহরণ এখানে রয়েছে।একটি শংসাপত্র তৈরি করতে, আপনাকে –DnsName-এর মানগুলি নির্দিষ্ট করতে হবে৷ (একটি সার্ভারের নাম, নামটি স্বেচ্ছাচারী এবং স্থানীয় হোস্ট নামের থেকে আলাদা হতে পারে) এবং -CertStoreLocation (একটি স্থানীয় শংসাপত্রের দোকান যেখানে উত্পন্ন শংসাপত্র স্থাপন করা হবে)। আপনি Windows 10 (এই উদাহরণে), Windows 8.1 এবং Windows Server 2019/2016/ 2012 R2 /2012-এ একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করতে cmdlet ব্যবহার করতে পারেন।
DNS নামের test.contoso.com (একটি FQDN নাম ব্যবহার করুন) এর জন্য একটি নতুন SSL শংসাপত্র (ডিফল্ট SSLServer প্রমাণীকরণ প্রকারের) তৈরি করতে এবং এটিকে একটি কম্পিউটারে ব্যক্তিগত শংসাপত্রের তালিকায় রাখতে, নিম্নলিখিত কমান্ডটি চালান:
New-SelfSigned Certificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My
ডিরেক্টরি:Microsoft.PowerShell.Security\Certificate::LocalMachine\MyThumbprint বিষয়--------- -------2175A76B10F843676951965F52A718F635FFA043 যদি আপনি এই কমান্ডটি অ-উন্নত পাওয়ারশেল সেশনে চালান (স্থানীয় প্রশাসক অনুমতি ছাড়া), একটি ত্রুটি প্রদর্শিত হবে:নতুন-স্বাক্ষরিত শংসাপত্র :CertEnroll::CX509Enrollment::_CreateRequest:অ্যাক্সেস অস্বীকৃত। 0x80090010 (-2146893808 NTE_PERM)আপনি যদি অ-মানক ক্রিপ্টোগ্রাফিক প্রদানকারী (CSP) নির্দিষ্ট করে থাকেন, উদাহরণস্বরূপ,
-KeyAlgorithm "ECDSA_secP256r1" -প্রদানকারী "Microsoft Smart Card Key Storage Provider"
ব্যবহার করে প্যারামিটার, নিশ্চিত করুন যে এটি আপনার কম্পিউটারে ইনস্টল করা আছে (ডিফল্ট হল Microsoft Enhanced Cryptographic Provider CSP)। অন্যথায়, একটি ত্রুটি প্রদর্শিত হবে:নতুন-স্বাক্ষরিত শংসাপত্র:CertEnroll::CX509Enrollment::_CreateRequest:প্রদানকারীর ধরন সংজ্ঞায়িত করা হয়নি। 0x80090017 (-2146893801 NTE_PROV_TYPE_NOT_DEF)।
এই কমান্ডটি একটি নতুন শংসাপত্র তৈরি করে এবং এটি কম্পিউটারের ব্যক্তিগত শংসাপত্রের দোকানে আমদানি করে। certlm.msc খুলুন MMC স্ন্যাপ-ইন, নিশ্চিত করুন যে একটি নতুন শংসাপত্র ব্যক্তিগত-এ উপস্থিত হয় সার্টিফিকেট স্টোরের বিভাগ।
ডিফল্টরূপে, একটি স্ব-স্বাক্ষরিত শংসাপত্র নিম্নলিখিত সেটিংসের সাথে তৈরি করা হয়:
- ক্রিপ্টোগ্রাফিক অ্যালগরিদম: RSA;
- কী দৈর্ঘ্য:2048 বিট;
- গ্রহণযোগ্য কী ব্যবহার: ক্লায়েন্ট প্রমাণীকরণ এবং সার্ভার প্রমাণীকরণ;
- শংসাপত্রটি এর জন্য ব্যবহার করা যেতে পারে: ডিজিটাল স্বাক্ষর , কী এনসিফারমেন্ট;
- শংসাপত্রের মেয়াদকাল:1 বছর .
Get-ChildItem cmdlet ব্যবহার করে, আপনি তৈরি করা শংসাপত্রের সমস্ত পরামিতি এর থাম্বপ্রিন্ট দ্বারা প্রদর্শন করতে পারেন:
Get-ChildItem -Path "Cert:\LocalMachine\My" | কোথায়-অবজেক্ট থাম্বপ্রিন্ট -eq 2175A76B10F843676951965F52A718F635FFA043 | সিলেক্ট-অবজেক্ট*
PSPath:Microsoft.PowerShell.Security \ সার্টিফিকেট ::LocalMachine \ আমার \ 2175A76B10F843676951965F52A718F635FFA043PSParentPath:Microsoft.PowerShell.Security \ সার্টিফিকেট ::LocalMachine \ MyPSChildName:2175A76B10F843676951965F52A718F635FFA043PSDrive:CertPSProvider:Microsoft.PowerShell.Security \ CertificatePSIsContainer:FalseEnhancedKeyUsageList:{ক্লায়েন্ট প্রমাণীকরণ (1.3.6.1.5.5.7.3.2), সার্ভার প্রমাণীকরণ (1.3.6.1.5.5.7.3.1)}DnsNameList :{test.contoso.com}SendAsTrustedIssuer :FalseEnrollmentPolicyEndPoint.Microsoft Point .Commands.EnrollmentEndPointPropertyPolicyId :সংরক্ষিত :FalseExtensions :{System.Security.Cryptography.Oid, System.Security.Cryptography.Oid,System.Security.Cryptography.Oid, System.Cecurity.Cryptography.Oid phy.oid} বন্ধন নাম:Issuername:System.security.cryptography.x509Certifates.x500DistinguishnotaTafter:05/11/2021 06:19:42NotThoreForFFore:05/11/2020 05:59:42 হ্যাস্রিপিটিকি:সত্য privatekey:Publickey:System.Security.Cryptography। X509Certificates.PublicKeyRawData:{48, 130, 3, 45 ...} SERIALNUMBER:6797F5E3F870478D4D3798BEB291DBF3SubjectName:System.Security.Cryptography.X509Certificates.X500DistinguishedNameSignatureAlgorithm:System.Security.Cryptography.OidThumbprint:2175A76B10F843676951965F52A718F635FFA043Version:3Handle:2834444631568Issuer:সিএন =test.contoso। comবিষয় :CN=test.contoso.comদ্রষ্টব্য . এই ধরনের একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরির তারিখ থেকে 1 বছরের মধ্যে মেয়াদ শেষ হবে। আপনি –NotAfter ব্যবহার করে একটি ভিন্ন শংসাপত্রের বৈধতা সময়কাল সেট করতে পারেন৷ বিকল্প উদাহরণস্বরূপ, আপনি নিম্নলিখিত কমান্ডগুলির সাথে তিন বছরের মেয়াদের একটি SSL/TLS শংসাপত্র ইস্যু করতে পারেন:
$todaydt =Get-তারিখ
$3years =$todaydt.AddYears(3)
New-SelfSigned Certificate -dnsname test.contoso.com -notafter $3years -CertStoreLocation cert:\LocalMachine\My
আপনি একটি শংসাপত্র চেইন তৈরি করতে পারেন। প্রথমে একটি রুট সার্টিফিকেট (CA) তৈরি করা হয় এবং এর উপর ভিত্তি করে একটি SSL সার্ভার সার্টিফিকেট তৈরি করা হয়:
$rootCert =New-SelfSigned Certificate -Subject 'CN=TestRootCA,O=TestRootCA,OU=TestRootCA' -KeyExportPolicy রপ্তানিযোগ্য -KeyUsage CertSign,CRLSign,DigitalSignature -KeyLength2'-KeyLength'-All-KeyLength'-অ্যালগোরিথ'-অ্যালগরিথ'-অ্যালগরিথ' -প্রদানকারী 'Microsoft Enhanced RSA এবং AES Cryptographic Provider'
New-SelfSigned Certificate -CertStoreLocation cert:\LocalMachine\My -DnsName "test2.contoso.com" -Signer $rootCert-Keignal-Keyn
একটি পাসওয়ার্ড-সুরক্ষিত PFX ফাইলে একটি ব্যক্তিগত কী সহ জেনারেট করা শংসাপত্রটি রপ্তানি করতে, আপনাকে এটির থাম্বপ্রিন্ট নির্দিষ্ট করতে হবে। এটি New-SelfSigned Certificate কমান্ডের ফলাফল থেকে অনুলিপি করা যেতে পারে। এছাড়াও আপনাকে সার্টিফিকেট নিরাপত্তা পাসওয়ার্ড নির্দিষ্ট করতে হবে এবং এটিকে SecureString ফরম্যাটে রূপান্তর করতে হবে:
$CertPassword =ConvertTo-SecureString -String "YourPassword" -Force –AsPlainText
Export-PfxCertificate -Cert cert:\LocalMachine\My\2779C7928D055B21F26ABassword C7928D055B21F26ABassword -Cap26Asb3Cbestword>
সার্টিফিকেট পাবলিক কী নিম্নরূপ রপ্তানি করা যেতে পারে:
রপ্তানি-শংসাপত্র -Cert Cert:\LocalMachine\My\2779C7928D055B21AAA0Cfe2F6BE1A5C2CA83B30 -FilePath C:\tstcert.cer
নিশ্চিত করুন যে *.cer (PFX) সার্টিফিকেট ফাইলটি নির্দিষ্ট ডিরেক্টরিতে প্রদর্শিত হচ্ছে। আপনি যদি এটিতে ডান-ক্লিক করেন এবং “শংসাপত্র ইনস্টল করুন নির্বাচন করুন৷ ” মেনু আইটেম, আপনি শংসাপত্র আমদানি উইজার্ড ব্যবহার করতে পারেন৷ আপনার কম্পিউটারে বিশ্বস্ত রুট শংসাপত্রে শংসাপত্র যোগ করতে।
শংসাপত্র দোকান অবস্থান নির্বাচন করুন -> স্থানীয় মেশিন , নিম্নলিখিত দোকানে সমস্ত শংসাপত্র রাখুন -> বিশ্বস্ত রুট সার্টিফিকেশন কর্তৃপক্ষ .
$SelfSignCert=New-SelfSignedCertificate…..
$certFile =রপ্তানি-শংসাপত্র -সার্টিফিকেট $SelfSignCert -FilePath C:\ps\export-certname.cer
Import-certificate -CertStoreLocation Cert:\LocalMachine\AuthRoot -FilePath $certFile.FullName
এই সর্বজনীন কী বা শংসাপত্র ফাইলটি নিজেই GPO ব্যবহার করে সক্রিয় ডিরেক্টরি ডোমেনের সমস্ত কম্পিউটার এবং সার্ভারে স্থাপন করা যেতে পারে (জিপিও ব্যবহার করে ডোমেন কম্পিউটারে শংসাপত্র কীভাবে স্থাপন করবেন?)।
বিষয় বিকল্প নাম সহ একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন
New-SelfSignedCertificate cmdlet-এর একটি দরকারী বৈশিষ্ট্য হল বিভিন্ন নাম সহ একটি শংসাপত্র তৈরি করার ক্ষমতা, সাবজেক্ট অল্টারনেটিভ নেমস (SAN) .
দ্রষ্টব্য .Makecert.exe
টুল, New-SelfSigned Certificate cmdlet এর বিপরীতে, SAN এবং Wildcard সার্টিফিকেট তৈরি করতে পারে না। আপনি যদি একাধিক নামের একটি শংসাপত্র তৈরি করতে চান তবে DnsName প্যারামিটারের প্রথম নামটি শংসাপত্রের CN (সাধারণ নাম) হিসাবে ব্যবহার করা হবে। উদাহরণস্বরূপ, আসুন নিম্নলিখিত নামগুলি সহ একটি স্ব-স্বাক্ষরিত SAN শংসাপত্র তৈরি করি:
- বিষয়ের নাম (CN):adfs1.contoso.com
- বিষয় বিকল্প নাম (DNS):web_gw.contoso.com
- বিষয় বিকল্প নাম (DNS):enterprise_reg.contoso.com
একটি শংসাপত্র তৈরি করার জন্য কমান্ডটি এইরকম দেখাবে:
New-SelfSigned Certificate -DnsName adfs1.contoso.com,web_gw.contoso.com,enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My
এছাড়াও, আপনি একটি ওয়াইল্ডকার্ডও তৈরি করতে পারেন৷ পুরো ডোমেন নামস্থানের জন্য শংসাপত্র। এটি করতে, *.contoso.com উল্লেখ করুন সার্ভারের নাম হিসাবে।
New-SelfSigned Certificate -certstorelocation cert:\localmachine\my -dnsname *.contoso.com
উইন্ডোজে কোড সাইনিংয়ের জন্য একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন
PoweShell 3.0-এ, New-SelfSifgnedCertificate cmdlet শুধুমাত্র SSL সার্টিফিকেট তৈরি করে যা ড্রাইভার, অ্যাপ্লিকেশন বা স্ক্রিপ্ট কোড স্বাক্ষর করতে ব্যবহার করা যায় না (MakeCert ইউটিলিটি দ্বারা তৈরি শংসাপত্রের বিপরীতে)।
PowerShell সংস্করণ 5.0 এবং পরবর্তীতে, New-SelfSifgnedCertificate cmdlet-এর একটি নতুন সংস্করণ এখন কোড সাইনিং ইস্যু করতে ব্যবহার করা যেতে পারে সার্টিফিকেট।
একটি স্ব-স্বাক্ষরিত অ্যাপ্লিকেশন কোড স্বাক্ষর শংসাপত্র তৈরি করতে, কমান্ডটি চালান:
$cert =নতুন-স্বাক্ষরিত শংসাপত্র -বিষয় "আমার কোড সাইনিং সার্টিফিকেট" -টাইপ কোড সাইনিং সার্টি -CertStoreLocation cert:\LocalMachine\My
এখন আপনি একটি স্ব-স্বাক্ষরিত শংসাপত্রের সাথে আপনার পাওয়ারশেল স্ক্রিপ্টে স্বাক্ষর করতে পারেন:
Set-AuthenticodeSignature -FilePath C:\PS\my_posh_script.ps1 -শংসাপত্র $cert
আপনি যদি একটি অজানা ত্রুটি পেয়ে থাকেন কমান্ড কার্যকর করার সময় সতর্কতা, এর মানে হল শংসাপত্রটি বিশ্বস্ত নয়, কারণ এটি ব্যবহারকারীর ব্যক্তিগত শংসাপত্রের দোকানে অবস্থিত৷
আপনাকে এটিকে বিশ্বস্ত রুট সার্টিফিকেট স্টোরে নিয়ে যেতে হবে (অবিশ্বস্ত এবং সন্দেহজনক শংসাপত্রের জন্য পর্যায়ক্রমে Windows শংসাপত্র রুট স্টোর স্ক্যান করতে ভুলবেন না এবং বিশ্বস্ত রুট শংসাপত্রের তালিকা আপডেট করুন)।
মুভ-আইটেম -পথ $cert.PSPath -গন্তব্য "Cert:\CurrentUser\Root"
এর পরে, আপনি এই স্ব-স্বাক্ষরিত শংসাপত্রের সাথে আপনার PowerShell স্ক্রিপ্টে স্বাক্ষর করতে পারেন৷
Windows সার্ভার IIS-এ IIS-এ SHA-256 স্ব-স্বাক্ষরিত SSL সার্টিফিকেট ব্যবহার করা
ইন্টারনেট ইনফরমেশন ম্যানেজার কনসোলের মাধ্যমে IIS-এর জন্য একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করার সময় অনুগ্রহ করে মনে রাখবেন (স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করুন কর্ম মেনু আইটেম), SHA-1 এনক্রিপশন অ্যালগরিদম ব্যবহার করে একটি SSL শংসাপত্র তৈরি করা হয়। এই ধরনের শংসাপত্রগুলি অনেক ব্রাউজার দ্বারা অবিশ্বস্ত বলে বিবেচিত হয় এবং একটি নিরাপদ সংযোগ স্থাপন করতে ব্যবহার করা যায় না (অথবা আপনি অন্যান্য SSL ত্রুটিগুলি দেখতে পারেন)৷ New-SelfSigned Certificate cmdlet আপনাকে SHA-256 এনক্রিপশন অ্যালগরিদম ব্যবহার করে আরও জনপ্রিয় ধরনের শংসাপত্র তৈরি করতে দেয়৷
আপনি একটি স্ব-স্বাক্ষরিত SHA-256 শংসাপত্র PowerShell দিয়ে উত্পন্ন Windows সার্ভারে একটি IIS সাইটে আবদ্ধ করতে পারেন৷ আপনি যদি PowerShell ব্যবহার করে একটি SSL শংসাপত্র তৈরি করেন এবং এটি কম্পিউটারের শংসাপত্রের দোকানে রাখেন, তাহলে এটি স্বয়ংক্রিয়ভাবে IIS সাইটগুলিতে উপলব্ধ হবে৷
IIS ম্যানেজার কনসোল শুরু করুন, আপনার সাইট নির্বাচন করুন এবং তারপর সাইট বাইন্ডিং-এ বিকল্প, আপনার তৈরি শংসাপত্র নির্বাচন করুন এবং আপনার পরিবর্তনগুলি সংরক্ষণ করুন৷