私の Java プログラムは、GitHub の raw アドレスを使用してバージョン ファイルにアクセスし、最新バージョンを取得します。このアドレスの形式はhttps://raw.github.com/user/repository/branch/version_fileです
テスト段階では、次のコードでこれを使用しても問題はありませんでした。
currentVersion = new Version(plugin.getDescription().getVersion());
URL url = new URL("https://raw.github.com/zonedabone/CommandSigns/master/VERSION");
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
newestVersion = new Version(in.readLine());
if (currentVersion.compareTo(newestVersion) < 0)
newAvailable = true;
ただし、一部のユーザーから次のエラーが報告されています。
sun.security.validator.ValidatorException:
PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
Java は、SSL 証明書を検証できないと不平を言っています。GitHub の証明書は DigiCert によって検証されていますが、一部の Java ビルドではこれを識別できないようです。
これを克服するには、証明書をトラストストアに追加し、検証を完全に無効にするという 2 つの方法があることを読みました。
StackOverflow で提案された回答は、allow-all TrustStore を使用します。これは、「テスト環境」の範囲内にないことを考えると非常に悪い考えです。または、証明書を追加する方法を示している場合は、通常、壊れたウェブページ。
誰か新しい情報を提供できますか?