ত্রুটি - trustAunchors পরামিতি অবশ্যই খালি থাকতে হবে


492

আমি জেনকিন্স / হাডসনে আমার ইমেলটি কনফিগার করার চেষ্টা করছি এবং আমি ক্রমাগত ত্রুটিটি পেয়েছি:

java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be
    non-empty

আমি ত্রুটি সম্পর্কে অনলাইনে প্রচুর পরিমাণে তথ্য দেখেছি, তবে আমি কোনও কাজ করতে পাইনি। আমি ফেডোরা লিনাক্সে (ওপেনজেডিকে নয়) সনের জেডিকে ব্যবহার করছি।

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

আমি এখনই আটকে থাকায় আমি কোনও পরামর্শের জন্য উন্মুক্ত। আমি উইন্ডোজ হাডসন সার্ভার থেকে কাজ করতে পেরেছি, তবে আমি লিনাক্স নিয়ে লড়াই করছি।

উত্তর:


512

এই উদ্ভট বার্তাটির অর্থ হ'ল আপনি যে ট্রাস্টস্টোরটি নির্দিষ্ট করেছেন তা হ'ল:

  • খালি,
  • পাওয়া যায় নি, বা
  • খোলা যায় নি (উদাহরণস্বরূপ অ্যাক্সেসের অনুমতিের কারণে)।

নীচে @ অ্যাডামপ্লম্বের উত্তরও দেখুন

এই সমস্যাটি ডিবাগ করার জন্য (আমি এটি সম্পর্কে এখানে লিখেছি ) এবং ট্রাস্টস্টোরটি কী ব্যবহার করা হচ্ছে তা বুঝতে আপনি javax.net.debug = সমস্ত সম্পত্তি যুক্ত করতে পারেন এবং তারপরে ট্রাস্টস্টোর সম্পর্কে লগগুলি ফিল্টার করতে পারেন। আপনি কোনও নির্দিষ্ট ট্রস্টস্টোর নির্দিষ্ট করতে সম্পত্তি javax.net.ssl.trustStore এর সাথেও খেলতে পারেন। উদাহরণ স্বরূপ :


    java -Djavax.net.debug=all -Djavax.net.ssl.trustStore=/Another/path/to/cacerts -jar test_get_https-0.0.1-SNAPSHOT-jar-with-dependencies.jar https://www.calca.com.py 2>&1| grep -i truststore

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

2
উত্তরটি ছিল কীভাবে আমি এটি আমদানি করছিলাম। আমি মনে হয়েছিল একটি গুরুত্বপূর্ণ পদক্ষেপ মিস করেছি। [জাভা ত্রুটি অবৈধএলগোরিদমপ্যারামিটার এক্সেক্সশন] দেখুন [1] [1]: জ্যোতিরভান্ডারি.ব্লগস্পট.কম
ডেভিড গিল

2
নিশ্চিত হওয়া এই উত্তরটি সঠিক। টমকেটের অধীনে আমি ত্রুটি পাচ্ছিলাম। আমি আমার truststore ছিল ${CATALINA_HOME}\confকিন্তু CATALINA_HOMEতাই হুল বিড়াল অধীনে খুঁজছেন ছিল সেট না পেয়ে ছিল \conftruststore জন্য।
একক শট

4
@ বুবলওয়্যারটেকনোলজি নং, ত্রুটিটি ফাইল নামটিতে ছিল, আপনি কীভাবে ফাইলটিতে শংসাপত্রটি আমদানি করেছিলেন তা নয়। আপনার ব্লগটি সঠিক নয়। আপনার জেআরই $ / ক্যাজার্টস ফাইলটি পরিবর্তন করার প্রস্তাব দেওয়া উচিত নয়। এটি পরবর্তী জাভা আপগ্রেড পরিবর্তন করবে। আপনার এমন একটি প্রক্রিয়া দরকার যা এটি অনুলিপি করে, অনুলিপিটিতে নিজের শংসাপত্র যুক্ত করে এবং অনুলিপিটি অনুলিপি হিসাবে ব্যবহার করে। প্রতিটি জাভা আপগ্রেড পুনরাবৃত্তি করুন। এবং আপনার জাভা এর নিজস্ব ট্রাস্টস্টোর সম্পর্কে মোটেও বলার দরকার নেই, কেবল নিজের সম্পর্কে, যদি এটি আলাদা হয়।
Lorne এর মার্কুইস

3
আমি একটি টুইস্ট যুক্ত করব: এমনকি যখন ট্রাস্টস্টোরটি উপস্থিত থাকে, অ্যাক্সেসযোগ্য হয়, সঠিক ফর্ম্যাটে থাকে, যদি এটি সম্পূর্ণরূপে কর্মক্ষেত্র হয় তবে এটাই ত্রুটিটি আপনি বিভিন্ন লাইব্রেরি (অ্যাপাচি এইচটিপিপ্লাইন্ট সহ) সহ পেতে পারেন।
অ্যালান ফ্রানজনি

265

ভিতরে উবুন্টু 18.04 , এই ত্রুটির একটি ভিন্ন কারণ আছে (থেকে JEP 229, সুইচ jksকরতে কীস্টোর ডিফল্ট বিন্যাস pkcs12বিন্যাস, এবং ডেবিয়ান নতুন ফাইলের জন্য ডিফল্ট ব্যবহার ফাইল প্রজন্ম cacerts) এবং কার্যসংক্রান্ত :

# Ubuntu 18.04 and various Docker images such as openjdk:9-jdk throw exceptions when
# Java applications use SSL and HTTPS, because Java 9 changed a file format, if you
# create that file from scratch, like Debian / Ubuntu do.
#
# Before applying, run your application with the Java command line parameter
#  java -Djavax.net.ssl.trustStorePassword=changeit ...
# to verify that this workaround is relevant to your particular issue.
#
# The parameter by itself can be used as a workaround, as well.

# 0. First make yourself root with 'sudo bash'.

# 1. Save an empty JKS file with the default 'changeit' password for Java cacerts.
#    Use 'printf' instead of 'echo' for Dockerfile RUN compatibility.
/usr/bin/printf '\xfe\xed\xfe\xed\x00\x00\x00\x02\x00\x00\x00\x00\xe2\x68\x6e\x45\xfb\x43\xdf\xa4\xd9\x92\xdd\x41\xce\xb6\xb2\x1c\x63\x30\xd7\x92' > /etc/ssl/certs/java/cacerts

# 2. Re-add all the CA certs into the previously empty file.
/var/lib/dpkg/info/ca-certificates-java.postinst configure

স্থিতি (2018-08-07) , বাগটি উবুন্টু বায়োনিক এলটিএস 18.04.1 এবং উবুন্টু কসমিক 18.10 এ স্থির করা হয়েছে।


Bu উবুন্টু 1770553: [এসআরইউ] কসমিক থেকে ব্যাকপোর্ট সিএ-শংসাপত্র-জাভা (20180413ubuntu1)

