আমার জেভিএম কী কী স্টোর ব্যবহার করছে তা আমি কীভাবে খুঁজে পাব?


125

আমার জেভিএম কীস্টোরগুলিতে আমাকে একটি শংসাপত্র আমদানি করতে হবে। আমি নিম্নলিখিত ব্যবহার করছি:

keytool -import -alias daldap -file somecert.cer

সুতরাং আমার কলটি সম্ভবত সম্ভবত এমন কিছুতে পরিবর্তন করা দরকার:

keytool -import -alias daldap -file somecert.cer -keystore cacerts storepass changeit

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

উত্তর:


129

আপনার কীস্টোরটি আপনার থাকবে JAVA_HOME---> JRE -->lib---> security--> cacerts। আপনার জেভিএহোমটি কোথায় কনফিগার করা হয়েছে তা পরীক্ষা করা দরকার, সম্ভবত এই জায়গাগুলির মধ্যে একটি,

  1. কম্পিউটার ---> উন্নত -> পরিবেশের ভেরিয়েবল ---> জাভাহোম

  2. আপনার সার্ভার স্টার্টআপ ব্যাচ ফাইলগুলি।

আপনার আমদানি কমান্ড-কিস্টোর ক্যাশিটারগুলিতে (কেবল মাত্র ক্যাসেটস বলার পরিবর্তে উপরের জেআরই-তে পুরো পথ দিন)।


6
/ লাইব্রেরি / জাভা / হোম / লিবিব / সুরক্ষা / ক্যাসার্টস ম্যাক ওএস এক্স 10.9
স্যাম

9
* "জাভা_হোম ---> জেআরই -> লিব ---> সুরক্ষা -> ক্যাচার্টস" ভবিষ্যতে যে কোনও পাঠকের জন্য, শেষে "গুলি" নোট করুন।
কেয়ার নেলিয়ার

4
সুতরাং আমি যদি জাভার একটি নতুন সংস্করণ ইনস্টল করি এবং জাভাআহোম কোনও নতুন ডিরেক্টরিকে নির্দেশ করছে, আমি কি শংসাপত্রের সমস্যাগুলি নিয়ে যাচ্ছি?
কিরিল ইউনুসোভ

1
@Murphy এই শক্তি আপনাকে সাহায্য stackoverflow.com/questions/5251323/...
Kosa

4
এটি আমার মনে হয় কী স্টোরের অবস্থানের চেয়ে ট্রাস্ট স্টোরের অবস্থান।
ব্যবহারকারী 2001850

35

কীস্টোরের অবস্থান

প্রতিটি কীটল কমান্ডে কীটোলে -keystoreপরিচালিত কীস্টোরের জন্য ধ্রুবক কীস্টোর ফাইলটির নাম এবং অবস্থান নির্দিষ্ট করার জন্য বিকল্প রয়েছে । .keystoreকীস্টোরটি ব্যবহারকারীর হোম ডিরেক্টরিতে নামের কোনও ফাইলটিতে ডিফল্টরূপে সঞ্চিত থাকে , যেমন "ইউজার.হোম" সিস্টেমের সম্পত্তি দ্বারা নির্ধারিত। ব্যবহারকারীর নাম ইউএনমে দেওয়া হয়েছে, "ইউজার.হোম" সম্পত্তি মানটি ডিফল্ট

C:\Users\uName on Windows 7 systems
C:\Winnt\Profiles\uName on multi-user Windows NT systems
C:\Windows\Profiles\uName on multi-user Windows 95 systems
C:\Windows on single-user Windows 95 systems

সুতরাং, ব্যবহারকারীর নাম যদি "ক্যাথি" হয়, "ইউজার.হোম" ডিফল্ট হয়

C:\Users\cathy on Windows 7 systems
C:\Winnt\Profiles\cathy on multi-user Windows NT systems
C:\Windows\Profiles\cathy on multi-user Windows 95 systems

http://docs.oracle.com/javase/1.5/docs/tooldocs/windows/keytool.html


আমি এই রহস্য ~/.keystoreফাইলটি অনুসন্ধান করছি ! আমি যদি -keystoreপ্যারামিটারটি ছেড়ে দিয়ে থাকি তবে কোন ডিফল্ট কীস্টোর টার্গেটটি আমি তা বুঝতে পারি না keytool। আমি cacertsমেশিনে অন্য কোথাও অন্যকে খুঁজতে থাকি । আমি আশা করি না কী কীটলটি ~/.keystoreহোম ডিরেক্টরিতে উত্পন্ন হবে বা এর .keystoreপরিবর্তে নামকরণ হবে cacerts। আপনি একটি ফাঁকা জায়গা পূরণ করেছেন যা জাভা লোকেরা নথিভুক্ত করা উচিত! ধন্যবাদ!
জর্জ পান্তাজেস

26

জাভা 1.8 সহ ম্যাক ওএস এক্স 10.12:

$ JAVA_HOME / JRE / lib / অনুপস্থিত নিরাপত্তা

cd $JAVA_HOME

/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

সেখান থেকে এটি এখানে:

