security যবহ উইন্ডোজ এ কোড সাইন করার জন্য আমি কিভাবে স্ব স্ব স্বাক্ষরিত শংসাপত্র তৈরি করব?




ওয়ার্ড প্রসেসর ব্যবহার করে নতুন ফাইল খোলা (4)

রজারের উত্তর খুব সহায়ক ছিল।

আমি এটি ব্যবহার করে একটু সমস্যা ছিল, এবং লাল পেয়েছিলাম "উইন্ডোজ এই ড্রাইভার সফ্টওয়্যার প্রকাশক যাচাই করতে পারে না" ত্রুটি সংলাপ। কী পরীক্ষা রুট শংসাপত্রটি ইনস্টল করা হয়েছিল

certutil -addstore Root Demo_CA.cer

যা রজার এর উত্তর বেশ কভার না।

এখানে একটি ব্যাচ ফাইল যা আমার জন্য কাজ করেছে (আমার .inf ফাইল সহ, অন্তর্ভুক্ত নয়)। এটি কোনও GUI সরঞ্জামগুলির সাথে শুরু না হওয়া পর্যন্ত শুরু থেকে শেষ পর্যন্ত কীভাবে করতে হয় তা দেখায় (কয়েকটি পাসওয়ার্ড অনুরোধ ছাড়া)।

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

উইন্ডোজ এসডিকে থেকে সরঞ্জামগুলি ব্যবহার করে কোড সাইনিংয়ের জন্য আমি কী স্ব স্ব স্বাক্ষরিত শংসাপত্র তৈরি করব?


Powershell এ New-SelfSignedCertificate কমান্ড ব্যবহার করে এটি বেশ সহজ। ওপেন পাওয়ারলেবল এবং এই 3 কমান্ড চালান।

1) সার্টিফিকেট তৈরি করুন :
$ সার্ট = নতুন স্ব-স্বাক্ষরিত সার্টিফিকেট -ডেননাম নাম www.yourwebsite.com-টাইপ কোড সাইন ইন - কার্টস্টোর অবস্থান শংসাপত্র: \ CurrentUser \ My

2) এর জন্য পাসওয়ার্ড সেট করুন :
$ CertPassword = রূপান্তর-সুরক্ষিত স্ট্রিং-স্ট্রিং "my_passowrd" -ফোর্স -এএসপ্লেনটেক্ট

3) এটি রপ্তানি করুন :
এক্সপোর্ট-পিএফএক্স সার্টিফিকেট- "সার্টিফিকেট: \ কারেন্টউসার \ আমার \ $ ($ সার্টিফিকেট। থাম্বপ্রিন্ট)" -ফাইলপথ "d: \ selfsigncert.pfx" -পাসওয়ার্ড $ সার্টপ্যাসওয়ার্ড

আপনার শংসাপত্র selfsigncert.pfx @ D:/

ঐচ্ছিক পদক্ষেপ: আপনাকে সিস্টেম পরিবেশের ভেরিয়েবলগুলিতে শংসাপত্রের পাসওয়ার্ড যোগ করার প্রয়োজন হবে। cmd এ নীচে প্রবেশ করে এটি করুন: setx CSC_KEY_PASSWORD "my_password"


উত্তর হিসাবে বর্ণিত, আপনার নিজস্ব স্ক্রিপ্ট সাইন করার জন্য একটি অপ্রচলিত উপায় ব্যবহার করার জন্য, একটি New-SelfSignedCertificate ব্যবহার করা উচিত।

  1. কী জেনারেট করুন:
    New-SelfSignedCertificate -DnsName [email protected] -Type CodeSigning -CertStoreLocation cert:\CurrentUser\My

  2. ব্যক্তিগত কী ছাড়া সার্টিফিকেট রপ্তানি করুন:
    Export-Certificate -Cert (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)[0] -FilePath code_signing.crt [0] আপনার একাধিক শংসাপত্রের ক্ষেত্রে এই কাজটি করা হবে ... স্পষ্টতই সূচক তৈরি করুন আপনি যে শংসাপত্রটি ব্যবহার করতে চান তা মিলান ... বা ফিল্টার করার উপায়টি ব্যবহার করুন (থমপ্রিন্ট বা ইস্যুকারীর দ্বারা)।

  3. বিশ্বস্ত প্রকাশক হিসাবে এটি আমদানি করুন
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\TrustedPublisher

  4. একটি রুট সার্টিফিকেট কর্তৃপক্ষ হিসাবে এটি আমদানি করুন।
    Import-Certificate -FilePath .\code_signing.crt -Cert Cert:\CurrentUser\Root

  5. স্ক্রিপ্ট সাইন ইন করুন।
    Set-AuthenticodeSignature .\script.ps1 -Certificate (Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert)

স্পষ্টত আপনি কী সেট আপ করার পরে, আপনি কেবল এটির সাথে অন্য কোন স্ক্রিপ্টগুলিতে সাইন ইন করতে পারেন।
আপনি এই নিবন্ধে আরো বিস্তারিত তথ্য এবং কিছু সমস্যা সমাধান সাহায্য পেতে পারেন।


আপডেট করা উত্তর

