আমি কীভাবে উইন্ডোজ এসডিকে থেকে সরঞ্জাম ব্যবহার করে কোড স্বাক্ষরের জন্য স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করব?
আমি কীভাবে উইন্ডোজ এসডিকে থেকে সরঞ্জাম ব্যবহার করে কোড স্বাক্ষরের জন্য স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করব?
উত্তর:
আপনি যদি নিম্নলিখিত উইন্ডোজ সংস্করণগুলি বা তার পরে ব্যবহার করে থাকেন: উইন্ডোজ সার্ভার 2012, উইন্ডোজ সার্ভার 2012 আর 2, বা উইন্ডোজ 8.1 তবে মেককার্ট এখন হ্রাস পেয়েছে , এবং মাইক্রোসফ্ট পাওয়ারশেল সিএমডলেট নতুন-স্বতঃসংশ্লিষ্ট ব্যবহার করার পরামর্শ দিচ্ছে ।
যদি আপনি উইন্ডোজ 7 এর মতো কোনও পুরানো সংস্করণ ব্যবহার করেন তবে আপনাকে মেককার্ট বা অন্য কোনও সমাধানের সাথে আটকে থাকতে হবে। কিছু লোক পাবলিক কী ইনফ্রাস্ট্রাকচার পাওয়ারশেল (পিএসপিকেআই) মডিউলটির পরামর্শ দেয় ।
আপনি স্ব-স্বাক্ষরিত কোড-স্বাক্ষরকারী শংসাপত্র (এসপিসি - সফ্টওয়্যার প্রকাশক শংসাপত্র) তৈরি করতে পারার সময় ) তৈরি করতে গেলে, আমি নিম্নলিখিতগুলি করতে পছন্দ করি:
makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^
-a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer
(^ = ব্যাচ কমান্ড-লাইনকে মোড়ানো লাইনে অনুমতি দিন)
এটি রফতানিযোগ্য প্রাইভেট কী (-pe) সহ একটি স্ব-স্বাক্ষরিত (-r) শংসাপত্র তৈরি করে। এটির নাম "আমার সিএ", এবং বর্তমান ব্যবহারকারীর জন্য সিএ স্টোরে রাখা উচিত। আমরা SHA-256 ব্যবহার করছি অ্যালগরিদম । কীটি সাইন ইন করার জন্য বোঝায় (-স্কি)।
প্রাইভেট কীটি MyCA.pvk ফাইলে এবং মাইসিএ.এসার ফাইলে শংসাপত্র সংরক্ষণ করতে হবে।
সিএ সার্টিফিকেট থাকার কোনও কারণ নেই কারণ আপনি যদি এটির উপর বিশ্বাস না করেন, আপনাকে এটি উইন্ডোজ শংসাপত্রের দোকানে আমদানি করতে হবে। আপনি শংসাপত্রগুলি এমএমসি স্ন্যাপিন ব্যবহার করতে পারেন তবে কমান্ড লাইন থেকে:
certutil -user -addstore Root MyCA.cer
makecert -pe -n "CN=My SPC" -a sha256 -cy end ^
-sky signature ^
-ic MyCA.cer -iv MyCA.pvk ^
-sv MySPC.pvk MySPC.cer
এটি উপরের মতো বেশ একইরকম, তবে আমরা একটি জারি কী এবং শংসাপত্র সরবরাহ করছি (-ic এবং -iv স্যুইচ)।
আমরা শংসাপত্র এবং কীটিকে একটি পিএফএক্স ফাইলে রূপান্তর করতে চাই:
pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx
আপনি যদি পিএফএক্স ফাইলটি সুরক্ষিত করতে চান তবে -পো সুইচ যুক্ত করুন, অন্যথায় পিভিকে ২ পিএফএক্স কোনও পাসফ্রেজ ছাড়াই একটি পিএফএক্স ফাইল তৈরি করে।
signtool sign /v /f MySPC.pfx ^
/t http://timestamp.url MyExecutable.exe
( কেন টাইমস্ট্যাম্পগুলি গুরুত্বপূর্ণ হতে পারে দেখুন )
আপনি যদি সার্টিফিকেট স্টোরে পিএফএক্স ফাইলটি আমদানি করেন (আপনি পিভিকেআইএমপিআরটি বা এমএমসি স্ন্যাপিন ব্যবহার করতে পারেন), আপনি নীচে কোড সাইন করতে পারেন:
signtool sign /v /n "Me" /s SPC ^
/t http://timestamp.url MyExecutable.exe
কিছু সম্ভাব্য টাইমস্ট্যাম্প ইউআরএল হ'ল signtool /t
:
http://timestamp.verisign.com/scripts/timstamp.dll
http://timestamp.globalsign.com/scripts/timstamp.dll
http://timestamp.comodoca.com/authenticode
যারা নেট নেট বিকাশকারী নয় তাদের জন্য আপনার উইন্ডোজ এসডিকে এবং। নেট ফ্রেমওয়ার্কের একটি অনুলিপি লাগবে। একটি বর্তমান লিঙ্ক এখানে উপলভ্য: SDK & .NET (যা মেকারেট ইনস্টল করে C:\Program Files\Microsoft SDKs\Windows\v7.1
)। আপনার মাইলেজ পরিবর্তিত হতে পারে.
মেককার্ট ভিজ্যুয়াল স্টুডিও কমান্ড প্রম্পট থেকে উপলব্ধ। ভিজ্যুয়াল স্টুডিও 2015 এর রয়েছে এবং এটি উইন্ডোজ 7-এর স্টার্ট মেনু থেকে "ভিএস 2015 এর জন্য বিকাশকারী কমান্ড প্রম্পট" বা "ভিএস2015 x64 নেটিভ সরঞ্জাম কমান্ড প্রম্পট" (সম্ভবত এটি সমস্ত একই ফোল্ডারে) এর অধীনে চালু করা যেতে পারে।
E=your@email
। উদাহরণস্বরূপ:makecert -pe -n "CN=My SPC,E=email@domain" ........
-eku 1.3.6.1.5.5.7.3.3
যাতে কোডটি স্বাক্ষর করার জন্য শংসাপত্রটি ব্যবহার করা যেতে পারে (আমি জানি পাওয়ারশেল এটি অনুপস্থিত থাকলে স্ক্রিপ্টগুলিতে স্বাক্ষর করতে ব্যর্থ হয়)
উত্তরে বর্ণিত হিসাবে, আপনার নিজের স্ক্রিপ্টে স্বাক্ষর করার জন্য অবহেলিত উপায় ব্যবহার করার জন্য, একটিতে নতুন-স্বাক্ষরিত সার্টিফিকেট ব্যবহার করা উচিত ।
New-SelfSignedCertificate -DnsName email@yourdomain.com -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My
Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt
[0] যখন আপনার একাধিক শংসাপত্র রয়েছে তখন ক্ষেত্রে এই কাজটি করা হবে ... অবশ্যই আপনি যে শংসাপত্রটি ব্যবহার করতে চান তার সাথে সূচীটি তৈরি করুন ... বা ফিল্টারেট করার একটি উপায় ব্যবহার করুন (থাম্বপ্রিন্ট বা ইস্যুকারী দ্বারা)।
Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher
Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\Root
Set-AuthenticodeSignature .\script.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)
স্পষ্টতই একবার আপনি কীটি সেটআপ করে নিলে আপনি এটির সাথে অন্য কোনও স্ক্রিপ্টগুলিতে সাইন ইন করতে পারেন।
আপনি এই নিবন্ধে আরও বিস্তারিত তথ্য এবং কিছু সমস্যা সমাধানের সহায়তা পেতে পারেন ।
(get-ChildItem ...)
একাধিক শংসাপত্র ফিরিয়ে দেওয়ার কারণে , তাই আমি শেষে "[0]" রেখেছি এবং এটি কার্যকর হয়েছে। হিসাবে হিসাবেExport-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt
রজারের উত্তরটি খুব সহায়ক ছিল।
যদিও এটি ব্যবহার করতে আমার একটু সমস্যা হয়েছিল, এবং লাল "উইন্ডোজ এই ড্রাইভার সফ্টওয়্যারটির প্রকাশককে যাচাই করতে পারে না" ত্রুটি কথোপকথনটি পেয়ে যেতে থাকি। কীটি ছিল পরীক্ষার মূল শংসাপত্রটি দিয়ে ইনস্টল করা
certutil -addstore Root Demo_CA.cer
যা রজারের উত্তরটি পুরোপুরি didn'tাকেনি।
এখানে একটি ব্যাচ ফাইল রয়েছে যা আমার জন্য কাজ করেছিল (আমার .inf ফাইল সহ, অন্তর্ভুক্ত নয়)। এটি দেখায় যে কীভাবে জিইআইআই সরঞ্জামগুলি নেই (কয়েকটি পাসওয়ার্ড প্রম্পট ব্যতীত) কোনও কিছুর শুরু থেকে শেষ পর্যন্ত কীভাবে এটি করা যায়।
REM Demo of signing a printer driver with a self-signed test certificate.
REM Run as administrator (else devcon won't be able to try installing the driver)
REM Use a single 'x' as the password for all certificates for simplicity.
PATH %PATH%;"c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin";"c:\Program Files\Microsoft SDKs\Windows\v7.0\Bin";c:\WinDDK\7600.16385.1\bin\selfsign;c:\WinDDK\7600.16385.1\Tools\devcon\amd64
makecert -r -pe -n "CN=Demo_CA" -ss CA -sr CurrentUser ^
-a sha256 -cy authority -sky signature ^
-sv Demo_CA.pvk Demo_CA.cer
makecert -pe -n "CN=Demo_SPC" -a sha256 -cy end ^
-sky signature ^
-ic Demo_CA.cer -iv Demo_CA.pvk ^
-sv Demo_SPC.pvk Demo_SPC.cer
pvk2pfx -pvk Demo_SPC.pvk -spc Demo_SPC.cer ^
-pfx Demo_SPC.pfx ^
-po x
inf2cat /drv:driver /os:XP_X86,Vista_X64,Vista_X86,7_X64,7_X86 /v
signtool sign /d "description" /du "www.yoyodyne.com" ^
/f Demo_SPC.pfx ^
/p x ^
/v driver\demoprinter.cat
certutil -addstore Root Demo_CA.cer
rem Needs administrator. If this command works, the driver is properly signed.
devcon install driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84F
rem Now uninstall the test driver and certificate.
devcon remove driver\demoprinter.inf LPTENUM\Yoyodyne_IndustriesDemoPrinter_F84F
certutil -delstore Root Demo_CA
পাওয়ারশেলের নিউ-সেল্ফসাইডার্টিফিট কমান্ডটি ব্যবহার করা মোটামুটি সহজ । পাওয়ারশেল খুলুন এবং এই 3 টি কমান্ড চালান।
1) শংসাপত্র তৈরি করুন :
t সার্টিট = নতুন স্ব-স্বাক্ষরিত সার্টিফিকেট - DnsName www.yourwebsite.com- টাইপ কোডসাইনিং -CertStoreLocation শংসাপত্র: \ কারেন্টউজার \ আমার2) এটির জন্য পাসওয়ার্ড সেট করুন :
t সার্টপ্যাসওয়ার্ড = কনভার্টটো-সিকিউরস্ট্রিং-স্ট্রিং "মাই_পাসওয়ার্ড" -ফর্স -এসপ্লেইনটেক্সট3) এটি রফতানি করুন :
এক্সপোর্ট-পিএফএক্সসিটিফিকেট-সার্ট "শংসাপত্র: \ কারেন্ট ইউজার \ মাই \ $ (t সার্টি। থাম্বপ্রিন্ট)" -ফিলিপথ "d: \ selfsigncert.pfx" -প্যাসওয়ার্ড $ সার্টপ্যাসওয়ার্ড
আপনার শংসাপত্র selfsigncert.pfx অবস্থিত হবে @D:/
Alচ্ছিক পদক্ষেপ: আপনাকে সিস্টেম পরিবেশের ভেরিয়েবলগুলিতে শংসাপত্রের পাসওয়ার্ড যুক্ত করতে হবে। নীচে সেন্টিমিডিতে প্রবেশ করে এটি করুন:setx CSC_KEY_PASSWORD "my_password"
পাওয়ারশেল ৪.০ (উইন্ডোজ ৮.১ / সার্ভার ২০১২ আর ২) মেকারসেট.এক্স.বিহীন উইন্ডোজে একটি শংসাপত্র তৈরি করা সম্ভব ।
কমান্ড আপনার যা দরকার হয় নিউ-SelfSignedCertificate এবং এক্সপোর্ট-PfxCertificate ।
পাওয়ারশেলের সাহায্যে স্ব স্বাক্ষরিত শংসাপত্র তৈরির নির্দেশনা রয়েছে ।