./jre/lib/security

আমার সেখানে ক্যাচার্টস কীস্টোর রয়েছে।

এটি একটি ভিএম বিকল্প হিসাবে উল্লেখ করতে:

-Djavax.net.ssl.trustStore=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/jre/lib/security/cacerts -Djavax.net.ssl.trustStorePassword=changeit

আমি এটি সঠিক উপায় বলছি না (জাভা জাএএএচআহোহোমের মধ্যে দেখতে কেন জানে না?) তবে এটি কাজ করার জন্য আমাকে এই কাজটি করতে হয়েছিল।


16

আপনি এটি আপনার "হোম" ডিরেক্টরিতে খুঁজে পেতে পারেন:

উইন্ডোজ 7 এ:

C:\Users\<YOUR_ACCOUNT>\.keystore

লিনাক্সে (উবুন্টু):

/home/<YOUR_ACCOUNT>/.keystore

4
উইন্ডোতে আমার এই ডিরেক্টরিটি নেই
সিমজিনিয়ার

1
আমি কোনও কী-স্টোর নির্দিষ্ট করে না দিয়ে একটি-কিজেন করেছি, এটি বর্তমান ডিরেক্টরিতে একটি তৈরি করার প্রত্যাশা করে, তবে এটি আপনার বাড়িতে যেমন তৈরি হয়েছিল তেমনই বলেছিল। ~ / .keystore এটি যুগের জন্য খুঁজে পেল না! :-) ধন্যবাদ
ইউরোস্পুফার

আমাকে যুক্ত করা যাক যে সাইগউইনের অধীনে উইন্ডোজ পাথটি ব্যবহৃত হয় যেহেতু জাভা সম্পত্তিটি উইন্ডোজ দ্বারা সেট user.homeকরার সমান $HOMEDRIVE$HOMEPATHএবং $HOMEসাইগভিনের সেটে নয় যেখানে HOMEDRIVE=C:এবংHOMEPATH=\Users\[YOUR ACCOUNT]
ব্যবহারকারী1708042

13

এটি আমার পক্ষে কাজ করে:

#! / বিন / ব্যাশ

CACERTS = $ ( readlink - ই $ ( dirname $ ( readlink - ই $ ( যা keytool ))) /../ liberal এর সংক্ষিপ্ত রূপ / নিরাপত্তা / cacerts )

যদি keytool - তালিকা - কীস্টোর $ CACERTS - storepass changeit > / dev এর / নাল ; তারপর  
    প্রতিধ্বনি $ CACERTS
অন্যথায় 
    প্রতিধ্বনি 'ক্যাসর্ট ফাইলটি খুঁজে পাচ্ছি না।' > & 2 
    প্রস্থান 1 ফাই 

শুধুমাত্র লিনাক্সের জন্য। আমার সোলারিসের কোনও রিডলিংক নেই। শেষ পর্যন্ত আমি এই পার্ল-স্ক্রিপ্টটি ব্যবহার করেছি:

#! / usr / bin / env perl ব্যবহার কঠোরভাবে ; সতর্কতা ব্যবহার ; Cwd qw ( রিয়েলপথ ) ব্যবহার করুন ; 
$: _ = Realpath (( , grep {- এক্স && - } মানচিত্র { "$: _ / keytool" } বিভক্ত ( ':' , $ ENV { পাথ })) [ 0 ]); মরা "keytool খুঁজে পাওয়া যাচ্ছে না" যদি না সংজ্ঞায়িত $: _ ; আমার $ কীটোল = $ _ ; ছাপা


  
  

 "'$ কীটোল' ব্যবহার করা। \ N" ; 
