Saya mencoba mendapatkan tweet menggunakan perpustakaan twitter4j untuk proyek java saya. Pada jalankan pertama saya, saya mendapat kesalahan tentang sertifikat sun.security.validator.ValidatorException
dan sun.security.provider.certpath.SunCertPathBuilderException
. Kemudian saya menambahkan sertifikat twitter dengan:
C:\Program Files\Java\jdk1.7.0_45\jre\lib\security>keytool -importcert -trustcacerts -file PathToCert -alias ca_alias -keystore "C:\Program Files\Java\jdk1.7.0_45\jre\lib\security\cacerts"
Tetapi tanpa hasil. Berikut adalah prosedur untuk mendapatkan tweet:
public static void main(String[] args) throws TwitterException {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true)
.setOAuthConsumerKey("myConsumerKey")
.setOAuthConsumerSecret("myConsumerSecret")
.setOAuthAccessToken("myAccessToken")
.setOAuthAccessTokenSecret("myAccessTokenSecret");
TwitterFactory tf = new TwitterFactory(cb.build());
Twitter twitter = tf.getInstance();
try {
Query query = new Query("iphone");
QueryResult result;
result = twitter.search(query);
System.out.println("Total amount of tweets: " + result.getTweets().size());
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
System.out.println("@" + tweet.getUser().getScreenName() + " : " + tweet.getText());
}
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
}
Dan inilah kesalahannya:
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=d35baff5 or
http://www.google.co.jp/search?q=1446302e
TwitterException{exceptionCode=[d35baff5-1446302e 43208640-747fd158 43208640-747fd158 43208640-747fd158], statusCode=-1, message=null, code=-1, retryAfter=-1, rateLimitStatus=null, version=3.0.5}
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177)
at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61)
at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:81)
at twitter4j.TwitterImpl.get(TwitterImpl.java:1929)
at twitter4j.TwitterImpl.search(TwitterImpl.java:306)
at jku.cc.servlets.TweetsAnalyzer.main(TweetsAnalyzer.java:38)
Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at twitter4j.internal.http.HttpResponseImpl.<init>(HttpResponseImpl.java:34)
at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:141)
... 5 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 20 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 26 more
Failed to search tweets: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Jawaban:
"more info" > "security" > "show certificate" > "details" > "export.."
. Ambil nama dan pilih tipe file example.cerSekarang Anda memiliki file dengan keystore dan Anda harus menambahkannya ke JVM Anda. Tentukan lokasi file cacerts, mis.
C:\Program Files (x86)\Java\jre1.6.0_22\lib\security\cacerts.
Selanjutnya impor
example.cer
file ke dalam cacerts di baris perintah:keytool -import -alias example -keystore C:\Program Files (x86)\Java\jre1.6.0_22\lib\security\cacerts -file example.cer
Anda akan dimintai kata sandi yang standarnya
changeit
Mulai ulang JVM / PC Anda.
sumber: http://magicmonster.com/kb/prg/java/ssl/pkix_path_building_failed.html
sumber
alias
Nama sertifikat di baris perintah juga harus unik.Setelah berjam-jam mencoba untuk membangun file cert untuk mendapatkan instalasi Java 6 saya bekerja dengan cert twitter baru, saya akhirnya menemukan solusi yang sangat sederhana terkubur dalam komentar di salah satu papan pesan. Cukup salin file cacerts dari instalasi Java 7 dan timpa yang ada di instalasi Java 6 Anda. Mungkin yang terbaik untuk membuat cadangan file cacerts terlebih dahulu, tetapi kemudian Anda tinggal menyalin yang baru ke dalam dan BOOM! itu hanya berfungsi.
Perhatikan bahwa saya benar-benar menyalin file Windows cacerts ke instalasi Linux dan itu berfungsi dengan baik.
File ini terletak di
jre/lib/security/cacerts
kedua instalasi Java jdk lama dan baru.Semoga ini bisa menyelamatkan seseorang dari kejengkelan.
sumber
$JAVA_HOME/jre/lib
, tidak$JAVA_HOME/lib
- saya menghabiskan sedikit waktu melewatkan detail itu.Pendekatan UI SAYA:
CMD-Line:
keytool -importcert -file jetty.crt -alias jetty -keystore $JAVA_HOME/jre/lib/security/cacerts
changeit
(Bisa berupa changeme di Mac)sumber
keytool -importcert -file dinardap_cert.cer –alias dinardap –keystore “%JAVA_HOME%/jre/lib/security/cacerts”
Saya telah menemukan masalah ini yang membutuhkan waktu berjam-jam penelitian untuk diperbaiki, khususnya dengan sertifikat yang dibuat secara otomatis, yang tidak seperti yang resmi, cukup rumit dan Java tidak begitu menyukainya.
Silakan periksa tautan berikut: Selesaikan Masalah dengan sertifikat di Jawa
Pada dasarnya Anda harus menambahkan sertifikat dari server ke sertifikat Java Home.
InstallCert
dan jalankan saat server berjalan, berikan argumen berikutserver[:port]
. Tidak diperlukan kata sandi, karena kata sandi asli berfungsi untuk sertifikat Java ("changeit").jssecerts
file di dalam direktori tempat Anda mengeksekusi Program (Jika dijalankan dari Eclipse maka pastikan Anda mengkonfigurasi Pekerjaan direktori diRun -> Configurations
).$JAVA_HOME/jre/lib/security
Setelah mengikuti langkah-langkah ini, koneksi dengan sertifikat tidak akan menghasilkan pengecualian lagi di Jawa.
Kode sumber berikut ini penting dan menghilang dari blog Oracle (Sun), satu-satunya halaman yang saya temukan ada di tautan yang disediakan, oleh karena itu saya lampirkan dalam jawaban untuk referensi apa pun.
sumber
SandeepanNath:test sandeepan.nath$ java InstallCert repo1.maven.org:443 Loading KeyStore /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/jre/lib/security/cacerts... Opening connection to repo1.maven.org:443 ... Starting SSL handshake... javax.net.ssl.SSLException: Received fatal alert: protocol_version .. Could not obtain server certificate chain
1. Periksa sertifikat
Cobalah untuk memuat URL target di browser dan lihat sertifikat situs (biasanya itu dapat diakses oleh ikon dengan tanda kunci. Itu ada di sisi kiri atau kanan bilah alamat browser) apakah itu kedaluwarsa atau tidak dipercaya oleh alasan lain.
2. Instal versi JRE dan JDK terbaru
Versi baru biasanya datang dengan set sertifikat tepercaya yang diperbarui.
Juga jika memungkinkan, hapus instalasi versi lama. Ini akan membuat kesalahan kesalahan konfigurasi eksplisit.
3. Periksa konfigurasi Anda:
4. Salin seluruh keystore dari versi Java yang baru
Jika Anda mengembangkan di bawah JDK selain yang terbaru yang tersedia - coba ganti
%JAVA_HOME%/jre/lib/security/cacerts
file dengan yang baru dari JRE terinstal terbaru (buat salinan cadangan terlebih dahulu) seperti yang disarankan @ jeremy-goodell dalam jawabannya.5. Tambahkan sertifikat ke keystore Anda
Jika tidak ada yang di atas menyelesaikan masalah Anda gunakan
keytool
untuk menyimpan sertifikat ke keystore Java:File dengan sertifikat dapat diperoleh dari browser seperti yang disarankan @MagGGG dalam jawabannya .
Catatan 1: Anda mungkin perlu mengulang ini untuk setiap sertifikat dalam rantai ke sertifikat situs Anda. Mulai dari yang root.
Catatan 2:
<alias_name>
harus unik di antara kunci-kunci di toko ataukeytool
akan menunjukkan kesalahan.Untuk mendapatkan daftar semua sertifikat di toko Anda dapat menjalankan:
Jika terjadi kesalahan, ini akan membantu Anda menghapus sertifikat dari toko:
sumber
Ini digunakan untuk melompati validasi sertifikat.
Peringatan Hanya digunakan untuk tujuan pengembangan karena ini tidak aman!
sumber
Saya memiliki situasi yang sedikit berbeda, ketika JDK dan JRE 1.8.0_112 hadir di sistem saya.
Saya mengimpor sertifikat CA baru ke
[JDK_FOLDER]\jre\lib\security\cacerts
menggunakan perintah yang sudah dikenal:Namun, saya terus mendapatkan kesalahan gagal membangun jalur PKIX yang sama .
Saya menambahkan informasi debug ke CLI java, dengan menggunakan
java -Djavax.net.debug=all ... > debug.log
. Dalam file debug.log, baris yang dimulai dengan trustStore adalah: sebenarnya menunjuk ke toko cacerts yang ditemukan di[JRE_FOLDER]\lib\security\cacerts
.Dalam kasus saya, solusinya adalah menyalin file cacerts yang digunakan oleh JDK (yang memiliki CA baru ditambahkan) dari yang digunakan oleh JRE dan yang memperbaiki masalah tersebut.
sumber
Latar Belakang Masalah:
Saya mendapatkan error berikut ketika saya mencoba menjalankan mvn clean install di proyek saya dan melalui Netbeans IDE clean and build option. Masalah ini disebabkan oleh sertifikat yang tidak tersedia ketika kami mengunduh melalui NET beans IDE / melalui command prompt, tetapi dapat mengunduh file melalui browser.
Kesalahan :
Resolusi:
1. Unduh sertifikat Url yang dimaksud:
2. Sekarang instal penyimpanan kunci untuk memperbaiki masalah.
Contoh perintah baris perintah / output:
sumber
Saya ingin mengimpor sertifikat untuk smtp.gmail.com
Satu-satunya solusi yang berfungsi untuk saya adalah 1. Masukkan perintah untuk melihat sertifikat ini
Salin dan simpan garis antara "----- BEGIN CERTIFICATE -----" dan "----- END CERTIFICATE -----" ke dalam file, gmail.cer
Lari
Masukkan kata sandi chageit
Klik ya untuk mengimpor sertifikat
Mulai ulang java
sekarang jalankan perintah dan Anda baik untuk pergi
sumber
Ini bukan jawaban khusus Twitter, tetapi ini adalah pertanyaan yang muncul ketika Anda mencari kesalahan ini. Jika sistem Anda menerima kesalahan ini saat menyambung ke situs web yang tampaknya memiliki sertifikat yang valid ketika dilihat di browser web , itu mungkin berarti situs web itu memiliki rantai sertifikat yang tidak lengkap .
Untuk ringkasan singkat masalah: Otoritas Sertifikat tidak menggunakan Sertifikat Root mereka untuk menandatangani sembarang sertifikat lama. Sebagai gantinya, mereka (biasanya) menandatangani sertifikat perantara yang juga memiliki set bendera Otoritas Sertifikat (yaitu, diizinkan untuk menandatangani sertifikat). Kemudian ketika Anda membeli sertifikat dari CA, mereka menandatangani CSR Anda dengan salah satu dari sertifikat perantara ini.
Toko trust Java Anda kemungkinan besar hanya memiliki Root Cert, bukan yang intermediate.
Situs yang salah konfigurasi dapat mengembalikan hanya sertifikat yang telah ditandatangani. Masalah: ditandatangani dengan sertifikat perantara yang tidak ada di toko kepercayaan Anda. Browser akan menangani masalah ini dengan mengunduh atau menggunakan sertifikat perantara dalam cache; ini memaksimalkan kompatibilitas situs web. Java dan alat-alat seperti OpenSSL, bagaimanapun, tidak akan. Dan itu akan menyebabkan kesalahan dalam pertanyaan.
Anda dapat memverifikasi kecurigaan ini dengan menggunakan Uji Qualys SSL . Jika Anda menjalankannya terhadap sebuah situs dan dikatakan
maka itu menegaskan. Anda juga dapat melihat ini dengan melihat jalur sertifikasi dan melihat teks Unduh Ekstra .
Cara memperbaikinya: administrator server perlu mengkonfigurasi server web untuk mengembalikan sertifikat perantara juga. Untuk Comodo, misalnya, ini adalah tempat
.ca-bundle
file berguna. Misalnya, dalam konfigurasi Apache dengan mod_ssl, Anda akan menggunakanSSLCertificateChainFile
pengaturan konfigurasi. Untuk nginx, Anda harus menggabungkan sertifikat antara dan sertifikat yang ditandatangani dan menggunakannya dalam konfigurasi sertifikat SSL. Anda dapat menemukan lebih banyak dengan mencari "rantai sertifikat tidak lengkap" online.sumber
Alasannya, kita mendapatkan kesalahan di atas adalah bahwa JDK dibundel dengan banyak sertifikat Certificate Authority (CA) yang tepercaya ke dalam file yang disebut 'cacerts' tetapi file ini tidak memiliki petunjuk dari sertifikat yang ditandatangani sendiri. Dengan kata lain, file cacerts tidak memiliki sertifikat yang ditandatangani sendiri kami diimpor dan karenanya tidak memperlakukannya sebagai entitas tepercaya dan karenanya memberikan kesalahan di atas.
Cara memperbaiki kesalahan di atas
Untuk memperbaiki kesalahan di atas, yang kita butuhkan adalah mengimpor sertifikat yang ditandatangani sendiri ke file cacerts.
Pertama, cari file cacerts. Kita perlu mencari tahu lokasi JDK. Jika Anda menjalankan aplikasi melalui salah satu IDE seperti Eclipse atau IntelliJ Idea, buka pengaturan proyek dan cari tahu apa lokasi JDK. Untuk mis. Pada Mac OS, lokasi khas file cacerts akan berada di lokasi ini / Library / Java / JavaVirtualMachines / {{JDK_version}} / Isi / Rumah / jre / lib / keamanan pada mesin Window itu akan berada di bawah {{Installation_directory} } / {{JDK_version}} / jre / lib / security
Setelah Anda menemukan file cacerts, sekarang kami perlu mengimpor sertifikat yang ditandatangani sendiri ke file cacerts ini. Periksa artikel terakhir, jika Anda tidak tahu cara membuat sertifikat yang ditandatangani sendiri dengan benar.
Jika Anda tidak memiliki file sertifikat (.crt) dan hanya memiliki file .jks Anda dapat menghasilkan file .crt dengan menggunakan perintah di bawah ini. Jika Anda sudah memiliki file .crt / .pem maka Anda dapat mengabaikan perintah di bawah ini
## Untuk menghasilkan sertifikat dari keystore (file .jks) ####
Langkah di atas akan menghasilkan file bernama selfsigned.crt.Now Impor sertifikat ke cacerts
Sekarang tambahkan sertifikat ke JRE / lib / security / cacerts (trustore)untuk mis
Itu saja, restart aplikasi Anda dan itu akan berfungsi dengan baik. Jika masih tidak berhasil dan dapatkan pengecualian jabat tangan SSL. Itu mungkin berarti Anda menggunakan domain yang berbeda kemudian terdaftar dalam sertifikat.
Tautan dengan penjelasan terperinci dan resolusi langkah demi langkah ada di sini.
sumber
Menambahkan
cacerts
tidak berfungsi untuk saya. Setelah mengaktifkan log dengan flag-Djavax.net.debug=all
, kemudian datang untuk mengetahui membaca java darijssecacerts
.Impor untuk
jssecacerts
bekerja akhirnya.sumber
jssecacerts
jika ada, jika tidakcacerts
.Ini adalah solusi tetapi dalam bentuk cerita saya dengan masalah ini:
Saya hampir mati mencoba semua solusi yang diberikan di atas (selama 3 hari) dan tidak ada yang berhasil untuk saya.
Saya kehilangan semua harapan.
Saya menghubungi tim keamanan saya mengenai hal ini karena saya berada di belakang proxy dan mereka mengatakan bahwa mereka baru saja memperbarui kebijakan keamanan mereka.
Saya memarahi mereka karena tidak memberi tahu Pengembang.
Kemudian mereka mengeluarkan file "cacerts" baru yang berisi semua sertifikat.
Saya menghapus file cacerts yang ada di dalam% JAVA_HOME% / jre / lib / security dan itu memecahkan masalah saya.
Jadi, jika Anda menghadapi masalah ini, mungkin dari tim jaringan Anda juga seperti ini.
sumber
Saya menemukan pertanyaan ini ketika mencoba untuk menginstal plugin Cucumber-Eclipse di Eclipse melalui situs pembaruan mereka. Saya menerima kesalahan SunCertPathBuilderException yang sama:
Sementara beberapa jawaban lain sesuai dan bermanfaat untuk situasi yang diberikan pertanyaan ini, mereka tetap tidak membantu dan menyesatkan untuk masalah saya.
Dalam kasus saya, masalahnya adalah bahwa URL yang disediakan untuk situs pembaruan mereka adalah:
Namun ketika menavigasi ke sana melalui browser, itu diarahkan ke (perhatikan " .github " yang ditambahkan ):
Jadi resolusinya adalah dengan hanya menggunakan versi yang diarahkan dari URL situs pembaruan ketika menambahkan situs pembaruan di gerhana.
sumber
Saya menghadapi masalah yang sama dan menyelesaikannya menggunakan langkah-langkah sederhana di bawah ini:
1) Unduh InstallCert.java dari google
2) Kompilasi menggunakan javac InstallCert.java
3) Jalankan InstallCert.java menggunakan java InstallCert.java , dengan hostname dan port https, dan tekan “1” ketika meminta input. Ini akan menambahkan "localhost" sebagai keystore tepercaya, dan menghasilkan file bernama "jssecacerts" seperti di bawah ini:
java InstallCert localhost: 443
4) salin jssecacerts ke dalam folder $ JAVA_HOME / jre / lib / security
Sumber utama untuk menyelesaikan masalah di sini adalah:
https://ankurjain26.blogspot.in/2017/11/javaxnetsslsslhandshakeexception.html
sumber
Saya memecahkan masalah ini pada Windows Server 2016 dengan Java 8, dengan mengimpor cert dari
pkcs12
store kecacerts
keystore.Path ke pkcs12 store:
C:\Apps\pkcs12.pfx
Path to Java cacerts:
C:\Program Files\Java\jre1.8.0_151\lib\security\cacerts
Path to keytool:
C:\Program Files\Java\jre1.8.0_151\bin
Setelah memiliki ke folder dengan keytool di command prompt (sebagai administrator), perintah untuk mengimpor cert dari
pkcs12
kecacerts
adalah sebagai berikut:keytool -v -importkeystore -srckeystore C:\Apps\pkcs12.pfx -srcstoretype PKCS12 -destkeystore "C:\Program Files\Java\jre1.8.0_151\lib\security\cacerts" -deststoretype JKS
Anda akan diminta untuk:
1. memasukkan password keystore tujuan (cacerts pasword, standarnya adalah "changeit")
2. masukkan kata sandi keystore sumber (kata sandi pkcs12)
Agar perubahan diterapkan, mulai ulang mesin server (atau cukup restart JVM).
sumber
Di sini biasanya pengecualian semacam ini terjadi ketika ada ketidaksesuaian dalam PATH sertifikat tepercaya. Periksa konfigurasi atau jalur di mana sertifikat server ini diperlukan untuk komunikasi yang aman.
sumber
Bagi saya, kesalahan sertifikat muncul karena saya menjalankan fiddler di latar belakang dan itu mengacaukan sertifikat. Kerjanya sebagai proxy yang sangat dekat sehingga dan memulai kembali gerhana.
sumber
tujuan:
Bagaimana cara melakukannya:
File pembungkus Keystore saya:
Kelas ini akan membuat keystore jika perlu, dan akan dapat mengelola sertifikat di dalamnya. Sekarang kelas untuk konteks SSL:
Kelas ini dibuat sebagai singleton, karena hanya satu konteks defaultSSL yang diizinkan. Jadi, sekarang penggunaan:
Mungkin, ini tidak akan berfungsi dengan pengaturan ini, karena saya menyimpan file sertifikat di dalam folder resource, jadi jalur saya tidak mutlak. Tetapi secara umum, ini bekerja dengan sempurna.
sumber
available()
ini secara khusus diperingatkan terhadap Javadoc sendiri.Ini tambahan untuk jawaban https://stackoverflow.com/a/36427118/1491414 . Terima kasih @MagGGG
sumber
Saya memperbaikinya menggunakan metode di bawah ini-
sumber
Ketika Anda memiliki kesalahan di atas dengan perangkat lunak atlassian ex. jira
Anda dapat menambahkan sertifikat ke keystore tepercaya (ubah missing_ca ke nama sertifikat yang tepat):
Jika diminta kata sandi, masukkan
changeit
dan konfirmasiy
Setelah itu cukup restart jira.
sumber
Jika URL repositori Anda juga berfungsi pada HTTP dan keamanannya tidak menjadi masalah, Anda dapat pergi ke settings.xml (sering, tetapi tidak selalu, terletak di
%USERPROFILE%/.m2
) dan mengganti HTTPS dengan HTTP untuk<repository>
dan<pluginRepository>
URL.Sebagai contoh, ini:
harus diganti dengan ini:
sumber
Saya menggunakan toko kepercayaan saya sendiri daripada JRE satu dengan melewati arg
-Djavax.net.ssl.trustStore=
Saya mendapatkan kesalahan ini terlepas dari sertifikat di truststore. Masalahnya bagi saya adalah pemesanan properti yang diteruskan pada baris arg. Ketika saya meletakkan
-Djavax.net.ssl.trustStore=
&-Djavax.net.ssl.trustStorePassword=
sebelum-Dspring.config.location=
&-jar
args saya berhasil memanggil panggilan istirahat saya melalui https.sumber
Jika Anda menggunakan CloudFoundry dan mengalami masalah sertifikat maka Anda harus memastikan bahwa Anda mendorong toples lagi dengan layanan keystore dengan sertifikat di dalamnya. Cukup lepaskan ikatan, ikat, dan mulai ulang tidak akan berfungsi.
sumber
Jika tuan rumah Anda duduk di belakang firewall / proxy , gunakan perintah berikut dalam cmd:
Ganti
<proxy_hostname>
dan<proxy_port>
dengan server proxy HTTP yang dikonfigurasi. Ganti<remote_host_name:remote_ssl_port>
dengan salah satu host jarak jauh (pada dasarnya url) dan port mengalami masalah sertifikasi.Ambil konten sertifikat terakhir yang dicetak dan salin (salin juga sertifikat awal dan akhir). Rekatkan di file teks dan berikan ekstensi .crt ke sana. Sekarang impor sertifikat ini ke cacerts menggunakan perintah java keytool dan seharusnya berfungsi.
sumber
Coba salin cacerts java:
cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.172-9.b11.fc28.x86_64/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/cacerts
sumber
Jika Anda melihat masalah ini dalam wadah linux ketika aplikasi java mencoba berkomunikasi dengan aplikasi / situs lain, itu karena sertifikat telah diimpor secara salah ke load balancer. Ada urutan langkah yang harus diikuti untuk mengimpor sertifikat dan bahwa jika tidak dilakukan dengan benar, Anda akan melihat masalah seperti
Setelah sertifikat diimpor dengan benar, itu harus dilakukan. Tidak perlu mengotak-atik sertifikat JDK.
sumber
Saya menyelesaikannya untuk Intellij Idea Saya menghadapi masalah ini Althouh, saya mengubah banyak tempat untuk menyelesaikan masalah. Saya menemukan solusi untuk saya. Klik kanan proyek Anda, Anda akan melihat Maven , setelah itu tekan Hasilkan Sumber dan Perbarui Folder dan ReImport
Sudah selesai.
sumber
Saya menghadapi masalah yang sama, saya menggunakan 8.1.0-3, tetapi kemudian saya menggunakan 9.2.1-0 dan masalah ini diperbaiki tanpa langkah manual. Sertifikat yang ditandatangani sendiri berfungsi dengan baik.
sumber