Bu উবুন্টু 1769013: দয়া করে সিবি-শংসাপত্র-জাভা 20180413 (প্রধান) থেকে দেবিয়ান অস্থির (মূল) থেকে মার্জ করুন

Bu উবুন্টু 1739631: জেডিকে 9 দিয়ে নতুন করে ইনস্টল করা উত্পন্ন পিকেসিএস 12 কেসেটস কীস্টোর ফাইলটি ব্যবহার করতে পারে না

Ock ডকার-লাইব্রেরি 145: 9-jdk চিত্রটিতে এসএসএল সমস্যা রয়েছে

Bian দেবিয়ান 894979: সিএ-শংসাপত্র-জাভা: ওপেনজেডকে 9 এর সাথে কাজ করে না, অ্যাপ্লিকেশনগুলি অবৈধ-অ্যালগোরিদমপ্যারামিটার এক্সেক্সশন সহ ব্যর্থ হয়েছে: ট্রাস্টআন্টার্স প্যারামিটারটি খালি থাকতে হবে না

🗹 JDK-8044445: JEP 229: ডিফল্ট দ্বারা পিকেসিএস 12 কীস্টোরগুলি তৈরি করুন

🖺 229: ডিফল্ট দ্বারা পিকেসিএস 12 কীস্টোর তৈরি করুন


সমস্যাটি যদি এই কর্মবিরতির পরেও অব্যাহত থাকে, আপনি সম্ভবত এটি সুনির্দিষ্টভাবে ঠিক করেছেন জাভা বিতরণটি চালাচ্ছেন তা নিশ্চিত করতে চাইবেন।

$ which java
/usr/bin/java

আপনি জাভা বিকল্পগুলি এর সাথে 'অটো' তে সেট করতে পারেন:

$ sudo update-java-alternatives -a
update-alternatives: error: no alternatives for mozilla-javaplugin.so

আপনি যে জাভা সংস্করণটি চালাচ্ছেন তার দ্বিগুণ চেক করতে পারেন:

$ java --version
openjdk 10.0.1 2018-04-17
OpenJDK Runtime Environment (build 10.0.1+10-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 10.0.1+10-Ubuntu-3ubuntu1, mixed mode)

পাশাপাশি বিকল্প কাজের ক্ষেত্র রয়েছে, তবে তাদের নিজস্ব পার্শ্ব প্রতিক্রিয়া রয়েছে যার জন্য অতিরিক্ত ভবিষ্যতের রক্ষণাবেক্ষণের প্রয়োজন হবে, যা কোনও বেতন দেবে না।

পরের সেরা সর্বোত্তম কাজটি সারিটি যুক্ত করা

javax.net.ssl.trustStorePassword=changeit

ফাইলগুলিতে

/etc/java-9-openjdk/management/management.properties
/etc/java-11-openjdk/management/management.properties

যা কিছু বিদ্যমান।

তৃতীয় সর্বনিম্ন সমস্যা সমাধানের মানটি পরিবর্তন করা

keystore.type=pkcs12

প্রতি

keystore.type=jks

ফাইলগুলিতে

/etc/java-9-openjdk/security/java.security
/etc/java-11-openjdk/security/java.security

যা কিছু বিদ্যমান আছে এবং তারপরে cacertsফাইলটি সরিয়ে পোস্টের শীর্ষে ওয়ার্কআরউন্ড স্ক্রিপ্টের শেষ সারিটিতে বর্ণিত পদ্ধতিতে পুনরায় জেনারেট করুন।


50
উবুন্টু 18 জন ব্যবহারকারী, এটি পড়ুন! এটি আপনার জীবনের অনেক ঘন্টা বাঁচাতে পারে! ধন্যবাদ!
ভাক

5
এই উত্তরটি আমাকে উবুন্টু 18.04-এ ম্যাভেনের সাথে একই ত্রুটিটি ঠিক করতে সহায়তা করেছিল। এতে লিখতে সক্ষম হতে আমাকে নিজের থেকে / ইত্যাদি / এসএসএল / সার্টস / জাভা / ক্যা্যাসের্টস ফাইলের মালিককে নিজের থেকে পরিবর্তন করতে হয়েছিল। তারপরে আমি এটি আবার স্যুইচ করেছি।
ইউরি গোর

77
আমি সুডো আরএম / ইত্যাদি / এসএসএল / সার্টস / জাভা / ক্যাসার্টস চালিয়েছিলাম এবং তারপরে sudo আপডেট-সিএ-সার্টিফিকেট -f এবং এটি আমার সমস্যাটি কুবুন্টুতে 18.04 এ স্থির করেছে।
jsn

2
@ জেএসএন, সমাধানগুলির জন্য ধন্যবাদ, লিনাক্স পুদিনা ১৯-তেও কাজ করে যা উবুন্টু ১৮.০৪
সম্রাট

2
@ jsn এর সমাধান এছাড়াও ডেবিয়ান প্রসারিত করুন + + openjdk8 কাজ
HRJ

105

উবুন্টুতে এটি আমার জন্য সমস্যাটি স্থির করে:

sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

(এখানে পাওয়া গেছে: https://bugs.launchpad.net/ubuntu/+source/ca-certificates-java/+bug/1396760 )

ca-certificates-java ওরাকল জেডিকে / জেআরই তেমন নির্ভরতা নয় তাই এটি অবশ্যই স্পষ্টভাবে ইনস্টল করা উচিত।


2
ধন্যবাদ, উবুন্টু 15.04-এ আমি যখন এটি চালাচ্ছিলাম তখন এটি আমার জন্য সমস্যাটি স্থির করে।
ম্যাকিল


1
ওপেনজেডিকে 8 এর সাথে ডিবিয়ান জেসি স্থিতিশীল ব্যাকপোর্টগুলি নিয়ে এই ইস্যুটি ছড়িয়ে পড়ে এবং এটি সমস্যার সমাধান করে। ডকার চিত্রগুলি তৈরি করার সময় এটি ব্যবহার করছিল। :)
টাক্সডুড

9
দুঃখের সাথে উবুন্টু মেতে 18.04 এ কাজ করে না। আমি জাভা পুনরায় ইনস্টল করার চেষ্টা করব।
প্রণব এ।

1
@ কোডেফেক্স - আপনার পরামর্শ অনুযায়ী আমি যা করেছি এবং এটি কার্যকর হয় না - উবুন্টু 18.x এ জাভা 10 (ডিফল্ট) দিয়ে।
এমজেডেলার

69

উবুন্টু ১৮.০৪-তে মূল কারণটি ওপেনজেডকি-১১-জেডিকি (যা ডিফল্ট) এবং অন্যান্য প্যাকেজগুলির উপর নির্ভর করে তার দ্বন্দ্ব। এটি ইতিমধ্যে ডেবিয়ায় স্থির করা হয়েছে এবং শীঘ্রই উবুন্টুতে অন্তর্ভুক্ত করা হবে। ইতোমধ্যে সহজতম কাজটি হ'ল আপনার জাভাটিকে ভার্সন 8 এ নামানো ca-certificates-java

প্রথমে বিরোধী প্যাকেজগুলি সরান:

sudo apt-get remove --purge openjdk* java-common default-jdk
sudo apt-get autoremove --purge

আপনি সফলভাবে সম্পর্কিত সমস্ত প্যাকেজগুলি মুছে ফেলেছেন কিনা তা পরীক্ষা করে দেখুন:

sudo update-alternatives --config java

সিস্টেমটি আপনাকে অনুরোধ করবে কনফিগার করার জন্য জাভা নেই , অন্যথায় এই কর্ম ব্যর্থ হয়

তারপরে প্রয়োজনীয় প্যাকেজগুলি পুনরায় ইনস্টল করুন:

sudo apt-get install openjdk-8-jdk

এই বিবরণটি প্রকৃতপক্ষে ভুল, এবং উইন্ডোজ পুনরায় ইনস্টল করার ফলে সমস্যাটি ঠিক করা একই সমস্যাটিকে কেবল ঠিক করে। সমস্ত জাভা প্যাকেজ অপসারণ করার প্রয়োজন নেই। আপনি যদি এই পথে যেতে চান তবে আপনাকে কেবল openjdk-8-jdkপ্যাকেজ ইনস্টল করতে /etc/ssl/certs/java/cacertsহবে, ফাইলটি সরিয়ে ফেলতে হবে এবং এই থ্রেডের অন্য কোথাও বর্ণিত হিসাবে ফর্ম্যাট করা ক্যাসর্ট ফাইল sudo update-ca-certificates -fথেকে কোনও pkcs12ফর্ম্যাট হওয়াতে গোলাকার পথ যা চালানো উচিত jks
মিকেল গুইক

1
@ মিকায়েলগেইক যদিও যুক্তিটি আপনার পক্ষে রয়েছে বলে মনে হচ্ছে, আমি এখানে আপনাকে নিশ্চিত করার জন্য আমি এখানে আগে আপনার মন্তব্যে এবং সর্বাধিক ভোট দেওয়া উত্তরে বর্ণিত ঠিক তেমনটি করেছি এবং 18.04 এ এটিই একমাত্র উত্তর যা কাজ করেছিল । আমি মনে করি আপনার ডাউনটোটটি একটি উঁচুতে পরিণত হওয়া উচিত, বা কমপক্ষে বিলুপ্ত হওয়া উচিত, যেহেতু এটি অত্যন্ত অনুমোদিত নয়।
Andrea Ligios

@ আন্দ্রেইলজিওস, আপনি নিজেই স্ক্রিপ্টগুলির মাধ্যমে পড়তে পারেন, সেগুলি খুব ছোট। তাদের 8 থেকে 10 অবধি জাভাওয়াহোম পাথগুলির একটি হার্ডকোডযুক্ত সেট রয়েছে, তারা একবারে সেগুলি চেষ্টা করে they আপনি মাধ্যমে পড়তে পারেন, একটি সামঞ্জস্য ফ্যালব্যাক মোড আছে। যদি আপনার কম্পিউটারটি এই সাধারণ সফ্টওয়্যারটি অন্যভাবে চালায় তবে আপনার এতে অন্যান্য সমস্যা থাকতে পারে। আপনি কি আপনার জাভা বিকল্পগুলি সংশোধন করেছেন এবং অন্য কিছু জেভিএমকে কল করেছিলেন, কেননা তাহলে অপসারণের ফলে বিকল্পগুলি পুনরায় সেট হয়ে যেতে পারে?
মাইকেল গুইক

1
@ মাইকেলেল গুইক হ্যাঁ, আগের একটি চেষ্টাতে আমি আমার জাভা বিকল্পগুলি পরিবর্তন করেছি, তাই সম্ভবত এটি ছিল। আমি প্রথম যারা সোর্স কোডটি খনন করতে এবং স্টাফগুলি কীভাবে কাজ করে তা খুঁজে পেতে পছন্দ করে তবে এটি আজ আমার লক্ষ্য নয়, আমার আসল লক্ষ্যের পথে 5--6 টি বিভিন্ন অপ্রত্যাশিত বাধার মধ্যে এটি ছিল আমার মধ্যে কেবল একটি। এই উত্তরটি আমাকে 2 মিনিটেরও কম সময়ে সমস্যার সমাধান করতে দেয়! স্ক্রিপ্টগুলি সন্ধান করার জন্য এবং আরও ভাল সমাধান খুঁজতে আমার কত সময় করা উচিত ছিল? এবং কিসের জন্য, কিছু মেগাবাইট সংরক্ষণ করতে? এটি কঠোর, তবে কাজ করে (এবং সমস্যাটি যাই হোক না কেন), তাই জাহান্নাম হিসাবে ব্যস্ত ব্যক্তিদের জন্য ওপিকে একটি বড় ধন্যবাদ
Andrea Ligio

1
আমি 2 দিন ধরে একটি সমাধান খুঁজছি, এবং আপনার উত্তর আমার সমস্যা সমাধান করেছে, ধন্যবাদ। আমি কেবল কুবুন্টুতে 18.04 এ চলেছি, এটি এতে কাজ করেছে।
guepardomar

55

ইজেপি মূলত প্রশ্নের উত্তর দিয়েছে (এবং আমি বুঝতে পারি এটির একটি স্বীকৃত উত্তর রয়েছে), তবে আমি কেবল এই প্রান্ত-কেস গোটচাকে মোকাবিলা করেছি এবং আমার সমাধানটি অমর করে রাখতে চেয়েছিলাম।

InvalidAlgorithmParameterExceptionএকটি হোস্ট করা জিরা সার্ভারে আমার ত্রুটি ছিল যা আমি আগে এসএসএল-কেবল অ্যাক্সেসের জন্য সেট আপ করেছিলাম। সমস্যাটি ছিল যে আমি আমার কীস্টোরটি পিকেসিএস # 12 ফর্ম্যাটে সেট আপ করেছি, তবে আমার ট্রস্টস্টোরটি জেকেএস ফর্ম্যাটে ছিল।

আমার ক্ষেত্রে, আমি server.xmlপিসিসিএস-তে কীস্টোর টাইপ নির্দিষ্ট করার জন্য আমার ফাইলটি সম্পাদনা করেছি , তবে আমি ট্রাষ্টস্টোর টাইপ নির্দিষ্ট করে নেই, তাই কীস্টোর টাইপ যা-ই হোক না কেন এটি ডিফল্ট হয়। জেএসএস আমার জন্য সমাধান হিসাবে স্পষ্টভাবে ট্রাস্টস্টোরটাইপ নির্দিষ্ট করা।


ভাল, আমি আপনাকে আপনার এজ-কেস গোচাতে অমর সমাধান করতে সহায়তা করি। এটি আকর্ষণীয় হয়ে ওঠে যেখানে।
n611x007

