1

以下のコードを使用してすべての証明書を信頼しており、コードはコンテナー化された環境で実行されています。アクセスが拒否されたため例外が発生し (「javax.net.ssl.SSLPermission」「setDefaultSSLContext」)、通常の Tomcat サーバーで実行されている同じコードが発生しています。正常に動作しています

 URL destinationURL = null;
    SSLContext context = null;
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                        //return new X509Certificate[1];
                        return null;
                    }
                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                        //DO
                    }
                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                        //DO
                    }
                } 
                };
            try {
                context = SSLContext.getInstance("SSL");
                context.init(null, trustAllCerts, null);
                SSLContext.setDefault(context);

                //proxy details here
                    destinationURL = new URL('url');
                    HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
                    HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
                        public boolean verify(String hostname, SSLSession session) {
                            
                            return true;
                    }
                });
                
            } catch (Exception e) {
                e.printStackTrace();
            

}

4

2 に答える 2

0

指定した SSLContext を使用して、URL 接続に使用できる socketfactory を構築できます。デフォルトのものを変更することはお勧めしません。

于 2020-11-03T08:48:48.050 に答える