আপনি যদি নিম্নলিখিত উইন্ডোজ সংস্করণগুলি বা পরবর্তীতে ব্যবহার করছেন: উইন্ডোজ সার্ভার ২01২, উইন্ডোজ সার্ভার 2012 R2, বা উইন্ডোজ 8.1 তারপর ম্যাকক্রার্টটি এখন বাতিল করা হয়েছে , এবং মাইক্রোসফট পাওয়ারশেল সিএমডিলেট নতুন স্বাক্ষরিত সার্টিফিকেট ব্যবহার করার পরামর্শ দেয়

আপনি যদি উইন্ডোজ 7 এর মত একটি পুরোনো সংস্করণ ব্যবহার করেন, তবে আপনাকে ম্যাকক্রার্ট বা অন্য সমাধানটির সাথে আটকাতে হবে। কিছু মানুষ পাবলিক কী ইনফ্রাস্ট্রাকচার পাওয়ারশেল (PSPKI) মডিউল সুপারিশ

মূল উত্তর

আপনি যখন একটি স্ব-স্বাক্ষরিত কোড সাইনিং শংসাপত্র তৈরি করতে পারেন (SPC - সফ্টওয়্যার প্রকাশক শংসাপত্র ) একসাথে, আমি নিম্নোক্ত কাজটি করতে পছন্দ করি:

স্ব স্বাক্ষরিত শংসাপত্র কর্তৃপক্ষ তৈরি করা (CA)

makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^
         -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

(^ = ব্যাচ কমান্ড-লাইন মোড়ানো লাইনের অনুমতি দিন)

এটি একটি স্বনির্ধারিত (-আর) শংসাপত্র তৈরি করে, একটি এক্সপোর্টযোগ্য ব্যক্তিগত কী (-পি) সহ। এটির নাম "আমার CA", এবং বর্তমান ব্যবহারকারীর জন্য CA স্টোর এ রাখা উচিত। আমরা SHA-256 অ্যালগরিদম ব্যবহার করছি। কী স্বাক্ষর (-স্কি) জন্য বোঝানো হয়।

ব্যক্তিগত কীটি MyCA.pvk ফাইল এবং MyCA.cer ফাইলের শংসাপত্রে সংরক্ষণ করা উচিত।

CA সার্টিফিকেট আমদানি করা হচ্ছে

কারণ আপনি যদি এটি বিশ্বাস না করেন তবে CA CA শংসাপত্রের কোনও পয়েন্ট নেই, আপনাকে এটি উইন্ডোজ শংসাপত্রের দোকানে আমদানি করতে হবে। আপনি সার্টিফিকেট এমএমসি স্ন্যাপিন ব্যবহার করতে পারেন, কিন্তু কমান্ড লাইন থেকে:

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

এটি বেশিরভাগ উপরে হিসাবে একই, কিন্তু আমরা একটি ইস্যুকারী কী এবং সার্টিফিকেট প্রদান করছি (the -ic এবং -iv সুইচ)।

আমরা শংসাপত্র এবং কীটি একটি PFX ফাইলে রূপান্তর করতে চাই:

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx

যদি আপনি PFX ফাইলটি সুরক্ষিত করতে চান তবে -po সুইচটি যোগ করুন, অন্যথায় PVK2PFX কোন পাসফ্রেজ সহ একটি PFX ফাইল তৈরি করে।

সাইনিং কোডের জন্য শংসাপত্র ব্যবহার করে

signtool sign /v /f MySPC.pfx ^
              /t http://timestamp.url MyExecutable.exe

( কেন timestamps ব্যাপার হতে পারে দেখুন )

আপনি যদি PFX ফাইলটি সার্টিফিকেট স্টোরে আমদানি করেন (আপনি PVKIMPRT বা MMC স্ন্যাপিন ব্যবহার করতে পারেন), আপনি নীচের কোডটি সাইন ইন করতে পারেন:

signtool sign /v /n "Me" /s SPC ^
              /t http://timestamp.url MyExecutable.exe

signtool /t এর জন্য কিছু সম্ভাব্য টাইমস্ট্যাম্প URL রয়েছে:

  • http://timestamp.verisign.com/scripts/timstamp.dll
  • http://timestamp.globalsign.com/scripts/timstamp.dll
  • http://timestamp.comodoca.com/authenticode

সম্পূর্ণ মাইক্রোসফট ডকুমেন্টেশন

ডাউনলোডগুলি

যারা .NET বিকাশকারী নয়, তাদের জন্য আপনার Windows SDK এবং .NET ফ্রেমওয়ার্কের অনুলিপি দরকার। একটি বর্তমান লিঙ্ক এখানে পাওয়া যায়: SDK এবং .NET (যা C:\Program Files\Microsoft SDKs\Windows\v7.1 মেক্টর্ট ইনস্টল করে C:\Program Files\Microsoft SDKs\Windows\v7.1 )। আপনার মাইলেজ পরিবর্তিত হতে পারে.

MakeCert ভিজ্যুয়াল স্টুডিও কমান্ড প্রম্পট থেকে পাওয়া যায়। ভিজ্যুয়াল স্টুডিও ২015 এর এটি আছে এবং এটি "ভিএস 2015 এর জন্য বিকাশকারী কমান্ড প্রম্পট" বা "VS2015 x64 নেটিভ টুলস কমান্ড প্রম্পট" (সম্ভবত তাদের একই ফোল্ডারে) এর অধীনে উইন্ডোজ 7 এর স্টার্ট মেনু থেকে চালু করা যেতে পারে।







code-signing