2
এটা ঠিক আমার সমস্যা ছিল। আমি স্প্রিং বুট 1.4.2.RELEASE ব্যবহার করছিলাম এবং আমার একটি হার্ডওয়্যার কীস্টোর এবং সফ্টওয়্যার ট্রস্টস্টোর ছিল। আমি সরবরাহকারীর নির্দিষ্ট করে দিয়েছি এবং কীস্টোরের জন্য টাইপ করেছি, তবে ট্রাস্টস্টোরের জন্য নয়। ফলস্বরূপ, ভুল সরবরাহকারী এবং প্রকারটি ট্রস্টস্টোর দ্বারা ব্যবহৃত হয়েছিল। যারা (সান এবং জে কেএস) উল্লেখ করে সমস্যাটি সমাধান হয়েছে।
কেনকো

12
তুমি ঠিক কী করেছ? (উইন্ডোজ এখানে)
তাতসু

2
আজকে আমার অ্যান্ড্রয়েড গ্র্যান্ডল সহ এটিকে চালান, আপনি কী বলছেন তা আমি প্রায় বুঝতে পারি তবে কীভাবে এটি সমাধান করবেন আপনি তা বলবেন না। অসহায় উত্তর
লোথার

52

ওএস এক্স-এ ওপেনজেডকে 7 চালানোর সময় আমি ট্রাস্ট ব্লগারদের সমস্যা ঠিক করে ব্লগ পোস্ট থেকে এই সমাধানটি পেয়েছি :

ওএস এক্সে ওপেনজেডকে running চালানোর সময় আস্থাকর্মীদের সমস্যা সমাধান করা you're আপনি যদি ওএস এক্সে ওপেনজেডকে running চালাচ্ছেন এবং এই ব্যতিক্রমটি দেখেছেন:

Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors
    parameter must be non-empty

একটি সহজ ফিক্স আছে। অ্যাপলের জেডি কে ১.6 ব্যবহার করে একই ক্যা্যাসার্টস ফাইলটিতে কেবল লিঙ্ক করুন:

cd $(/usr/libexec/java_home -v 1.7)/jre/lib/security
ln -fsh /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts

আপনার ইনস্টল করা প্রতিটি ওপেনজেডিকে সংস্করণে আপনার এটি করা দরকার। -v 1.7আপনি যে সংস্করণটি ঠিক করতে চান তা কেবল পরিবর্তন করুন । চালান /usr/libexec/java_home -Vসব JREs এবং JDKs আপনার ইনস্টল করা দেখতে।

সম্ভবত ওপেনজেডিকে ছেলেরা এটি তাদের ইনস্টল স্ক্রিপ্টগুলিতে যুক্ত করতে পারে।


1
আমার "ln" কমান্ড (OSX 10.6.8 এ) এর "h" বিকল্প নেই; এর অর্থ কি?
অ্যান্ড্রু সোয়ান

1
আহ, আমার দুটি "এলএন" কমান্ড ছিল, একটিতে / ইউএসআর / বিন (ডিফল্ট) এবং একটি / বিনে; পরেরটির একটি "h" বিকল্প ছিল এবং কাজ করেছে।
অ্যান্ড্রু সোয়ান

আমি আমার ভাঙা 1.6 ইনস্টলেশনটি এই এলএন কৌশলটির সাহায্যে সিস্টেমের 1.8 ইনস্টলেশন থেকে ক্যাসার্টের সাথে সংযোগ স্থাপন করেছি। ধন্যবাদ!
21z

1
ভবিষ্যতে পাঠকদের জন্য: মনে হচ্ছে আপনি যে আছে অন্যান্য 3 ফাইল প্রয়োজন securityফোল্ডারে ( blacklisted.certs, local_policy.jar, এবং US_export_policy.jarজাভা জন্য) সুখী হতে।
awksp

@ পিটার ক্রিয়েন্স, কেন cacertsঅধীনে jreডিরেক্টরিতে লিঙ্ক ?
বিএই

45

ইন উবুন্টু 12.10 (Quantal কুয়েৎজাল) অথবা পরে, সার্টিফিকেট অনুষ্ঠিত হয় CA-সার্টিফিকেট জাভা প্যাকেজ। ব্যবহার -Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacertsকি JDK আপনি ব্যবহার করছেন নির্বিশেষে তাদের কুড়ান হবে।


54
আমি খুঁজে পেলাম যে update-ca-certificates -fক্যাসার্টস ফাইলটি পপুলেট করতে আমার নিজেই চালানো দরকার
Portablejim

4
@ পোর্টেবলজিম ধন্যবাদ আপনার মন্তব্যটি উবুন্টু 15.04 বেটাতে অ্যাপাচি স্পার্ক তৈরির প্রথম সমস্যার সমাধান করেছি।
পল

1
আপনাকে ধন্যবাদ @ পার্টেবলজিম, আপনার মন্তব্য আমার জন্য উবুন্টু 15.04 এ কাজ করেছে।
ডেভিড বার্গ

ধন্যবাদ। এটি পিএইচপিএসট্রোম + প্যাচড জেডিকে নিয়ে আমার সমস্যাটি স্থির হয়েছে। আমি এই কীটি "phpstorm64.vmoptions" ফাইলে লিখেছি।
বিজিত

উবুন্টুতে আমার জন্য কাজ করছেন না 18.04 এবং জেডিকে 1.8.0_62
দেবেন্দ্র

34

ওএস এক্স ভি 10.9 (ম্যাভেরিক্স) এ আপগ্রেড করার পরে জেডিকে ১.7 ব্যবহার করে আমি ওএস এক্স-তে এই সঠিক সমস্যাটি পেয়েছি । আমার জন্য ঠিক করা কাজটি হ'ল কেবলমাত্র জাভা-র অ্যাপল সংস্করণটি পুনরায় ইনস্টল করা, এটি http://support.apple.com/kb/DL1572 এ উপলব্ধ ।


ওএসএক্সে গ্রিল দ্বারা ব্যবহৃত জাভা 6 এর সাথে আমি এর মুখোমুখি হয়েছি। আমি ওরাকল থেকে জাভা 7ও ইনস্টল করেছিলাম এবং মাভারিক্সে আপগ্রেডও করেছি। অ্যাপল ওয়েবসাইট থেকে জাভা 6 পুনরায় ইনস্টল করাও আমার জন্য সমস্যাটি স্থির করেছে।
pm_labs

কোনও উবুন্টু ক্লাউড বাক্সে ওপেন জেডিকি 6 ইনস্টল করার সময় এটির মধ্যে দৌড়ে। একটি পরিচিত মুখটি দেখে ভাল লাগল, বিটিডাব্লু
বেন হাচিসন

30

আমি দৌড়ে গেলাম

sudo update-ca-certificates -f

একটি শংসাপত্র ফাইল তৈরি করতে এবং তারপরে:

sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

আমি ব্যবসায় ফিরে এসেছি, ধন্যবাদ ছেলেরা। এটি একটি আক্ষেপ যে এটি ইনস্টলেশনতে অন্তর্ভুক্ত নয়, তবে আমি শেষ পর্যন্ত সেখানে পৌঁছেছি।


আমি যখন চালাই sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure**আমি পাইsudo: /var/lib/dpkg/info/ca-certificates-java.postinst: command not found
Magick

