visual studio 2010 - Keyfile 'blah.pfx' আমদানি করতে পারে না-ত্রুটি 'কীফিল পাসওয়ার্ড সুরক্ষিত হতে পারে'




visual-studio-2010 visual-studio (15)

VSCommands 2010 (ভিজ্যুয়াল স্টুডিওর জন্য প্লাগইন) এটি স্বয়ংক্রিয়ভাবে আপনার জন্য ঠিক করতে পারে - ত্রুটিতে ডান ক্লিক করুন এবং মেনু থেকে ফিক্স প্রয়োগ করুন ক্লিক করুন। আপনি ভিসুয়াল স্টুডিও গ্যালারি থেকে এটি পেতে পারেন।

আমরা আমাদের ভিজ্যুয়াল স্টুডিও ২008 প্রকল্পগুলিকে ভিজ্যুয়াল স্টুডিও 2010 এ আপগ্রেড করেছি। আমাদের সকল অ্যাসেম্বলিগুলি Verisign কোড সাইনিং শংসাপত্র ব্যবহার করে শক্তিশালী স্বাক্ষরিত হয়েছিল। আপগ্রেড থেকে আমরা ক্রমাগত নিম্নলিখিত ত্রুটি পেতে:

নিম্নলিখিত কী ফাইল আমদানি করতে পারবেন না: companyname.pfx। মূল ফাইল পাসওয়ার্ড সুরক্ষিত হতে পারে। এটি সংশোধন করার জন্য, সার্টিফিকেটটি আবার আমদানি করার চেষ্টা করুন অথবা নিম্নলিখিত কী ধারক নাম দিয়ে স্ট্রং নাম সিএসপিটিতে সনদটি ম্যানুয়ালি ইনস্টল করুন: VS_KEY_3E185446540E7F7A

এটি কিছু বিকাশকারী মেশিনে ঘটে এবং অন্যদের নয়। কিছু পদ্ধতিতে কিছু সময় কাজ করার জন্য এটি ব্যবহার করা হয়েছে:

  • উইন্ডোজ এক্সপ্লোরার থেকে মূল ফাইলটি পুনরায় ইনস্টল করা (PFX ফাইলে ডান ক্লিক করুন এবং ইনস্টল করুন এ ক্লিক করুন)
  • প্রথমবারের মত একটি নতুন মেশিনে ভিজ্যুয়াল স্টুডিও 2010 ইনস্টল করা হলে আপনি প্রজেক্টটি খোলার জন্য প্রথমবার পাসওয়ার্ডটি অনুরোধ করেন এবং তারপরে এটি কাজ করে। ভিসুয়াল স্টুডিও ২008 থেকে আপগ্রেড করা মেশিনগুলিতে, আপনি এই বিকল্পটি পাবেন না।

ত্রুটি বার্তাটি প্রস্তাবিত হিসাবে স্ট্রং নাম সিএসপি দিয়ে কী নিবন্ধন করার জন্য আমি SN.EXE ইউটিলিটি (স্ট্রং নাম টুল) ব্যবহার করার চেষ্টা করেছি, কিন্তু যখনই আমি ভিজ্যুয়াল স্টুডিও ২010 এর সাথে আসা সংস্করণটি ব্যবহার করে যে কোনও বিকল্প দিয়ে সরঞ্জামটি চালাতে পারি, SN .EXE শুধু কিছু করার পরিবর্তে তার কমান্ড লাইন আর্গুমেন্ট তালিকা। এই আমি সরবরাহ কি আর্গুমেন্ট নির্বিশেষে ঘটবে।

কেন এই ঘটছে, এবং এটা ঠিক করার জন্য পরিষ্কার পদক্ষেপ কি? আমি ClickOnce এবং মাইক্রোসফ্ট কোড সাইন ইন উপর ছেড়ে দিতে চলেছি।


অবগতির জন্য

আমি sn.exe দিয়ে -p ফ্ল্যাগটি সরকারী কোড সাইন PFX ফাইল (কোড সাইনিং হিসাবে ক্রয়) হিসাবে ব্যবহার করেছি যা নীচে SNK ফাইল তৈরি করেছিল এবং Visual Studio 2013 যে SNK ফাইলটি ব্রাউজ করা হয়েছিল।

  • যা পাসওয়ার্ড সমস্যা সমাধান।

কিন্তু এখনও সমস্যাটি হচ্ছে যে এটি বলছে: "মূল ফাইল * .. SNK একটি সর্বজনীন / ব্যক্তিগত কী জুড়ি নেই।"


আমার দৃশ্যকল্পতে বিল্ড পরিষেবাটি একই ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করে না যা আমি sn.exe ব্যবহার করে কী আমদানি sn.exe

আমার অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টে অ্যাকাউন্ট পরিবর্তন করার পর, সবকিছু ঠিক কাজ করছে।