এস / কিটোল $ / /;
$ _ = Realpath ($: _। '../ liberal এর সংক্ষিপ্ত রূপ / নিরাপত্তা / cacerts ');
die -f unless _ যদি না "ক্যাসর্টগুলি সন্ধান করতে পারবেন না";
আমার $ কেসার্টস = $ _;
মুদ্রণ "' $ ক্যাশেটারে আমদানি করা ' ;" n ";
to to কীটোল-তালিকান-কীস্টোর "$ ক্যাচার্টস" -স্টোরপাস পরিবর্তন;
die না হলে "কী ধারক পড়তে পারবেন না"? == 0;
প্রস্থান করুন $ ARGV [0] এক ' - d ';
foreach (@ARGV) {
    আমার $ সার্ট = $ _;
    গুলি /\.[^.]+$//;
    আমার $ ওরফে = $ _;
    " $ সার্ট 'কে' $ ওরফে হিসাবে আমদানি করুন ' \ "n";
    `কীটল-ইমম্পোর্টসার্ট-ফাইল" $ সার্ট "-ালিয়াস" $ ওরফে "-কিস্টোর" $ ক্যাসেটস "-স্টোরপাস পরিবর্তন;
    সতর্কতা "শংসাপত্র আমদানি করতে পারে না: $?" unless না হলে? == 0;
}

6

ডিমট্রিবি যেমন উল্লেখ করেছেন, ডিফল্টরূপে কীস্টোরটি ব্যবহারকারী ডিরেক্টরিতে রয়েছে। তবে আপনি যদি cacertsফাইলটি আপডেট করার চেষ্টা করছেন , যাতে জেভিএম কীগুলি বাছাই করতে পারে তবে আপনাকে cacertsনীচে ফাইলটি আপডেট করতে হবে jre/lib/securitykeytool -list -keystore cacertsআপনার শংসাপত্র যুক্ত হয়েছে কিনা তা দেখতে আপনি কমান্ডটি কার্যকর করে কীগুলি দেখতেও পারেন।


কীটল কমান্ডটি lib/securityকেবলমাত্র আপেক্ষিক নাম দিলে স্বয়ংক্রিয়ভাবে সঠিক পথটি যুক্ত করে জেনে ভালো লাগল ।
সিভড

1
তবে এটি কাজ করবে না -importcert। তালিকা কমান্ডটি সিস্টেমের প্রশস্ত শংসাপত্র প্রদর্শন করে তবে আমদানি কমান্ডটি বর্তমান ডিরেক্টরিতে একটি নতুন ফাইল উত্পন্ন করে।
সজ্জিত

1
updatedb; locate cacertsই-ক্যাসর্ট ফাইলগুলির ইনস্টল অবস্থানগুলি কোথায় তা অনুসন্ধানে সহায়তা করে।
sjas

5

দেবিয়ান-তে, "1.8.0_212" ওপেনজেডক সংস্করণ ব্যবহার করে, আমি এখানে ক্যা্যাসার্টগুলি পেয়েছি:

 /etc/ssl/certs/java/cacerts

অবশ্যই যদি কোনও স্ট্যান্ডার্ড কমান্ড থাকে যা এই পথটি মুদ্রণ করে।


1

আমার জন্য অফিসিয়াল ওপেনজেডকে 12 ডকার চিত্র ব্যবহার করার জন্য, জাভা কীস্টোরের অবস্থানটি ছিল:

/usr/java/openjdk-12/lib/security/cacerts

এটি একটি ট্রাস্টস্টোর, কীস্টোর নয়।
লার্নের মারকুইস

1
প্রথম: আপনি যদি প্রশ্নটি মনোযোগ সহকারে পড়েন (এবং নিজের মন্তব্য), এটি আরও ট্রস্টস্টোরের মতো মনে হয়, যেখানে কোনও শংসাপত্র আমদানি করা উচিত। দ্বিতীয়ত, ট্রাস্টস্টোর এবং কীস্টোরের মধ্যে পার্থক্যটি বেশ বিভ্রান্তিকর - এবং উভয়ই "কীস্টোর" বিটিডব্লিউ শব্দটি ব্যবহার করেন, কারণ তারা উভয়ই ফর্ম্যাটটি ব্যবহার করেন। তৃতীয়: আপনার যদি আমদানি কমান্ডের দিকে নজর থাকে তবে keytool -import -file example.crt -alias exampleCA -keystore truststore.jksআপনি প্যারামিটারটিও ব্যবহার করেন -keystore... বেশ অস্পষ্ট আইএমএইচও O এবং সর্বশেষে তবে সর্বনিম্ন নয়: আমি সেই সঠিক সমস্যাটি অনুসন্ধান করছিলাম - এবং এটি এমন প্রশ্নটি পেয়েছি। অন্যরাও একই এক্সপ্রেস করতে পারে।
jonashackt

তদ্ব্যতীত অন্যান্য সমস্ত উত্তরও তথাকথিত "ট্রাস্টস্টোর" জেডিকে যাচাই করার জন্য ব্যবহার করে। সুতরাং আপনি কি অন্যান্য সমস্ত উত্তরকেও নীচে রেখেছিলেন? আমি ইতিমধ্যে একটি উত্সাহ পেয়েছি, সুতরাং ইতিমধ্যে আমার উত্তরটি কেউ সাহায্য করেছে।
জোনাশ্যাক্ট

0

একটি জের ডিরেক্টরি থেকে চলমান টমক্যাটটিতে আমরা এই সমস্যার মুখোমুখি হয়েছি (স্বয়ংক্রিয়ভাবে জেআর আপডেটের পরে সরানো প্রায় সম্পূর্ণরূপে), যাতে চলমান জেয়ার আর আর খুঁজে পাবে না ... / lib / সুরক্ষা / স্যাসার্ট কারণ এটি আর নেই।

টমক্যাটটি পুনরায় চালু করা (বিভিন্ন জেয়ের অবস্থান থেকে চালানোর জন্য কনফিগারেশন পরিবর্তন করার পরে) সমস্যাটি স্থির করে।


0

উপরের সমস্ত উত্তর ছাড়াও:

যদি জেআরই ডিরেক্টরিতে ক্যাসর্টস ফাইলটি আপডেট করা যদি সহায়তা না করে তবে এটি জেডিকে আপডেট করার চেষ্টা করুন।

সি: \ প্রোগ্রাম ফাইলসমূহ \ জাভা \ jdk1.8.0_192 \ jre \ lib \ সুরক্ষা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.