শুধু sudo update-ca-certificates -fসঙ্গে ডেবিয়ান Jessie উপর যথেষ্ট openjdk-8-jre-headlessথেকে Jessie-ব্যাকপোর্ট যতদিন হিসেবে ca-certificates-javaইনস্টল করা হয়। আমি মনে করি ইনস্টলেশন সংক্রান্ত ক্রমগুলির অর্ডার (জেআরই পরে ca-certificates-javaএটির কারণ হতে পারে, কারণ পরবর্তী জাভা 8 এর জন্য কোনও ট্রিগার নেই)।
মীরাবিলো

2
sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure তারা ছাড়া **
ইউ জিয়াও

update-ca-certificates -fজিনিস এটি স্থির করে। আমার দ্বিতীয় কমান্ডের দরকার নেই
মার্ক জেরোনিমাস

17

ত্রুটিটি বলে যে সিস্টেমটি প্যারামিটারের সাথে সরবরাহিত পথে ট্রাস্টস্টোর খুঁজে পাবে না javax.net.ssl.trustStore

উইন্ডোজ এর অধীনে আমি cacertsফাইলটি jre/lib/securityএক্লিপ্স ইনস্টল ডিরেক্টরিতে ( eclipse.iniফাইলের মতো একই জায়গা ) অনুলিপি করে নীচের সেটিংসটিতে এতে যুক্ত করেছি eclipse.ini:

-Djavax.net.ssl.trustStore=cacerts
-Djavax.net.ssl.trustStorePassword=changeit
-Djavax.net.ssl.trustStoreType=JKS

ক্যাসর্টের পথে আমার কিছুটা সমস্যা হয়েছিল (% java_home% পরিবেশের পরিবর্তনশীল কোনওভাবে ওভাররাইট করা হয়), তাই আমি এই তুচ্ছ সমাধানটি ব্যবহার করেছি used

ধারণাটি হ'ল ট্রাস্টস্টোর ফাইলটির একটি বৈধ পথ প্রদান করা - আদর্শভাবে এটি কোনও আপেক্ষিকটি ব্যবহার করা হবে। আপনি একটি পরম পথও ব্যবহার করতে পারেন।

স্টোরের প্রকারটি জেকেএস নিশ্চিত করার জন্য, আপনি নিম্নলিখিত কমান্ডটি চালাবেন:

keytool -list -keystore cacerts

Keystore type: JKS
Keystore provider: SUN

2
এটিই কেবলমাত্র উত্তর যা আসলে কাজ করেছিল। ধন্যবাদ @ রাজাওয়ানোন
অক্ষর প্যাটেল

1
আমি একটি ছোট "গোটচা" হিট করতে পেরেছি: গ্রহগ্রহ.ইনাই ফাইলটিতে তিনটি লাইন অবশ্যই তিনটি পৃথক লাইনে থাকতে হবে। আমি প্রথমে তাদের সকলকে এক লাইনে রেখেছিলাম এবং গ্রহনটি তা তুলে নেয়নি।
সিকিং

16

সিএ-সার্টিফিকেট-জাভা প্যাকেজটি সরিয়ে ফেলা এবং এটি পুনরায় ইনস্টল করা আমার পক্ষে কাজ করেছে ( উবুন্টু মেট 17.10 (আর্টফুল আর্ডভার্ক))।

sudo dpkg --purge --force-depends ca-certificates-java

sudo apt-get install ca-certificates-java

আপনাকে ধন্যবাদ, জেডিস্ট্র্যান্ড: বাগ 983302 এর জন্য মন্তব্য 1, পুনরায়: সিএ-সার্টিফিকেট-জাভা ওয়ানিরিক ওসেলোটে জাভা ক্যাসর্ট ইনস্টল করতে ব্যর্থ হয়েছে


11

ওএস এক্স ভি 10.9 (ম্যাভেরিক্স) এ আপগ্রেড করার পরে আমার অনেক সুরক্ষা সমস্যা রয়েছে :

  • অ্যামাজন এডাব্লুএস-এর সাথে SSL সমস্যা
  • পিয়ার ম্যাভেন এবং ইকলিপসের সাথে অনুমোদনপ্রাপ্ত নয়
  • trustAnchors প্যারামিটারটি অবশ্যই খালি থাকতে হবে

আমি এই জাভা আপডেটটি প্রয়োগ করেছি এবং এটি আমার সমস্ত সমস্যার সমাধান করেছে: http://support.apple.com/kb/DL1572?viewlocale=en_US


5
বিতৃষ্ণা। জাভা 6 এর জনসাধারণের সমর্থন শেষ হওয়ার অনেক বছর পূর্বে এবং এটি অবশ্যই সুরক্ষা গর্তগুলিতে ছাঁটাইয়াছে। অ্যাপল এটি ডাউনলোডের জন্য উপলব্ধ করেছে যাতে পুরানো সফ্টওয়্যার যা জাভা 7/8 দিয়ে চালানো যায় না চালানো চালিয়ে যেতে পারে, তবে এটি পাবলিক ইন্টারনেটের পরিষেবাগুলিতে এসএসএল সংযোগ তৈরি করার জন্য ব্যবহার করা উচিত নয়, যেমন 1. এডাব্লুএস, ২. ম্যাভেন কেন্দ্রীয়, 3. অন্য কিছু।
জ্যাক থম্পসন

10

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

  • আপনার শংসাপত্রের স্টোরটি আপডেট করুন:

    sudo update-ca-certificates -f

তারপর

  • আপনার সূচনা পরামিতিগুলিতে একটি নতুন মান যুক্ত করুন

    sudo gedit $(path to your architecture specific ini i.e. TOS_DI...ini)
    
    Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts

আমার জন্য, দ্বিতীয় এন্ট্রি কাজ করেছে। আমি মনে করি, টেলেন্ডার ওপেন স্টুডিও / টিেন্ট + জেভিএম এর সংস্করণ অনুসারে এর আলাদা প্যারামিটারের নাম রয়েছে তবে এটি একই কীস্টোর ফাইলটির সন্ধান করে।


4
সম্পত্তিটি আপনি কোথা javax.net.ssl.trustAnchorsথেকে পেয়েছেন? এটি জেএসএসই ডকুমেন্টেশনে উল্লেখ করা হয়নি।
লার্নের মারকুইস

10

আমার জন্য এটি ট্রাস্টস্টোরের একটি বিশ্বস্তকার্টেনট্রি না থাকার কারণে হয়েছিল।

পরীক্ষা করতে, ব্যবহার করুন:

keytool -list -keystore keystore.jks

এটি আমাকে দেয়:

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

cert-alias, 31-Jul-2017, PrivateKeyEntry

যদিও আমার প্রাইভেটকি এন্ট্রিতে সিএ রয়েছে এটি আলাদাভাবে আমদানি করা দরকার :

keytool -import -alias root-ca1 -file rootca.crt -keystore keystore.jks

এটি শংসাপত্রটি আমদানি করে এবং তারপরে পুনরায় চালানো keytool -list -keystore keystore.jksএখন দেয়:

Your keystore contains 2 entries

