में उबंटू 18.04 , इस त्रुटि का कारण भिन्न होता है (से JEP 229, स्विच jks
करने के लिए कुंजी संग्रह डिफ़ॉल्ट प्रारूप pkcs12
प्रारूप, और Debian नई फ़ाइलों के लिए डिफ़ॉल्ट का उपयोग कर फ़ाइल पीढ़ी 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) , बग को Ubuntu Bionic LTS 18.04.1 और Ubuntu Cosmic 18.10 में तय किया गया है।
🗹 उबंटू 1770553: [एसआरयू] कॉस्मिक से बैकपोर्ट सीए-सर्टिफिकेट-जावा (20180413ubuntu1)
🗹 उबंटू 1769013: कृपया डेब्यू अस्थिर (मुख्य) से सीए-सर्टिफिकेट-जावा 20180413 (मुख्य) को मर्ज करें
🗹 उबंटू 1739631: JDK 9 के साथ ताजा इंस्टॉल जेनरेट किए गए PKCS12 कैसैटर्स कीस्टोर फाइल का उपयोग नहीं कर सकता है
K डॉक -लाइब्रेरी 145: 9-jdk इमेज में SSL समस्याएँ हैं
🗹 डेबियन 🗹 ९ ४ ९: ९: सीए-सर्टिफिकेट-जावा: ओपनजेडके ९ के साथ काम नहीं करता है, आवेदन अमान्य के साथ विफल होते हैं। एल्गोरिथ्मपैरमीटेप्शन अपवाद: ट्रस्ट एंकर पैरामीटर गैर-रिक्त होना चाहिए
🗹 JDK-8044445: JEP 229: डिफ़ॉल्ट रूप से PKCS12 कीस्टोर्स बनाएं
🖺 JEP 229: डिफ़ॉल्ट रूप से PKCS12 कीस्टोर्स बनाएं
यदि समस्या इस समाधान के बाद भी जारी रहती है, तो आप यह सुनिश्चित कर सकते हैं कि आप वास्तव में जावा वितरण को चला रहे हैं जिसे आपने अभी तय किया है।
$ 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
फ़ाइल को हटा दें और पोस्ट के शीर्ष पर वर्कअराउंड स्क्रिप्ट की अंतिम पंक्ति में वर्णित तरीके से इसे पुन: उत्पन्न करें।