আমার সমস্যা ছিল যে টিএফএস বিল কন্ট্রোলার নেটওয়ার্ক পরিষেবা হিসাবে চলছে এবং কিছু কারণে আমি বুঝতে পারিনি কেন ভিসুয়াল স্টুডিও বিল্ড হোস্ট সার্ভিস শংসাপত্রগুলি ব্যবহার করা হচ্ছে না। আমি ভিজ্যুয়াল স্টুডিও বিল্ড সার্ভিসের পরিচয় পরিবর্তন করে কিছুটা কার্যকর করতে, নিশ্চিত হয়েছি এটি টিএফএস সার্ভারের অধিকার ছিল এবং এমএমসি ব্যবহার করে সার্টিফিকেটগুলি ম্যানুয়ালি যুক্ত করেছিল।

সমস্যাটিও ছিল যে MSBuild স্টোরে পাসওয়ার্ড সুরক্ষিত সার্টিফিকেট যুক্ত করতে পারে না।


আমি আমার উইন্ডোজ ইনস্টলেশন একটি SSD সরানো পরে একই সমস্যা ছিল। অন্য সমাধান কেউ আমার জন্য কাজ করে।

আমার সমাধান ছিল Notepad প্রকল্প ফাইলটি খুলতে এবং PFX কীগুলিতে সমস্ত রেফারেন্স মুছে ফেলতে। একবার ফাইলটি সংরক্ষিত হলে, ভিজ্যুয়াল স্টুডিওতে সমাধানটি খুলুন। প্রকল্প যান -> বৈশিষ্ট্য -> সাইন ইন। 'শক্তিশালী নাম কী ফাইল নির্বাচন করুন' কম্বো বাক্সে তালিকাবদ্ধ যেকোনো কী দেখতে পাবেন না। কম্বো বাক্সে, কীটি ব্রাউজ করুন, এটি নির্বাচন করুন এবং আপনার প্রকল্পটি এখন তৈরি করা যেতে পারে।


আমি একই সমস্যা ছিল এবং দোকান মুছে ফেলার এবং পড়া কাজ না। আমি নিম্নলিখিত কাজ ছিল।

  • OpenSSL একটি কপি পান। এটা উইন্ডোজ জন্য উপলব্ধ । অথবা একটি লিনাক্স বক্স ব্যবহার করুন যেহেতু তারা সব কিছু বেশিরভাগই এটি আছে।

  • একটি কী ফাইল এক্সপোর্ট করতে নিম্নলিখিত চালান:

    openssl pkcs12 -in certfile.pfx -out backupcertfile.key
    
    openssl pkcs12 -export -out certfiletosignwith.pfx -keysig -in backupcertfile.key
    

তারপর প্রকল্প বৈশিষ্ট্যগুলিতে আপনি PFX ফাইলটি ব্যবহার করতে পারেন।


আমি এটি ইনস্টল করার আগে কিছু ক্ষেত্রে আপনাকে এই কী মুছে ফেলার চেষ্টা করা উচিত। তাই নিম্নলিখিত কাজ করুন:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX

আমি কী (পিএফএক্স) ফাইলটিকে "একটি স্ট্রং নাম কী ফাইল চয়ন করুন" ড্রপ-ডাউন বক্সে পুনঃনির্ধারণ করে, তারপর "পাসওয়ার্ড প্রবেশ করান" পপআপ উইন্ডোতে পাসওয়ার্ড সরবরাহ করি। আমার প্রকল্প সংরক্ষিত এবং rebuild.build সফল হয়েছে।

  • খুলুন প্রকল্প প্রোপার্টি।
  • সাইনিং বিভাগে ক্লিক করুন।
  • যেখানে এটি বলছে 'একটি শক্তিশালী নাম কী ফাইল চয়ন করুন:', ড্রপ-ডাউন বাক্স থেকে বর্তমান মানটি পুনরায় নির্বাচন করুন:

  • ভিজ্যুয়াল স্টুডিও এখন পাসওয়ার্ডের জন্য আপনাকে অনুরোধ করবে। এটা লিখুন।

  • আপনার প্রকল্প সংরক্ষণ করুন এবং একটি পুনর্নির্মাণ না।

  • ত্রুটি বার্তা পেতে হলে: "একটি টোকেন রেফারেন্স করার জন্য একটি প্রচেষ্টা করা হয়েছিল যা বিদ্যমান নেই" কেবল এটি উপেক্ষা করুন এবং নিচের পদক্ষেপগুলি চালিয়ে যান

  • 'পাসওয়ার্ড পরিবর্তন করুন' বাটনে ক্লিক করুন:

  • সব তিনটি বাক্সে আসল পাসওয়ার্ড লিখুন এবং ঠিক আছে ক্লিক করুন। আপনি যদি আপনার পাসওয়ার্ড পরিবর্তন করতে চান (অথবা যদি আপনার পুরানো পাসওয়ার্ড জটিলতা প্রয়োজনীয়তা পূরণ না করে), আপনি এখন এটি করতে পারেন।

  • আপনার প্রকল্প সংরক্ষণ করুন এবং একটি পুনর্নির্মাণ না।