cert-alias, 31-Jul-2017, PrivateKeyEntry,
Certificate fingerprint (SHA1):
<fingerprint>
root-ca1, 04-Aug-2017, trustedCertEntry,
Certificate fingerprint (SHA1):
<fingerprint>

এখন এটির একটি বিশ্বস্ত কার্টেন্ট্রি রয়েছে, এবং টমক্যাট সফলভাবে শুরু হবে।


এনবি কীস্টোর ও ট্রাস্টস্টোর (স্প্রিং-সিকিউরিটি-
এক্স

9

কিছু ওপেনজেডিকে বিক্রেতাদের cacertsবাইনারি দিয়ে খালি ফাইল বিতরণ করে এর কারণ ঘটেছে। বাগটি এখানে ব্যাখ্যা করা হয়েছে: https://github.com/AdoptOpenJDK/openjdk-build/issues/555

আপনি adoptOpenJdk8\jre\lib\security\cacertsকোনও পুরানো ইনস্টল্লেশন থেকে ফাইলটিতে অনুলিপি করতে পারেন c:\Program Files\Java\jdk1.8.0_192\jre\lib\security\cacerts

অ্যাডাপ্টওপেনজেডি কে বগি সংস্করণটি https://github.com/AdoptOpenJDK/openjdk8-relayss/releases/download/jdk8u172-b11/OpenJDK8_x64_Win_jdk8u172-b11.zip


আমি মনে করি এটি আমার ক্ষেত্রেও ছিল। অ্যাডাপ্টওপেনজেডিডি 202 এ এই বাগটি উপস্থিত রয়েছে এবং 222 এ এটি কাজ করে। তাই সম্ভব হলে আপনার জেডিকে আপডেট করুন।
মার্টি

6

আপনি যদি এটি জেডিকে 9 এবং মাভেনের সাহায্যে উবুন্টুতে অনুভব করেন তবে আপনি এই জেভিএম বিকল্পটি যুক্ত করতে পারেন - প্রথমে পথটি রয়েছে কিনা তা পরীক্ষা করে দেখুন:

-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts

যদি ফাইলটি অনুপস্থিত থাকে তবে সিএ-সার্টিফিকেট-জাভা ইনস্টল করার চেষ্টা করুন কেউ যেমন উল্লেখ করেছেন:

sudo apt install ca-certificates-java

আপনি যদি ডকার ব্যবহার করেন তবে আপনি "ম্যাভেন: 3-জেডিকি -9-স্লিম" চিত্রটি "ম্যাভেন: 3-জেডিকে -9" এর পরিবর্তেও চেষ্টা করতে পারেন
কনস্টান্টিন পাভলভ

ধন্যবাদ, এটি আমার জন্য উবুন্টু 18.04-এ ওপেনডিজ-8-জেডিকে জন্য কাজ করেছে
আফতাব নাভিদ

4

আমার লিনাক্সে জাভা 9.0.1 এ এই ত্রুটি বার্তাটি ছিল। এটি জেডিকে-র একটি ত্রুটিযুক্ত ত্রুটির কারণে ছিল, যেখানে ক্যাটারস ফাইলটি .tar.gz বাইনারি প্যাকেজে খালি ( http://jdk.java.net/9/ থেকে ডাউনলোড করা )।

জেডিকে 9.0.1 রিলিজ নোটগুলির "জ্ঞাত সমস্যাগুলি" অনুচ্ছেদ দেখুন , বলেছিলেন যে "ওপেনজেডকে 9 এ ডিফল্টরূপে টিএলএস কাজ করে না"।

ডেবিয়ান / উবুন্টু (এবং সম্ভবত অন্যান্য ডেরাইভেটিস) এ, "সিএ-সার্টিফিকেট-জাভা" প্যাকেজটির একটি দিয়ে ক্যাসর্টস ফাইলটি প্রতিস্থাপন করা একটি সহজ কাজ।

sudo apt install ca-certificates-java
cp /etc/ssl/certs/java/cacerts /path/to/jdk-9.0.1/lib/security/cacerts

রেড হ্যাট লিনাক্স / সেন্টস-এ, আপনি "সিএ-সার্টিফিকেট" প্যাকেজ থেকে একই কাজ করতে পারেন:

sudo yum install ca-certificates
cp /etc/pki/java/cacerts /path/to/jdk-9.0.1/lib/security/cacerts

4

উবুন্টু 16.04 এলটিএস (জেনিয়াল জেরাস) থেকে উবুন্টু 18.04 এ আপগ্রেড করার পরে, ম্যাভেন 3 ব্যবহার করার চেষ্টা করার সময় আমার এই সমস্যা হয়েছিল এলটিএস (বায়োনিক বিভার) এ ।

/ ইউএসআর / লিবিব / জেভিএম / জাভা -8-ওরাকল / জেআর / লিবিব / সুরক্ষা পরীক্ষা করে দেখানো হয়েছে যে আমার ক্যাচার্ট ফাইলটি প্রতীকী লিঙ্কটি নির্দেশ করছে /etc/ssl/certs/java/cacerts

আমার সন্দেহজনকভাবে একটি ফাইলও ছিল cacerts.original

আমি নতুন নামকরণ cacerts.originalকরা cacerts, এবং যে সমস্যা সমাধান করা হয়েছে।


cacerts.originalফাইলের মধ্যে ছিল jksবিন্যাস এবং উবান্টু 16,04 এর জাভা 8, যা তার ডিফল্ট হিসাবে যে বিন্যাস ব্যবহৃত তৈরি করেছিল। cacertsফাইলের মধ্যে ছিল pkcs12ফরম্যাট, উবুন্টু 18.04 দ্বারা উত্পন্ন জাভা 10, যা তার ডিফল্ট হিসাবে এই বিন্যাস ব্যবহার করে। এই থ্রেডে অন্য কোথাও ব্যাখ্যা করা হয়েছে, নতুন ফর্ম্যাটের জন্য আপনাকে এক্সিকিউটেবলের কাছে পাসওয়ার্ডটি পাস করতে হবে। তবে আপনি যতক্ষণ না কোনও নতুন খালি jks cacertsফাইল তৈরি করেন বা একটি পুরানো ফাইলটি অনুলিপি করেন, ততক্ষণে পরবর্তী ক্যাসের্টস উত্পাদন প্রক্রিয়া বিদ্যমান ফাইলটি খালি করে দেবে এবং ফাইল সিস্টেম থেকে CA শংসাপত্রগুলি দিয়ে এটি পুনরায় পূরণ করবে।
মিকেল গুইক

3

ওএস এক্স ভি 10.9 (ম্যাভেরিক্স) আপডেট করার পরে আমি ওএস এক্সেও এর মুখোমুখি হয়েছিলাম, যখন পুরানো জাভা 6 ব্যবহার করা হয়েছিল এবং কোনও এইচটিটিপিএস ইউআরএল অ্যাক্সেস করার চেষ্টা করা হয়েছিল। ফিক্সটি পিটার ক্রিয়েন্সের বিপরীত ছিল; আমার cacerts১.7 স্পেস থেকে ১. by সংস্করণ দ্বারা সংযুক্ত অবস্থানটিতে অনুলিপি করা দরকার :

(as root)
umask 022
mkdir -p /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security
cp $(/usr/libexec/java_home -v 1.7)/jre/lib/security/cacerts \
    /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security

1
কমান্ডটি একটি ডিরেক্টরিতে একটি ডিরেক্টরি অনুলিপি করার চেষ্টা করে; সব সময়ে কোন জ্ঞান করে তোলে.
praseodym

আমি একটি বিপরীত সমাধান ব্যবহার করে মূল্যায়নের সাথে একমত। আমি দেখেছি যে jdk1.6 এর একটি ভাঙা সফটলিঙ্ক ছিল / লাইব্রেরি / জাভা / জাভা ভার্চুয়ালম্যাচাইনস / 1.6.0_33-b03-424.jdk/Cretents/Home/lib/security/cacerts -> / সিস্টেম / লাইবারি / জাভা / সমর্থনপোর্ট / কোরডপ্লাই.বান্ডল / সূচিপত্র / হোম / lib / অনুপস্থিত নিরাপত্তা / cacerts। সুতরাং আমি ভাঙা নরম লিঙ্কটি rm'ed করেছি, তারপরে jdk1.7 ইনস্টলেশন থেকে ক্যাসর্টগুলির উপরে অনুলিপি করেছি।
জেমস এ উইলসন

দ্রষ্টব্য: আপনার কাজ শেষ হয়ে গেলে আপনি অনুমতিগুলি যাচাই করতে কপিরাইট ফাইলটি অনুলিপি করতে সক্ষম হবেন।
ধূসর

এছাড়াও, সঠিক দিকে যেতে সিপিকে স্থির করে এমকেডির এবং সিপির জন্য উমাস্ক যুক্ত করুন।
ধূসর

3

আমার ক্ষেত্রে ক্লায়েন্ট অ্যাপ্লিকেশনটিতে ব্যবহৃত জেকেএস ফাইলটি দূষিত হয়েছিল। আমি একটি নতুন তৈরি করেছি এবং এতে গন্তব্য সার্ভার এসএসএল শংসাপত্রগুলি আমদানি করেছি। তারপরে আমি ক্লায়েন্ট অ্যাপ্লিকেশনে নতুন জিকেএস ফাইলটি একটি ট্রাস্ট স্টোর হিসাবে ব্যবহার করেছি, যেমন:

System.setProperty("javax.net.ssl.trustStore",path_to_your_cacerts_file);

উত্স: জাভা এসএসএল এবং শংসাপত্র কীস্টোর

আমি নতুন জে কেএস তৈরি করতে (কীস্টোর এক্সপ্লোরার) সরঞ্জামটি ব্যবহার করি। আপনি কীস্টোর এক্সপ্লোরার এই লিঙ্কটি থেকে এটি ডাউনলোড করতে পারেন ।


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

3

স্প্রিং বুট 1.4.1 (বা আরও নতুন) এ আপগ্রেড করার পরেও আপনি এই ত্রুটির মুখোমুখি হতে পারেন কারণ এটি নির্ভরতার অংশ হিসাবে টমক্যাট 8.5.5 নিয়ে আসে ।

টমক্যাট বিশ্বস্ত দোকানটির সাথে যেভাবে আচরণ করে সে কারণে সমস্যা। যদি আপনি স্প্রিং বুট কনফিগারেশনে আপনার কীস্টোরের মতো আপনার বিশ্বাসের স্টোরের অবস্থানটি নির্দিষ্ট করে থাকেন trustAnchors parameter must be non-emptyতবে অ্যাপ্লিকেশনটি শুরু করার সময় আপনি সম্ভবত বার্তাটি পাবেন ।

server.ssl.key-store=classpath:server.jks
server.ssl.trust-store=classpath:server.jks

server.ssl.trust-storeআপনার প্রয়োজনটি না জানা থাকলে কেবল কনফিগারেশনটি সরিয়ে ফেলুন, এক্ষেত্রে নীচের লিঙ্কগুলির সাথে পরামর্শ করুন।

নিম্নলিখিত সমস্যাগুলিতে সমস্যা সম্পর্কে আরও বিশদ রয়েছে:


3

অ্যান্ড্রয়েড এসডিকে sdkmanager দিয়ে আমি এই সমস্যার মুখোমুখি হয়েছি। আমার জন্য এই সমাধানটি কাজ করেছে:

  1. যাও /usr/lib/jvm/java-8-oracle/jre/lib/security/
  2. cacertসঙ্গে প্রতিস্থাপনcacert.original

cacertফাইলটি একটি অতি ক্ষুদ্র এক (22B) ছিল। আমি ইনস্টল করা আছে oracle-java8-installerথেকে ppa:webupd8team/java(: এই ম্যানুয়াল অনুযায়ী https://docs.nativescript.org/start/ns-setup-linux )।


2

রেকর্ডের জন্য, এখানে উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করেনি । আমার গ্রেডল বিল্ডটি এই ত্রুটিটি দিয়ে রহস্যজনকভাবে ব্যর্থ হতে শুরু করে, কোনও নির্দিষ্ট পিওএমের জন্য মাভেন কেন্দ্রীয় থেকে হেড আনতে অক্ষম ফাইলের ।

দেখা গেল যে আমার কাছে জাভা_হোম নিজের নিজস্ব ব্যক্তিগত বিল্ড ওপেনজেডিকেতে সেট করেছে যা আমি জাভাক সমস্যাটি ডিবাগ করার জন্য তৈরি করেছি। এটি আমার সিস্টেমে ইনস্টল করা জেডিকে ফিরিয়ে দেওয়া এটিকে ঠিক করে দিয়েছে।


... যা অন্যান্য উত্তর অনুসারে ট্রাস্টস্টোরকে খুঁজে পাওয়া যায়নি।
লার্নের মারকুইস

1
হ্যাঁ, তবে ট্রস্টস্টোরটি খুঁজে পাওয়া যায় না তা জেনে রাখা সম্পূর্ণরূপে অসফল হয় যদি আপনি এটি কেন খুঁজে পাচ্ছেন না তা যদি বুঝতে না পারেন । এটি ভুল হতে পারে এমন অনেকগুলি সম্ভাব্য উপায় রয়েছে এবং হতাশার কারণ হ'ল যখন এগুলির কোনওটিই আপনার নিজের সিস্টেমের জন্য এটি ব্যর্থ হচ্ছে way
ব্যবহারকারী 3562927

এগুলি সমস্তই 'ত্রুটি' হ'ল একই ত্রুটি: উল্লিখিত ট্রাস্টস্টোরটি খোলা যায়নি বা খালি ছিল। এমন এক মিলিয়ন উপায়ে রয়েছে যেখানে এই পরিস্থিতি দেখা দিতে পারে এবং এসওগুলিকে সমস্ত উল্লেখ করার মতো পর্যাপ্ত জায়গা নেই।
লার্নের মারকুইস

1

রেড হ্যাট লিনাক্সে আমি শংসাপত্রগুলি আমদানি করে এই সমস্যার সমাধান করেছি /etc/pki/java/cacerts


1
System.setProperty("javax.net.ssl.trustStore", "C:\\Users\\user-id\\Desktop\\tomcat\\cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "passwd");

আপনার কোডে আপনাকে উপরের দুটি লাইন যুক্ত করতে হবে। এটি ট্রাস্টস্টোরটি সন্ধান করতে সক্ষম নয়।


2
যদি আপনি এটি না করেন তবে এটি জেআরই ট্রাস্টস্টোর ব্যবহার করবে এবং এটি অবশ্যই এটি সন্ধান করতে সক্ষম হবে। ত্রুটি এই প্যারামিটারগুলিতে ভুল মানগুলির কারণে ঘটেছিল, তাদের অনুপস্থিতি নয়। আপনার কোডে নামকৃত ফাইলটি কেবল আপনার ইনস্টলেশনটিতে প্রযোজ্য, সাধারণত নয়।
লার্নের মারকুইস

এই বৈশিষ্ট্যগুলি নির্ধারণের যথাযথ উপায় হ'ল কমান্ড লাইনে তাদের পাস করে দেওয়া: java -Djavax.net.ssl.trustStore=/tmp/cacerts ...বা আপনি যদি জেডিকে দিয়ে চালিত সমস্ত প্রোগ্রামের জন্য বিশ্বব্যাপী সেট করতে চান তবে জেডিকে management.propertiesফাইলটিতে সারি যুক্ত করুন।
মিকেল গুইক

1

উবুন্টু 14.04 (বিশ্বস্ত তাহর) এর পরীক্ষার জন্য অ্যান্ড্রয়েডের একটি বিশেষ স্যুট চালানোর সময় আমি এই সমস্যার মুখোমুখি হয়েছি । শাহিনের পরামর্শ অনুযায়ী আমার পক্ষে দুটি জিনিস কাজ করেছিল:

sudo update-ca-certificates -f

sudo /var/lib/dpkg/info/ca-certificates-java.postinst configure

1

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

প্রথমে চালিয়ে আপনার জাভা ফোল্ডারটি সন্ধান করুন /usr/libexec/java_home। আমার জন্য এটি 1.6.0.jdkসংস্করণ ছিল । তারপরে তার lib/securityসাবফোল্ডারে যান (আমার জন্য /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/security)।

তারপরে cacertsফাইলটি মুছে ফেলুন যদি ইতিমধ্যে একটি থাকে এবং সিস্টেমে একটিতে সন্ধান করুন sudo find / -name "cacerts"। এটি আমার জন্য এক্সকোডের সংস্করণ বা আমি ইনস্টল করা অন্যান্য অ্যাপ্লিকেশনগুলির সংস্করণে একাধিক আইটেম খুঁজে পেয়েছিল, তবে এটিতেও /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/cacertsআমি পছন্দ করেছিলাম।

সেই ফাইলটি ব্যবহার করুন এবং এর সাথে একটি প্রতীকী লিঙ্ক তৈরি করুন (আগে থেকেই জাভা ফোল্ডারের অভ্যন্তরে) sudo ln -fsh "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/security/cacerts", এবং এটির কাজ করা উচিত।

আমার উভয়ই রয়েছে - অ্যাপলের 2017-001 ডাউনলোড থেকে জাভা ( https://support.apple.com/kb/dl1572 - আমি ধরে নিয়েছি যে সঠিক শংসাপত্রগুলি কোথা থেকে এসেছে) এবং ওরাকল ম্যাক ওএস এক্স ভি 10.12 (সিয়েরা) এ ইনস্টল করা আছে ।


1

পিপিএ থেকে ওপেনডাবডিক 11 সহ উবুন্টু 14.04-এ: ওপেনড্যাড-আর / পিপিএ এটি আমার পক্ষে কাজ করেছে:

জাভা.সিকিউরিটিতে কীস্টোর টাইপ করুন

keystore.type=jks

তারপর:

sudo dpkg --purge --force-depends ca-certificates-java
sudo apt-get install ca-certificates-java

আপনি যদি এটি পরীক্ষা করে থাকেন কিনা তা নিশ্চিত হয়ে নিন যে আপনি এখনও পুরানো জাভা ব্যবহার করে কোনও ডিমন ব্যবহার করছেন না (যেমন --no-daemonগ্রেডেলের বিকল্প)

এই বাগটি সমস্ত কিছু সুন্দরভাবে বর্ণনা করে এবং আপনাকে https://bugs.launchpad.net/ubuntu/+source/ca-cer ર્ટates-java/+bug/1739631 কী চলছে তা বুঝতে সহায়তা করবে


1

উবুন্টুতে 18.04 এ আমার একটি পুরানো প্রকল্পের রক্ষণাবেক্ষণের জন্য ওপেনজেডিके 1.7 ব্যবহার করা দরকার। আমি বাইনারি প্যাকেজটি ডাউনলোড করেছি। কিন্তু আমি যখন এটিতে আমার স্ক্রিপ্টটি কার্যকর করি তখন আমি একই ত্রুটি পেয়েছি।

সমাধানটি হ'ল ফোল্ডারে cacertsডাউনলোড করা জেডিকে ফাইলটি সরিয়ে ফেলা jre/lib/securityএবং তারপরে এটিতে সিস্টেম cacertsফাইলগুলিতে সিএমলিংক হিসাবে তৈরি করা /etc/ssl/certs/java/:

sudo ln -s /etc/ssl/certs/java/cacerts /path/to/downloaded/java/jre/lib/security/cacerts


1

পাতলা সুযোগ এটি যে কাউকে সহায়তা করবে কিন্তু .... যে কোনও জাভা 8 এর জন্য একজন রাস্পবেরি পাইয়ের একটি ডকার ইমেজ থেকে (এমডি সিপিইউ ব্যবহার করে) চালাচ্ছেন আমি আমার জন্য সফলভাবে তৈরি এবং চালানোর জন্য নিম্নলিখিত ডকফেরাইল পেয়েছি

FROM hypriot/rpi-java
USER root

WORKDIR /usr/build/

RUN /usr/bin/printf '\xfe\xed\xfe\xed\x00\x00\x00\x02\x00\x00\x00\x00\xe2\x68\x6e\x45\xfb\x43\xdf\xa4\xd9\x92\xdd\x41\xce\xb6\xb2\x1c\x63\x30\xd7\x92' > /etc/ssl/certs/java/cacerts
RUN update-ca-certificates -f
RUN /var/lib/dpkg/info/ca-certificates-java.postinst configure

EXPOSE 8080

ARG JAR_FILE=target/app-0.0.1-SNAPSHOT.jar

ADD ${JAR_FILE} app.jar

ENTRYPOINT ["java", "-Djavax.net.ssl.trustStorePassword=changeit", "-Djavax.net.ssl.trustStore=/etc/ssl/certs/java/cacerts", "-jar", "app.jar"]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.