অধিক তথ্য..


এই সমস্ত সমাধানগুলি (এবং আরো অনেক কিছু) চেষ্টা করার পরে, আমি দেখেছি যে সমস্যা অন্য কোথাও রয়েছে। একটি শংসাপত্র কেনার পরে আমার মতো একই দুঃখের মধ্য দিয়ে যেতে চাইলে, আমার সমস্যার জন্য আমি সমাধানটি ভাগ করব।

আচরণ

আমি বুঝি যে 'সাইন' একটি শক্তিশালী নাম প্রয়োগ করে এবং কোনও DLL বা EXE এ একটি প্রমাণীকরণ নয়। এই ক্ষেত্রে সাইনটোল কাজ করবে , কিন্তু ভিজ্যুয়াল স্টুডিওতে 'সাইন' কাজ করবে না।

কারণ

অতীতে আমি Verisign থেকে সার্টিফিকেট সঙ্গে অভিজ্ঞতা ছিল করেছি। তাদের কাছে সার্টিফিকেটে একটি KeySpec=2 রয়েছে - যা ভিজ্যুয়াল স্টুডিওতে 'সাইন' কার্যকারিতা দিয়ে ব্যবহৃত হয়। এই সার্টিফিকেট উভয় ভিসুয়াল স্টুডিও এবং সাইনটোল জন্য সূক্ষ্ম কাজ।

আমি এখন কমোডোর কাছ থেকে শংসাপত্র কিনেছি, যা কোড সাইনিং শংসাপত্রগুলিতে একটি ভুল KeySpec=1 আছে। এর অর্থ এই সার্টিফিকেটগুলি সাইনটোল (প্রমাণীকরণ) দিয়ে সূক্ষ্ম কাজ করে কিন্তু শক্তিশালী নামকরণের সাথে (সাইন ড্রপ-ডাউন) নয়।

সমাধান

এই সমস্যা সমাধানের দুটি উপায় আছে:

  1. sn -k [name].snk ব্যবহার করে আপনার শক্তিশালী নামের জন্য একটি পৃথক শংসাপত্র তৈরি করুন। সঙ্কট ব্যবহার করে সমাবেশে সাইন ইন করুন এবং তারপরে আপনার কোড সাইনিং শংসাপত্রের সাথে সাইনটোল ব্যবহার করুন স্বাক্ষর স্বাক্ষর দিয়ে DLL / EXE এ সাইন ইন করতে। যদিও এটি অদ্ভুত বলে মনে হচ্ছে, আমি যা বুঝি তা হল সার্টিফিকেটগুলির সাথে মোকাবিলা করার সঠিক উপায়, কারণ শক্তিশালী নামগুলি প্রাইমিকোডের চেয়ে ভিন্ন উদ্দেশ্য রয়েছে ( এই লিঙ্কটি কীভাবে কাজ করে তার বিস্তারিত জানার জন্য দেখুন)।
  2. KeySpec=2 হিসাবে আপনার সার্টিফিকেট আমদানি করুন। এই জন্য পদ্ধতি এখানে বিস্তারিত

কারণ আমি একাধিক শক্তিশালী নাম ব্যবহার করতে চাই, আমি বর্তমানে বিকল্প (1) ব্যবহার করি, যদিও বিকল্পটি (2) কাজ করে।

এই সমাধানটি ভবিষ্যতে কখনোই হারিয়ে যাবে না তা নিশ্চিত করার জন্য সমাধান পদ্ধতি 2:

  1. "সার্টিফাইয়েটস" এমএমসি ব্যবহার করে বিদ্যমান KeySpec=1 ( KeySpec=1 ) একটি PFX ফাইলে এক্সপোর্ট করুন। দ্রষ্টব্য: দয়া করে এই ফাইলটি নিরাপদ স্থানে ব্যাকআপ করুন এবং যদি আপনি সত্যিই এটি নিরাপদ খেলতে চান তবে অন্য মেশিনে ফাইলটি আমদানি করা যেতে পারে কিনা তা পরীক্ষা করুন!
  2. ক্রিপ্টো স্টোর থেকে বিদ্যমান সার্টিফিকেট মুছুন (এমএমসি ব্যবহার করে স্টেল)।
  3. একটি সিএমডি প্রম্পট খুলুন।
  4. এই কমান্ডটি ব্যবহার করে PFX ফাইলটি আমদানি করুন:
    1. certutil -importPFX -user <pfxfilename> AT_SIGNATURE
    2. প্রম্পট করার সময় pfx জন্য পাসফ্রেজ লিখুন।

আপনার এখন KeySpec=2 সাথে একটি KeySpec=2 / সার্টিফিকেট থাকা উচিত। প্রয়োজন হলে আপনি আবার এমএমসি ব্যবহার করে অন্য PFX ফাইলে এটি রপ্তানি করতে পারেন।


একটি কম্বোবক্সে কী ফাইলটি নির্বাচন করা এবং পাসওয়ার্ড প্রবেশ করা আমাদের জন্য এটির উপর সাহায্য করে।

কিন্তু প্রতিটি সময় কী ফাইল পরিবর্তন করা প্রয়োজন এবং এটি ঠিক না বলে মনে হচ্ছে।


এখানে বর্ণিত সমস্ত পদ্ধতি আমাকে সাহায্য করেনি। কিন্তু যখন আমি আমার প্রোজেক্ট থেকে *। পিএফএক্স ফাইলটি মুছে দিয়েছিলাম এবং সমাবেশে আবার সাইন ইন করেছিলাম, আমি কোনও ত্রুটি ছাড়াই আমার প্রকল্পটি তৈরি করেছি! আমি কারণ ব্যাখ্যা করতে পারবেন না কেন। কিন্তু এটা আমার জন্য কাজ করেন।


এটি আমার সমস্যা সমাধান করেছে: আপনার ভিএস প্রকল্প খুলুন

Package.appxmanifest উপর ডাবল ক্লিক করুন

প্যাকেজিং ট্যাবে যান

সার্টিফিকেট নির্বাচন ক্লিক করুন

সার্টিফিকেট কনফিগার ক্লিক করুন

ফাইল থেকে নির্বাচন করুন এবং example.pfx ব্যবহার করুন যে ঐক্য বা অন্য কিছু তৈরি


ভিজ্যুয়াল স্টুডিও ২01২-এ এই সমস্যাটি সমাধানের জন্য, আমি প্রকল্পটি, বৈশিষ্ট্যাবলী-> "সাইন ইন" ডান ক্লিক করুন, এবং তারপরে "ক্লিকঅনসেন ম্যানিফেস্টগুলি সাইন ইন করুন" টি চেক করুন।


ভিসুয়াল স্টুডিও প্রজেক্টের .csproj ফাইলটিতে নিম্নলিখিত লাইনটি পরিবর্তন করে আমি নিজের জন্য এই সমস্যাটি সমাধান করেছি:

এই 'আমদানি করতে পারে না' ত্রুটি ছুড়ে ফেলেছে:

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

ভুলের মান পরিবর্তন করলে ত্রুটিটি চলে যায়।


আমি পাশাপাশি এই সমস্যা মধ্যে চলমান ছিল। আমি চলমান দ্বারা সমস্যা সমাধান করতে সক্ষম ছিল
sn -i <KeyFile> <ContainerName> ( একটি কী sn -i <KeyFile> <ContainerName> কী জুড়ি ইনস্টল করে )।

sn সাধারণত একটি উইন্ডোজ এসডিকে অংশ হিসাবে ইনস্টল করা হয়। উদাহরণস্বরূপ C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe । সম্ভবত এই অবস্থান আপনার মান পরিবেশের জন্য অনুসন্ধান পথ নয়। যাইহোক, ভিসুয়াল স্টুডিও দ্বারা ইনস্টল করা "বিকাশকারী কমান্ড প্রম্পট" অতিরিক্ত তথ্য যুক্ত করে যা সাধারণত সঠিক অবস্থান অন্তর্ভুক্ত করে।

যে মত আপনার পোস্ট উপর ভিত্তি করে

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

এটি আপনার PFX ফাইলের অবস্থান থেকে চালানো উচিত, যদি আপনার VS 2010-এ সমাধানটি লোড হয় তবে আপনি সমাধান এক্সপ্লোরার থেকে কেবল পিএফএক্স ফাইলে ডান ক্লিক করতে পারেন এবং Open Command Prompt নির্বাচন করুন যা .net 2010 cmd প্রম্পট সরঞ্জামটি চালু করবে। সঠিক ডিরেক্টরি।

এই এসএন কমান্ডটি চালানোর আগে আমি পিএইচপি-তে পুনরায় ক্লিক করে এটি ইনস্টল করেছিলাম এবং ইন্সটল পছন্দ করেছিলাম তবে এটি কাজ করে নি। সমাধানটি সরবরাহ করা উভয়ের সমন্বয় হতে পারে এমনটি কেবলমাত্র কিছুটা নোট করুন।

এই আপনার সমস্যার সমাধান সাহায্য করে।





pfx